Commit 012023
2025-05-13 11:33:44 Mayekkuzu: Initial Release/dev/null .. self-hosted/jellyfin.md | |
@@ 0,0 1,76 @@ | |
+ | # Jellyfin |
+ | |
+ | Jellyfin - стриминговый сервер, позволяющий организовать стриминг кинчиков, сериальчиков. Так же имеет фунционал для организации стриминга музыки и даже чтения книжек/комиксов, но удобство использования последних оставляет желать лучшего. |
+ | |
+ | Поддерживает рендер видео на лету используя ресурсы CPU, что долго и ориентировано на 1 пользователя максимум, или же использование аппаратного рендера средствами QuickSync, VA-API, NVENC. По видеокарточкам - Nvidia GTX 1050 и выше, по QuickSync - Intel CPU 9 поколение+ желательно (Но без индекса F). |
+ | |
+ | ## Установка с пакета (но через скрипт) |
+ | В debian/ubuntu - лучших традициях через внешний sh скрипт |
+ | ```bash |
+ | curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash |
+ | sudo bash install-debuntu.sh |
+ | ``` |
+ | |
+ | ## Установка через бинарник |
+ | Создадим папку и перейдем |
+ | ```bash |
+ | sudo mkdir /opt/jellyfin |
+ | cd /opt/jellyfin |
+ | ``` |
+ | |
+ | Находим на странице [репозитория](https://repo.jellyfin.org/?path=/server/linux) ссылку на последнюю версию и копируем tar.gz. Далее скачаем и распакуем. После распаковки создадим символическую ссылку и создадим папки. |
+ | ```bash |
+ | sudo wget https://repo.jellyfin.org/files/server/linux/latest-stable/amd64/jellyfin_10.10.7-amd64.tar.gz |
+ | sudo tar xvzf jellyfin_10.10.7-amd64.tar.gz |
+ | sudo ln -s jellyfin_10.10.7 jellyfin |
+ | sudo mkdir data cache config log |
+ | ``` |
+ | |
+ | Бинарник готов, осталось организовать FFmpeg. В связке с Jellyfin рекомендуется использовать кастомный билд который можно взять так же в [репозитории](https://repo.jellyfin.org/?path=/ffmpeg). В моем случае это Debian, поэтому просто находим deb пакет и ставим. |
+ | ```bash |
+ | wget https://repo.jellyfin.org/files/ffmpeg/debian/latest-7.x/amd64/jellyfin-ffmpeg7_7.1.1-2-bookworm_amd64.deb |
+ | sudo dpkg -i jellyfin-ffmpeg7_7.1.1-2-bookworm_amd64.deb |
+ | ``` |
+ | |
+ | Создадим скрипт jellyfin.sh который будет запускаться как сервер |
+ | ``` |
+ | #!/bin/bash |
+ | JELLYFINDIR="/opt/jellyfin" |
+ | FFMPEGDIR="/usr/share/jellyfin-ffmpeg" |
+ | |
+ | $JELLYFINDIR/jellyfin/jellyfin \ |
+ | -d $JELLYFINDIR/data \ |
+ | -C $JELLYFINDIR/cache \ |
+ | -c $JELLYFINDIR/config \ |
+ | -l $JELLYFINDIR/log \ |
+ | --ffmpeg $FFMPEGDIR/ffmpeg |
+ | ``` |
+ | |
+ | Файлу дадим права на запуск и назначим пользователя: |
+ | ```bash |
+ | sudo chown -R user:group * |
+ | sudo chmod u+x jellyfin.sh |
+ | ``` |
+ | |
+ | Далее создаем systemd службу которая будет запускаться автоматически при старте системы. Создадим файл `/etc/systemd/system/jellyfin.service` |
+ | ``` |
+ | [Unit] |
+ | Description=Jellyfin |
+ | After=network.target |
+ | |
+ | [Service] |
+ | Type=simple |
+ | User=youruser |
+ | Restart=always |
+ | ExecStart=/opt/jellyfin/jellyfin.sh |
+ | |
+ | [Install] |
+ | WantedBy=multi-user.target |
+ | ``` |
+ | |
+ | По классике перезагружаем демон systemd и запускаем. Так же не забываем поставить на автостарт |
+ | ```bash |
+ | sudo systemctl daemon-reload |
+ | sudo systemctl enable jellyfin.service |
+ | sudo systemctl start jellyfin.service |
+ | ``` |