如何在CentOS 7上安裝Airsonic媒體伺服器
介紹
Airsonic是一個基於Web的開源媒體伺服器,允許使用者管理、流式傳輸和共享其音訊和影片檔案。它是一個多功能且強大的工具,支援各種媒體格式,並與Last.fm和Tidal等第三方服務整合。在本文中,我們將指導您完成在CentOS 7系統上安裝Airsonic的過程。
前提條件
在開始之前,請確保您擁有:
具有root或sudo訪問許可權的CentOS 7系統。
穩定的網際網路連線。
基本的命令列知識。
步驟1:更新您的系統
首先,執行以下命令將您的CentOS 7系統更新到最新版本:
sudo yum update sudo yum upgrade
步驟2:安裝Java
Airsonic需要Java才能執行,因此我們首先需要安裝它。執行以下命令安裝OpenJDK 11軟體包:
sudo yum install java-11-openjdk
要確認Java已安裝,請執行以下命令:
java -version
步驟3:為Airsonic建立一個專用使用者
出於安全考慮,建議建立一個單獨的使用者來執行Airsonic服務。使用以下命令建立一個名為“airsonic”的新使用者:
sudo useradd -r -m -U -d /opt/airsonic -s /sbin/nologin airsonic
步驟4:下載和配置Airsonic
從官方GitHub倉庫下載最新的Airsonic獨立WAR檔案:
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.6.2/airsonic.war -P /opt/airsonic
調整下載檔案的許可權:
sudo chown airsonic: /opt/airsonic/airsonic.war
為Airsonic建立一個新的systemd服務檔案:
sudo nano /etc/systemd/system/airsonic.service
將以下內容貼上到檔案中:
[Unit] Description=Airsonic Media Server After=remote-fs.target network.target [Service] User=airsonic Group=airsonic Environment="JAVA_OPTS=-Xmx700m" ExecStart=/usr/bin/java $JAVA_OPTS -Dairsonic.home=/opt/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /opt/airsonic/airsonic.war SuccessExitStatus=143 [Install] WantedBy=multi-user.target
儲存檔案並退出文字編輯器。
步驟5:啟動和啟用Airsonic服務
使用以下命令啟動Airsonic服務:
sudo systemctl start airsonic
啟用Airsonic在啟動時啟動:
sudo systemctl enable airsonic
步驟6:配置防火牆
如果您的系統啟用了防火牆,請新增一條規則以允許在預設Airsonic埠(8080)上接收傳入流量:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
步驟7:訪問Airsonic Web介面
開啟您的Web瀏覽器並導航到http://your_server_IP:8080/airsonic。您將看到Airsonic登入頁面。使用預設使用者名稱“admin”和密碼“admin”登入。首次登入後,務必立即更改預設密碼以確保安全。
步驟8:配置Airsonic
登入後,您將看到Airsonic儀表板。在這裡,您可以自定義設定、新增媒體資料夾和配置轉碼選項。
要新增媒體資料夾,請轉到“設定”>“媒體資料夾”,然後單擊“新增媒體資料夾”按鈕。提供媒體資料夾的路徑並選擇資料夾型別(音樂或影片)。單擊“儲存”以新增資料夾。
要配置轉碼選項,請轉到“設定”>“轉碼”。Airsonic附帶了針對各種媒體格式的預配置轉碼設定,但您可以根據需要自定義它們。
根據需要調整媒體掃描程式、網路和安全設定。進行任何更改後,請務必單擊“儲存”。
步驟9:享受您的Airsonic媒體伺服器
完成所有設定後,您現在可以使用Airsonic來流式傳輸、管理和共享您的媒體檔案。您可以從任何具有Web瀏覽器的裝置訪問您的Airsonic伺服器,包括智慧手機、平板電腦和計算機。
步驟10:配置反向代理(可選)
如果您想使用域名或子域名訪問Airsonic,您可以使用Nginx或Apache等Web伺服器設定反向代理。在此示例中,我們將使用Nginx。
安裝Nginx
sudo yum install epel-release sudo yum install nginx
啟動並啟用Nginx
sudo systemctl start nginx sudo systemctl enable nginx
建立一個新的Nginx伺服器塊配置檔案
sudo nano /etc/nginx/conf.d/airsonic.conf
將以下內容貼上到檔案中,將yourdomain.com替換為您的域名或子域名:
server { listen 80; server_name yourdomain.com; location / { proxy_pass https://:8080/airsonic/; proxy_set_header Host $host; 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 $scheme; } }
儲存檔案並退出文字編輯器。
重新載入Nginx以應用更改
sudo systemctl reload nginx
更新您的DNS設定以將您的域名或子域名指向您的伺服器的IP地址。
步驟11:使用SSL保護您的Airsonic伺服器(可選)
為了保護您的資料並增強Airsonic伺服器的安全性,強烈建議使用HTTPS。一種實現此目的的方法是從Let's Encrypt獲取免費的SSL證書。
安裝Certbot和Nginx外掛
sudo yum install certbot python2-certbot-nginx
執行Certbot以獲取和安裝SSL證書
sudo certbot --nginx -d yourdomain.com
按照螢幕上的說明完成SSL證書設定。完成後,您可以透過HTTPS訪問您的Airsonic伺服器。
步驟12:啟用自動SSL續訂(可選)
Let's Encrypt SSL證書有效期為90天。為了自動化續訂過程,請建立一個cron作業以定期執行Certbot續訂命令。
開啟crontab檔案
sudo crontab -e
將以下行新增到檔案中:
0 2 * * * /usr/bin/certbot renew --quiet
這將在每天凌晨2點執行續訂命令。如果證書即將過期,Certbot將自動續訂它。
透過執行這些附加步驟,您可以進一步增強Airsonic媒體伺服器的功能和安全性。使用反向代理、SSL證書和自動證書續訂,您可以在流式傳輸和共享媒體檔案時獲得更安全和使用者友好的體驗。
步驟13:安裝和配置資料庫(可選)
預設情況下,Airsonic使用嵌入式H2資料庫來儲存其資料。但是,您可以透過使用PostgreSQL或MySQL/MariaDB等外部資料庫來提高Airsonic伺服器的效能和可靠性。在此示例中,我們將安裝和配置PostgreSQL。
安裝PostgreSQL
sudo yum install postgresql-server postgresql-contrib
初始化PostgreSQL資料庫
sudo postgresql-setup initdb
啟動並啟用PostgreSQL服務
sudo systemctl start postgresql sudo systemctl enable postgresql
為Airsonic建立一個新的PostgreSQL使用者和資料庫
sudo -i -u postgres createuser airsonic createdb -O airsonic airsonicdb exit
編輯PostgreSQL配置檔案以允許本地連線
sudo nano /var/lib/pgsql/data/pg_hba.conf
查詢以下行:
host all all 127.0.0.1/32 ident host all all ::1/128 ident
將ident替換為md5:
host all all 127.0.0.1/32 md5 host all all ::1/128 md5
儲存檔案並退出文字編輯器。
重新啟動PostgreSQL服務
sudo systemctl restart postgresql
更新Airsonic服務檔案以使用PostgreSQL資料庫:
sudo nano /etc/systemd/system/airsonic.service
修改Environment和ExecStart行如下:
Environment="JAVA_OPTS=-Xmx700m -Dspring.datasource.url=jdbc:postgresql://:5432/airsonicdb -Dspring.datasource.username=airsonic -Dspring.datasource.password=your_password" ExecStart=/usr/bin/java $JAVA_OPTS -Dairsonic.home=/opt/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -Dspring.profiles.active=legacy -jar /opt/airsonic/airsonic.war
將your_password替換為Airsonic PostgreSQL使用者的強密碼。
儲存檔案並退出文字編輯器。
重新啟動Airsonic服務
sudo systemctl restart airsonic
步驟14:配置第三方整合(可選)
Airsonic支援與Last.fm、Tidal和Google Drive等各種第三方服務的整合。要配置這些整合,請按照以下步驟操作:
**Last.fm** - 轉到“設定”>“個人”,並在“Last.fm Scrobbling”部分輸入您的Last.fm使用者名稱和密碼。單擊“儲存”以啟用scrobbling。
**Tidal** - 轉到“設定”>“網路”,並在“Tidal設定”部分輸入您的Tidal API令牌。單擊“儲存”以啟用Tidal整合。
**Google Drive** - 轉到“設定”>“媒體資料夾”,然後單擊“新增媒體資料夾”按鈕。選擇“Google Drive”作為資料夾型別,然後按照螢幕上的說明進行身份驗證並授權訪問您的Google Drive帳戶。
透過這些附加步驟,您可以進一步增強Airsonic媒體伺服器的功能。透過使用外部資料庫,您可以提高效能和可靠性,而第三方整合允許您將伺服器連線到Last.fm、Tidal和Google Drive等流行服務。
結論
在本文中,我們指導您完成了在CentOS 7上安裝和配置Airsonic媒體伺服器的過程。使用Airsonic,您可以輕鬆流式傳輸您的音樂和影片,與朋友和家人共享您的媒體庫,並在任何裝置上欣賞您的內容。