如何在Ubuntu 18.04 LTS上安装AirSonic

AirSonic是免费的开源媒体流服务器。在本教程中,我将指导您完成从头开始在Ubuntu 18.04 LTS服务器实例上部署AirSonic服务器实例的过程。

先决条件

  • 新部署的Vultr Ubuntu 18.04 LTS服务器实例,至少具有2GB内存。说它有一个IPv4地址203.0.113.1
  • 一个sudo的用户
  • airsonic.example.com指向上述服务器实例。

步骤1:基本系统配置

创建一个交换文件

为了获得更好的系统性能,建议在具有2GB内存的计算机上创建2GB(2048M)交换文件:

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

注意: 如果使用其他服务器大小,则交换分区的合适大小可能会有所不同。

设置机器的主机名和标准域名(FQDN)

为使用Let's Encrypt SSL证书启用HTTPS安全性,需要正确设置机器的主机名和FQDN。

以下命令将为计算机设置主机名airsonic和FQDN airsonic.example.com

sudo hostnamectl set-hostname airsonic
sudo sed -i 's/^127.0.1.1.*$/127.0.1.1 airsonic.example.com airsonic/g' /etc/hosts

可以通过以下方式确认结果:

hostname
hostname -f

修改防火墙规则,以允许入站SSHHTTP以及HTTPS交通

设置用于运行AirSonic服务器的UFW防火墙规则:

sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

当看到提示时Command may disrupt existing ssh connections. Proceed with operation (y|n)?,请输入y,然后按ENTER

更新系统

为了安全和性能起见,有必要将Ubuntu 18.04 LTS系统更新到最新状态:

sudo apt update
sudo apt upgrade -y && sudo shutdown -r now

在升级过程中,系统可能会通知您当前已安装的grub配置文件版本已在本地修改。由于我们实际上不负责修改,因此请使用UP箭头突出显示该install the package maintainer's version选项,然后按ENTER

系统重启后,以相同的sudo用户身份登录以继续。

步骤2:安装OpenJDK Java Runtime Environment(JRE)8

安装OpenJDK JRE 8,然后确认结果:

sudo apt install -y openjdk-8-jre-headless
java -version

第二个命令的输出将类似于以下内容:

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

此外,您需要按以下步骤设置JAVA_HOME环境变量:

echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile

步骤3:安装AirSonic

可以使用多种方法来部署AirSonic。在本教程中,我们将使用AirSonic WAR软件包安装AirSonic。

创建一个专用用户和一个专用组,均名为airsonic

sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic

下载最新的AirSonic WAR软件包AirSonic v10.1.2:

cd /var/airsonic
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.1.2/airsonic.war
sudo chown -R airsonic:airsonic /var/airsonic

下载预定义的AirSonic systemd单位文件,然后启动AirSonic服务:

sudo wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic.service -O /etc/systemd/system/airsonic.service
sudo wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic-systemd-env -O /etc/default/airsonic
sudo systemctl daemon-reload
sudo systemctl start airsonic.service
sudo systemctl enable airsonic.service

注意: 您可能需要systemd在自己的计算机上查看和自定义两个AirSonic 单元文件。

步骤4:测试安装

AirSonic现在将启动并运行,并在port上监听8080。您可以使用以下命令来确认是这种情况:

ps -ef|grep airsonic

您也可以直接访问AirSonic网站,但是您需要先临时修改防火墙规则:

sudo ufw allow in 8080/tcp

接下来,将您喜欢的Web浏览器指向http://203.0.113.1:8080/airsonic,然后使用下面列出的默认凭据登录:

  • 用户名: admin
  • 密码: admin

为了安全起见,登录后应立即更改管理员密码。

确认结果后,8080再次限制对端口的访问:

sudo ufw deny in 8080/tcp

步骤5:为您的AirSonic网站获取“让我们加密SSL”证书

为了安全起见,建议在每个新创建的网站上启用HTTPS安全性。为此,最方便的做法是按以下方式部署“让我们加密SSL”证书。

安装Certbot实用程序:

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:certbot/certbot
sudo apt update
sudo apt install -y certbot

使用Certbot为该域申请“让我们加密SSL”证书airsonic.example.com

sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d airsonic.example.com

证书和链将保存在以下位置:

/etc/letsencrypt/live/airsonic.example.com/fullchain.pem

密钥文件将保存在这里:

/etc/letsencrypt/live/airsonic.example.com/privkey.pem

我们加密SSL证书的设计期限为三个月。您可以设置cron作业以自动更新证书:

sudo crontab -e

当提示您选择编辑器时,输入2,然后按ENTER选择/usr/bin/vim.basic

接下来,按O,然后添加新行,如下所示:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

保存并退出:

:wq!

此Cron作业将尝试每天中午更新Let's Encrypt证书。

步骤6:安装Nginx作为反向代理

在Nginx的帮助下,您既可以方便访问者访问(从而使他们不再需要输入8080端口号),也可以在AirSonic网站上启用HTTPS安全性。

使用APT安装Nginx:

sudo apt install -y nginx

接下来,为AirSonic创建一个配置文件:

cat <<EOF | sudo tee /etc/nginx/sites-available/airsonic.conf
# Redirect HTTP to HTTPS
server {
    listen      80;
    server_name airsonic.example.com;
    return      301 https://\$server_name\$request_uri;
}

server {

    # Setup HTTPS certificates
    listen       443 default ssl;
    server_name  airsonic.example.com;
    ssl_certificate      /etc/letsencrypt/live/airsonic.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/airsonic.example.com/privkey.pem;

    # Proxy to the Airsonic server
    location /airsonic {
        proxy_set_header X-Real-IP         \$remote_addr;
        proxy_set_header X-Forwarded-For   \$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host  \$http_host;
        proxy_set_header Host              \$http_host;
        proxy_max_temp_file_size           0;
        proxy_pass                         http://127.0.0.1:8080;
        proxy_redirect                     http:// https://;
    }
}
EOF

创建一个指向新创建的AirSonic Nginx配置文件的符号链接:

sudo ln -s /etc/nginx/sites-available/airsonic.conf /etc/nginx/sites-enabled/

重新启动Nginx以使您的配置生效:

sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

最后,将您喜欢的Web浏览器指向http://airsonic.example.com/airsonichttps://airsonic.example.com/airsonic开始浏览AirSonic网站。



Leave a Comment

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。