在Ubuntu 18.04上,如何安装AirSonic

・11 分钟阅读

使用不同的系统?

AirSonic是一个免费的开源媒体流媒体服务器,在本教程中,我将指导你从头开始在Ubuntu18 04LTS服务器实例上部署AirSonic服务器实例的进程。

前提条件

  • 新部署的Ubuntu 18.04服务器实例,内存至少为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 )

正确设置主机名和FQDN是为了使用let's Encrypt SSL证书启用HTTPS安全性所必需的。

以下命令为该计算机设置主机名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

 

修改防火墙规则以允许入站SSHHTTPHTTPS通信

为运行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系统更新为最新状态:


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

升级期间,可能会通知你当前已安装的grub配置文件的版本已被本地修改,由于我们实际上不负责修改,所以,使用向上箭头来突出显示,install the package maintainer's version 选项,然后按ENTER键。

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

第2版:安装OpenJDK Java运行时环境(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

注意:你可能需要在你自己的机器上检查和定制两个AirSonic systemd单元文件。

步骤4:测试安装

AirSonic将启动,并且正在运行,正在监听端口8080 ,你可以使用以下命令确认是否存在以下情况:

 
ps -ef|grep airsonic

 

你也可以直接访问AirSonic站点,但是,你需要先修改防火墙规则:


sudo ufw allow in 8080/tcp

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

  • 用户名:admin
  • 密码:admin

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

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


sudo ufw deny in 8080/tcp

步骤5:为你的AirSonic站点获取let's Encrypt SSL证书

为了安全起见,建议在每个新创建的网站上启用HTTPS安全性,最方便的做法是部署let's Encrypt 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为域airsonic.example.com申请let's Encrypt SSL证书:


sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d airsonic.example.com

证书和链将按以下方式保存:


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

密钥文件将保存在这里:


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

let's Encrypt 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

最后,将你喜爱的网页浏览器指向 http://airsonic.example.com/airsonic 或者 https://airsonic.example.com/airsonic 开始浏览你的AirSonic网站。

Tianye profile image