如何在Ubuntu 18.04 LTS上安装Airsonic Media Server

Airsonic是免费的开源媒体服务器。它是一个自我托管的基于网络的媒体流媒体,提供无处不在的音乐访问,使其变得简单......

如何在Ubuntu 18.04 LTS上安装Airsonic Media Server

Airsonic是免费的开源媒体服务器。 它是一个自我托管的基于网络的媒体流媒体,可以无处不在地访问您的音乐,可以轻松地与朋友分享您的音乐或在工作时聆听您的音乐。 Airsonic创建时使用Java作为Subsonic的完整分支,旨在处理非常大的音乐集合并针对MP3流进行优化。 Airsonic适用于任何可以通过HTTP协议传输的音频或视频格式,包括WMA,FLAC,APE等。

在本教程中,我将逐步向您展示如何在Ubuntu 18.04上安装Airsonic。 我们将向您展示如何使用.WAR包部署独立的Airsonic安装,运行Airsonic作为服务,然后将Nginx Web服务器配置为Airsonic的反向代理。

先决条件

  • Ubuntu 18.04
  • Root权限

我们将要做什么?

  1. 安装Java OpenJDK
  2. 安装和配置AirSonic
  3. 生成新的SSL Letsencrypt证书
  4. 将Nginx配置为反向代理
  5. 配置UFW防火墙
  6. 测试

第1步 - 安装Java OpenJDK

Airsonic是一个基于Java的应用软件,因此我们需要在服务器上安装Java,它需要安装OpenJDK 1.8x系列。 在第一步中,我们将从PPA存储库webupd8team安装Java OpenJDK。

安装'software-properties-common'软件包,然后添加Java OpenJDK PPA存储库。

运行以下apt命令。

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y

现在安装Java OpenJDK。

sudo apt install oracle-java8-installer -y

安装完成后,请检查Java OpenJDK版本。

java -version

现在您将在Ubuntu 18.04系统上安装Java OpenJDK 1.8系列。

安装Java OpenJDK

第2步 - 安装和配置Airsonic

Airsonic提供不同的安装包,对于本指南,我们将使用“独立WAR安装”。

创建一个名为'airsonic'的新用户,并创建一个新目录'/ opt / airsonic'。

useradd airsonic
mkdir -p /opt/airsonic

现在转到'/ opt / airsonic'目录并使用wget下载Airsonic'.WAR'包文件。

cd /opt/airsonic
wget https://github.com/airsonic/airsonic/releases/download/v10.1.1/airsonic.war

并将'/ opt / airsonic'目录的所有者更改为'airsonic'用户和组。

chown -R airsonic:airsonic /opt/airsonic

已下载Airsonic'.WAR'二进制包。

安装和配置Airsonic

接下来,我们需要为Airsonic创建一个新的服务文件,转到'/ etc / systemd / system'目录并创建一个新的服务文件'airsonic.service'。

cd /etc/systemd/system/
vim airsonic.service

在那里粘贴以下Airsonic服务配置。

[Unit]
Description=Airsonic Media Server
After=remote-fs.target network.target
AssertPathExists=/opt/airsonic

[Service]
Type=simple
Environment="JAVA_JAR=/opt/airsonic/airsonic.war"
Environment="JAVA_OPTS=-Xmx700m"
Environment="AIRSONIC_HOME=/opt/airsonic"
Environment="PORT=8080"
Environment="CONTEXT_PATH=/airsonic"
Environment="JAVA_ARGS="
EnvironmentFile=-/etc/sysconfig/airsonic
ExecStart=/usr/bin/java \
          $JAVA_OPTS \
          -Dairsonic.home=${AIRSONIC_HOME} \
          -Dserver.context-path=${CONTEXT_PATH} \
          -Dserver.port=${PORT} \
          -jar ${JAVA_JAR} $JAVA_ARGS
User=airsonic
Group=airsonic

[Install]
WantedBy=multi-user.target

保存并退出。

重新加载systemd系统并在'/ etc / default'目录中创建一个新的airsonic默认配置文件。

sudo systemctl daemon-reload
vim /etc/default/airsonic

在那里粘贴以下默认的空中配置。

# Set the location of the standalone war to use
JAVA_JAR=/opt/airsonic/airsonic.war

# Set any java opts separated by spaces
JAVA_OPTS=-Xmx700m

# Set a different location for the airsonic home.
# If this path is /opt/libresonic or even contains "libresonic",
# the data from a previous libresonic can be used as is (i.e. without
# renaming libresonic.properties,db/libresonic*, etc
AIRSONIC_HOME=/opt/airsonic

# Change the port to listen on
PORT=8080

# Change the path that is listened to on
CONTEXT_PATH=/airsonic

# Add any java args. These are different than JAVA_OPTS in that
# they are passed directly to the program. The default is empty:
#JAVA_ARGS=

# Note that there are several settings for spring boot, not explicitly listed
# here, but can be used in either JAVA_OPTS or JAVA_ARGS. The full list
# can be found here:
# https://docs.spring.io/spring-boot/docs/1.4.5.RELEASE/reference/htmlsingle/#common-application-properties
# For example to set debug across the board:
#JAVA_ARGS=--debug

# Or to change the IP address that is listened to:
JAVA_ARGS=--server.address=127.0.0.1

保存并退出。

现在启动Airsonic服务并使其在系统启动时每次启动。

systemctl start airsonic
systemctl enable airsonic

开始空中服务

airsonic“独立”安装已完成,现在它已启动并运行,请使用netstat命令进行检查。

netstat -plntu

并且您将获得Java Airsonic服务使用的'LISTEN'状态的默认端口Airsonic'8080'。

使用netstat检查网络

第3步 - 生成新的SSL Letsencrypt证书

在本教程中,我们将在Nginx反向代理的HTTPS连接下使用域名“music.hakase-labs.io”部署Airsonic。

对于此步骤,我们将从Letsencrypt生成SSL证书。 使用以下apt命令安装Letsencrypt工具。

sudo apt install letsencrypt -y

已安装Letsencrypt工具。

接下来,我们需要使用以下命令为'music.hakase-labs.io'域生成新的SSL证书。

certbot certonly --standalone -d music.hakase-labs.io

系统会要求您输入电子邮件地址,并将其用于续订通知。 对于Letsencrypt TOS协议,输入“A”表示同意,对于共享电子邮件地址,您可以键入“N”表示否。

创建SSL证书

完成所有操作后,您将得到如下所示的结果。

已发布Letsencrypt SSL证书

已生成用于'music.hakase-labs.io'域的SSL Letsencrypt,所有证书都位于'/ etc / letsencrypt / live / domain'目录中。

第4步 - 安装和配置Nginx作为反向代理

在此步骤中,我们将安装Nginx Web服务器并将其配置为端口8080上Airsonic软件的反向代理。

使用以下apt命令安装Nginx Web服务器。

sudo apt install nginx -y

现在转到'/ etc / nginx'目录并创建一个新的虚拟主机文件'airsonic'。

cd /etc/nginx/
vim sites-available/airsonic

在那里粘贴以下配置。

server {
    listen 80;
    listen [::]:80;
    server_name music.hakase-labs.io;
    # enforce https
    return 301 https://$server_name$request_uri;
}

server {
    listen              443 ssl;
    server_name         music.hakase-labs.io;
    ssl_certificate /etc/letsencrypt/live/music.hakase-labs.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/music.hakase-labs.io/privkey.pem;

    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://;
    }
}

保存并退出。

激活'airsonic'虚拟主机文件并测试配置。

ln -s /etc/nginx/sites-available/airsonic /etc/nginx/sites-enabled/
nginx -t

确保没有错误,然后重新启动nginx服务并使其在系统引导时每次启动。

systemctl restart nginx
systemctl enable nginx

安装Nginx并将其配置为反向代理

Nginx Web服务器现在作为端口8080上的Airsonic的反向代理运行,并且它在https安全连接下运行。

使用下面的netstat命令检查它。

netstat -plntu

检查nginx端口

第5步 - 配置UFW防火墙

在本教程中,我们将打开防火墙,我们将使用UFW防火墙进行Ubuntu。

通过运行以下命令,在UFW防火墙列表上打开SSH,HTTP和HTTPS服务。

ufw allow ssh
ufw allow http
ufw allow https

现在启用ufw防火墙。

ufw enable

输入“y”并按Enter键启动并启用UFW防火墙。

并且已启用ufw防火墙。

配置UFW防火墙

第6步 - 测试

打开Web浏览器,在地址栏中键入Airsonic安装URL。 我的是:

https://music.hakase-labs.io/airsonic/

现在,您将看到Airsonic登录页面。

Airsonic登录

以密码“admin”的默认用户“admin”身份登录,然后按“登录”按钮。

当您登录时,您将看到Airsonic Dashboard。

- 更改默认密码

单击“更改管理员密码”按钮。

更改密码

现在选择“admin”用户并在“更改密码”上添加标记,然后输入新的管理员密码并单击“保存”。

管理员设置

Airsonic的默认管理员密码已更改。

- 设置媒体文件夹

返回终端shell服务器,手动创建新的媒体文件夹,并将媒体文件夹目录的所有者更改为“airsonic”用户。

mkdir -p /var/music
chown -R airsonic:airsonic /var/music

现在,在Airsonic管理仪表板上,单击“设置”按钮,然后单击“媒体文件夹”选项卡。

配置媒体文件夹

确保已启用默认的“音乐”媒体文件夹,然后单击“保存”按钮。

现在转到“用户”标签,选择“管理员”用户并检查“音乐”媒体文件夹,如下所示。

用户标签

默认的“音乐”媒体文件夹已启用,“admin”用户现在可以访问媒体文件夹。

在进行一些更改后,下面是我的Airsonic仪表板。

空中仪表板

在Nbux作为Ubuntu 18.04上的反向代理的Airsonic媒体流媒体安装已成功完成。

参考