ubuntu:subsonic
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| ubuntu:subsonic [2019/04/14 10:45] – [Startparameter des Servers] Fehlerkorrektur Sebastian Hetzel | ubuntu:subsonic [2024/12/28 14:32] (aktuell) – [DB-Connection-Timeout erhöhen] angelegt Sebastian Hetzel | ||
|---|---|---|---|
| Zeile 10: | Zeile 10: | ||
| # aptitude install openjdk-8-jre | # aptitude install openjdk-8-jre | ||
| </ | </ | ||
| + | |||
| + | === Optionale Tools === | ||
| + | |||
| + | Um Musikdateien direkt auf dem Server bearbeiten zu können, empfiehlt es sich, folgende Helferlein ebenfalls zu installieren: | ||
| + | |||
| + | < | ||
| + | # aptitude install id3 id3v2 eyed3 | ||
| + | </ | ||
| + | |||
| Nun kann das Installationspaket heruntergeladen werden, welches über die nachfolgende Webseite bezogen werden kann: | Nun kann das Installationspaket heruntergeladen werden, welches über die nachfolgende Webseite bezogen werden kann: | ||
| Zeile 157: | Zeile 166: | ||
| ===== Nginx Reverse Proxy ===== | ===== Nginx Reverse Proxy ===== | ||
| - | Inhalt folgt. | + | <file |h / |
| + | server { | ||
| + | server_name subsonic.meine-domain.de; | ||
| + | location / { | ||
| + | proxy_pass http:// | ||
| + | proxy_set_header Host $http_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; | ||
| + | proxy_redirect http:// https://; | ||
| + | } | ||
| + | |||
| + | |||
| + | listen 443 ssl; # managed by Certbot | ||
| + | ssl_certificate / | ||
| + | ssl_certificate_key / | ||
| + | include / | ||
| + | ssl_dhparam / | ||
| + | |||
| + | |||
| + | add_header Strict-Transport-Security " | ||
| + | |||
| + | |||
| + | ssl_trusted_certificate / | ||
| + | ssl_stapling on; # managed by Certbot | ||
| + | ssl_stapling_verify on; # managed by Certbot | ||
| + | |||
| + | } | ||
| + | server { | ||
| + | if ($host = subsonic.meine-domain.de) { | ||
| + | return 301 https:// | ||
| + | } # managed by Certbot | ||
| + | |||
| + | |||
| + | server_name subsonic.meine-domain.de; | ||
| + | listen 80; | ||
| + | |||
| + | |||
| + | } | ||
| + | </ | ||
| + | ===== Apache Reverse Proxy ===== | ||
| + | |||
| + | Pakete installieren: | ||
| + | < | ||
| + | # aptitude install apache2 | ||
| + | # a2enmod proxy proxy_http headers | ||
| + | </ | ||
| + | |||
| + | Virtual Host konfigurieren: | ||
| + | <file | / | ||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Virtual Host aktivieren: | ||
| + | < | ||
| + | # a2ensite subsonic-proxy | ||
| + | </ | ||
| + | |||
| + | SSL mittels Certbot aktivieren. [[https:// | ||
| + | < | ||
| + | # certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple --email your-email-address -d subsonic.your-domain.de | ||
| + | </ | ||
| ===== Update der Applikation ===== | ===== Update der Applikation ===== | ||
| Zeile 179: | Zeile 256: | ||
| Subsonic speichert alle erstellten Playlists in seiner internen Datenbank. Es kann zwar jede Playlist als M3U-File über das Webinterface exportiert werden. Als Backupjob wäre dieses Vorgehen jedoch unbrauchbar. | Subsonic speichert alle erstellten Playlists in seiner internen Datenbank. Es kann zwar jede Playlist als M3U-File über das Webinterface exportiert werden. Als Backupjob wäre dieses Vorgehen jedoch unbrauchbar. | ||
| - | Es bleibt nur die Datenbank zu sichern (leider ist dieses Vorgehen nicht dokumentiert) oder die Playlists über die REST-API zu exportierten | + | Es bleibt nur die Datenbank zu sichern (leider ist dieses Vorgehen nicht dokumentiert) oder die Playlists über die REST-API zu exportieren |
| > https:// | > https:// | ||
| Zeile 186: | Zeile 263: | ||
| Ist SubsonicTools auf dem System hinterlegt, kann es mittels Crontab täglich alle Playlists in einzelne M3U-Dateien exportieren. | Ist SubsonicTools auf dem System hinterlegt, kann es mittels Crontab täglich alle Playlists in einzelne M3U-Dateien exportieren. | ||
| + | |||
| + | ==== Installation im Schnelldurchgang ==== | ||
| + | |||
| + | 1. Download des Skripts | ||
| + | < | ||
| + | # cd /opt | ||
| + | # git clone https:// | ||
| + | </ | ||
| + | |||
| + | 2. Download des source codes der Python requests library | ||
| + | < | ||
| + | # cd /opt/ | ||
| + | # git clone git:// | ||
| + | # cd requests/ | ||
| + | </ | ||
| + | |||
| + | 3. Installation Python package index | ||
| + | Vgl. [[https:// | ||
| + | < | ||
| + | # apt-get update | ||
| + | # aptitude search pip | ||
| + | # aptitude install python-pip | ||
| + | </ | ||
| + | |||
| + | 4. Installation der requests library | ||
| + | < | ||
| + | # pip install . | ||
| + | </ | ||
| + | |||
| + | ==== Korrekte Python Version einstellen ==== | ||
| + | |||
| + | < | ||
| + | # update-alternatives --config python | ||
| + | There are 3 choices for the alternative python (providing / | ||
| + | |||
| + | Selection | ||
| + | ------------------------------------------------------------ | ||
| + | 0 / | ||
| + | 1 / | ||
| + | * 2 / | ||
| + | 3 / | ||
| + | |||
| + | Press < | ||
| + | </ | ||
| + | |||
| + | Test: | ||
| + | |||
| + | < | ||
| + | # python --version | ||
| + | Python 2.7.15+ | ||
| + | </ | ||
| + | |||
| + | ==== Verfügbare Python-Module auflisten ==== | ||
| + | |||
| + | < | ||
| + | # python -c " | ||
| + | </ | ||
| + | |||
| + | ===== Automatischer Import der Playlists ===== | ||
| + | |||
| + | Dazu hat Subsonic einen eigenen Ordner auf dem Filesystem. Der Pfad ist in der Konfiguration hinterlegt: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Die M3U-Files müssen in diesem Ordner abgelegt werden. Dabei ist wichtig, dass die Pfade in den M3U-Dateien stimmen. Beim nächsten Folder-Scan wird auch der Playlist-Ordner berücksichtigt und die M3U-Dateien werden zu Playlists in Subsonic umgewandelt. | ||
| + | ===== Arbeiten auf der Datenbank (Built-in HSQLDB) ===== | ||
| + | |||
| + | Als Adminuser kann unter https:// | ||
| + | |||
| + | Subsonic arbeitet von Hause aus mit einer HSQLDB. Diese ist dokumentiert unter http:// | ||
| + | |||
| + | {{: | ||
| + | ==== Alle Tabellen anzeigen lassen ==== | ||
| + | |||
| + | <code |sql > | ||
| + | SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE TABLE_TYPE=' | ||
| + | </ | ||
| + | |||
| + | ==== Alle Lieder einer Playlist anzeigen lassen ==== | ||
| + | |||
| + | Die PLAYLIST_ID=64 muss entsprechend geändert werden. | ||
| + | |||
| + | <code |sql > | ||
| + | SELECT PLAYLIST_FILE.ID, | ||
| + | </ | ||
| + | |||
| + | ==== Anzahl Lieder inenrhalb einer Playlist ermitteln ==== | ||
| + | |||
| + | <code |sql> | ||
| + | select count(*) from PLAYLIST_FILE where playlist_id=64; | ||
| + | </ | ||
| + | |||
| + | ===== Externe Datenbank nutzen ===== | ||
| + | |||
| + | Es werden unterstützt | ||
| + | * MySQL / MariaDB | ||
| + | * PostgreSQL | ||
| + | |||
| + | Eine Installation in eine PostgreSQL habe ich nicht ausprobiert. Daher sind diese Notizen alle auf **MariaDB / MySQL** bezogen! | ||
| + | |||
| + | Einfach als Startparameter übergeben: | ||
| + | |||
| + | '' | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Datenbank und User anlegen ===== | ||
| + | |||
| + | <code |sql> | ||
| + | CREATE DATABASE IF NOT EXISTS subsonic; | ||
| + | CREATE USER ' | ||
| + | GRANT ALL PRIVILEGES ON ' | ||
| + | FLUSH PRIVILEGES; | ||
| + | </ | ||
| + | |||
| + | ===== Probleme beim Scannen der Daten: Spaltengröße in DB anpassen ===== | ||
| + | |||
| + | <code |sql> | ||
| + | use subsonic; | ||
| + | ALTER TABLE album MODIFY genre VARCHAR(256) NULL DEFAULT NULL; | ||
| + | ALTER TABLE media_file MODIFY genre VARCHAR(256) NULL DEFAULT NULL; | ||
| + | ALTER TABLE genre MODIFY name VARCHAR(256) NOT NULL DEFAULT ''; | ||
| + | quit; | ||
| + | </ | ||
| + | |||
| + | ===== DB-Connection-Timeout erhöhen ===== | ||
| + | |||
| + | <file |h / | ||
| + | [...] | ||
| + | wait_timeout = 7776000 | ||
| + | [...] | ||
| + | </ | ||
ubuntu/subsonic.1555231501.txt.gz · Zuletzt geändert: von Sebastian Hetzel
