Jellyfin установка

Среди всех медиа серверов мне более приятен Jellyfin. Просто в установке, открытый исходный код, минимум логов, ну и можно еще видео смотреть.

Добавим репозиторий:

apt update && sudo apt install -y wget gnupg
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo tee /usr/share/keyrings/jellyfin.gpg.key
echo "deb [signed-by=/usr/share/keyrings/jellyfin.gpg.key] https://repo.jellyfin.org/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Устанавливаем:

apt install -y jellyfin

Проверяем и запускаем:

systemctl status jellyfin
systemctl enable jellyfin
systemctl start jellyfin

Сервер теперь доступен:

http://ip:8096

После следуем указаниям установщика. Конфиги лежат:

/var/lib/jellyfin/
usr/share/jellyfin
/etc/jellyfin

Настроим реверс прокси через nginx. Пример конфига:

server {
    listen 80;
    server_name вашдомен;
    if ($host != "вашдомен") {
        return 444;
    }
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name вашдомен;

    ssl_certificate /etc/letsencrypt/live/вашдомен/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/вашдомен/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://127.0.0.1:8060;
        proxy_ssl_verify off;
        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 https;
    }
}

Сгенерируем сертификат LetsEncrypt через проверку DNS-записей:

certbot certonly --preferred-challenges dns --manual -d вашдомен

Ну и сделаем так, чтобы http висел только на localhost:

nano /etc/jellyfin/network.xml

Включим https и добавим:

<string>127.0.0.1</string>

Все это в целом можно сделать через графическую админку. После создания папки, где будут лежать медиа, дадим на нее права:

chown -R jellyfin:jellyfin /путьдопапки
chmod -R 755 /mnt/media /путьдопапки

Если напрягает, что существуют записи о событиях, то чистим таблицу в базе:
sqlite3 /var/lib/jellyfin/data/jellyfin.db "DELETE FROM ActivityLogs;"