Airsonic je bezplatný a open source mediální server. Jedná se o webový streamer médií s vlastním hostitelem, který poskytuje všudypřítomný přístup k vaší hudbě, usnadňuje sdílení hudby s přáteli nebo poslech hudby při práci. Airsonic byl vytvořen s Javou jako plnohodnotná vidlice Subsonic a navržený pro práci s velmi velkými hudebními sbírkami a optimalizovaný pro streamování MP3. Airsonic pracuje se všemi audio nebo video formáty, které mohou streamovat přes protokol HTTP, včetně WMA, FLAC, APE atd.
V tomto tutoriálu vám krok za krokem ukážu, jak nainstalovat Airsonic na Ubuntu 18.04. Ukážeme vám, jak nasadit samostatnou instalaci Airsonic pomocí balíčku .WAR, spustit Airsonic jako službu a poté nakonfigurovat webový server Nginx jako reverzní proxy pro Airsonic.
Předpoklady
- Ubuntu 18.04
- Oprávnění uživatele root
Co uděláme?
- Nainstalujte Java OpenJDK
- Nainstalujte a nakonfigurujte AirSonic
- Vygenerujte nový certifikát SSL Letsencrypt
- Nakonfigurujte Nginx jako reverzní proxy
- Konfigurace brány UFW Firewall
- Testování
Krok 1 – Instalace Java OpenJDK
Airsonic je aplikační software založený na Javě, takže musíme nainstalovat Javu na server a vyžaduje instalaci OpenJDK 1.8x. V tomto prvním kroku nainstalujeme Java OpenJDK z PPA repository webupd8team.
Nainstalujte balíčky 'software-properties-common' a poté přidejte úložiště Java OpenJDK PPA.
Spusťte následující příkazy apt.
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y
Nyní nainstalujte Java OpenJDK.
sudo apt install oracle-java8-installer -y
A po dokončení instalace zkontrolujte verzi Java OpenJDK.
java -version
Nyní získáte na systému Ubuntu 18.04 nainstalovánu řadu Java OpenJDK 1.8.
Krok 2 – Instalace a konfigurace Airsonic
Airsonic poskytuje různé instalační balíčky, pro tuto příručku budeme používat „samostatnou instalaci WAR“.
Vytvořte nového uživatele s názvem 'airsonic' a vytvořte nový adresář '/opt/airsonic'.
useradd airsonic
mkdir -p /opt/airsonic
Nyní přejděte do adresáře '/opt/airsonic' a stáhněte si soubor balíčku Airsonic '.WAR' pomocí wget.
cd /opt/airsonic
wget https://github.com/airsonic/airsonic/releases/download/v10.1.1/airsonic.war
A změňte vlastníka adresáře '/opt/airsonic' na uživatele a skupinu 'airsonic'.
chown -R airsonic:airsonic /opt/airsonic
Binární balíček Airsonic '.WAR' byl stažen.
Dále musíme vytvořit nový servisní soubor pro Airsonic, přejděte do adresáře '/etc/systemd/system' a vytvořte nový servisní soubor 'airsonic.service'.
cd /etc/systemd/system/
vim airsonic.service
Zde vložte následující konfiguraci služby 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
Uložte a ukončete.
Znovu načtěte systém systemd a vytvořte nový výchozí konfigurační soubor airsonic v adresáři '/etc/default'.
sudo systemctl daemon-reload
vim /etc/default/airsonic
Zde vložte následující výchozí konfiguraci 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
Uložte a ukončete.
Nyní spusťte službu Airsonic a povolte její spuštění při každém spuštění systému.
systemctl start airsonic
systemctl enable airsonic
Instalace airsonic 'stand-alone' je dokončena a nyní je v provozu, zkontrolujte ji pomocí příkazu netstat.
netstat -plntu
A získáte výchozí port Airsonic '8080' ve stavu 'LISTEN', používaný službou Java Airsonic.
Krok 3 – Vygenerování nového certifikátu SSL Letsencrypt
V tomto tutoriálu nasadíme Airsonic pod HTTPS připojením Nginx reverzního proxy s názvem domény 'music.hakase-labs.io'.
A pro tento krok vygenerujeme SSL certifikáty z Letsencrypt. Nainstalujte nástroj Letsencrypt pomocí následujícího příkazu apt.
sudo apt install letsencrypt -y
Nástroj Letsencrypt byl nainstalován.
Dále musíme pomocí příkazu níže vygenerovat nové certifikáty SSL pro doménu 'music.hakase-labs.io'.
certbot certonly --standalone -d music.hakase-labs.io
Budete požádáni o e-mailovou adresu a ta se používá pro oznámení o obnovení. V případě smlouvy Letsencrypt TOS zadejte „A“ pro souhlas a pro sdílenou e-mailovou adresu můžete zadat „N“ jako Ne.
Když je vše dokončeno, dostanete výsledek, jak je znázorněno níže.
SSL Letsencrypt pro doménu 'music.hakase-labs.io' byl vygenerován, všechny certifikáty jsou umístěny v adresáři '/etc/letsencrypt/live/domain'.
Krok 4 – Instalace a konfigurace Nginx jako reverzního proxy
V tomto kroku nainstalujeme webový server Nginx a nakonfigurujeme jej jako reverzní proxy pro software Airsonic na portu 8080.
Nainstalujte webový server Nginx pomocí následujícího příkazu apt.
sudo apt install nginx -y
Nyní přejděte do adresáře '/etc/nginx' a vytvořte nový soubor virtuálního hostitele 'airsonic'.
cd /etc/nginx/
vim sites-available/airsonic
Zde vložte následující konfiguraci.
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://; } }
Uložte a ukončete.
Aktivujte soubor virtuálního hostitele 'airsonic' a otestujte konfiguraci.
ln -s /etc/nginx/sites-available/airsonic /etc/nginx/sites-enabled/
nginx -t
Ujistěte se, že nedošlo k žádné chybě, poté restartujte službu nginx a povolte její spuštění při každém spuštění systému.
systemctl restart nginx
systemctl enable nginx
Webový server Nginx nyní běží jako reverzní proxy pro Airsonic na portu 8080 a běží pod zabezpečeným připojením https.
Zkontrolujte to pomocí příkazu netstat níže.
netstat -plntu
Krok 5 – Konfigurace brány UFW
V tomto tutoriálu zapneme firewall a budeme používat firewall UFW pro Ubuntu.
Otevřete službu SSH, HTTP a HTTPS v seznamu firewallů UFW spuštěním příkazů níže.
ufw allow ssh
ufw allow http
ufw allow https
Nyní povolte ufw firewall.
ufw enable
Napište „y“ a stiskněte Enter pro spuštění a povolení brány firewall UFW.
A ufw firewall byl povolen.
Krok 6 – Testování
Otevřete webový prohlížeč a do adresního řádku zadejte instalační URL Airsonic. Můj je:
https://music.hakase-labs.io/airsonic/
Nyní se vám zobrazí přihlašovací stránka Airsonic.
Přihlaste se jako výchozí uživatel 'admin' s heslem 'admin' a stiskněte tlačítko 'Log In'.
A když se přihlásíte, uvidíte Airsonic Dashboard.
- Změnit výchozí heslo
Klikněte na tlačítko 'Změnit heslo správce'.
Nyní vyberte uživatele 'admin' a označte ho 'Change password', poté zadejte nové heslo správce a klikněte na 'Save'.
Výchozí heslo správce pro Airsonic bylo změněno.
- Nastavení složek médií
Vraťte se na server shellu terminálu, ručně vytvořte nové složky médií a změňte vlastníka adresáře složek médií na uživatele „airsonic“.
mkdir -p /var/music
chown -R airsonic:airsonic /var/music
Nyní na ovládacím panelu Airsonic klikněte na tlačítko „Nastavení“ a klikněte na kartu „Složky médií“.
Ujistěte se, že jsou povoleny výchozí složky médií „Hudba“, a poté klikněte na tlačítko „Uložit“.
Nyní přejděte na kartu 'Uživatel', vyberte uživatele 'admin' a zkontrolujte složku médií 'Music', jak je uvedeno níže.
Výchozí složka médií „Music“ byla povolena a uživatel „admin“ má nyní přístup ke složkám médií.
Níže je můj přístrojový panel Airsonic po provedení některých změn.
Instalace streameru médií Airsonic s Nginx jako reverzní proxy na Ubuntu 18.04 byla úspěšně dokončena.