O Jellyfin é um servidor de mídia de código aberto que permite organizar, gerenciar e transmitir mídias digitais. Neste guia, vamos instalar o Jellyfin usando o Docker Compose. Ele é uma alternativa ao Emby e Plex proprietários, fornecendo mídia de um servidor dedicado para dispositivos de usuário final por meio de vários aplicativos.
O Jellyfin é descendente do lançamento 3.5.2 do Emby e foi portado para o framework .NET Core para permitir suporte completo entre plataformas.
Índice
Pré-requisitos
Certifique-se de que o Docker e o Docker Compose estejam instalados em seu sistema. Instalar Docker
Instalando Jellyfin Usando Docker Compose
Criando os Diretórios
Primeiramente crie os diretórios necessários para armazenar os dados de configuração, cache e mídia:
/mnt/ └── docker/ └── jellyfin/ ├── config/ ├── cache/ ├── transcode/ ├── tvshows/ └── movies/
mkdir -p /mnt/docker/jellyfin/{config,cache,media,transcode,tvshows,movies/}
Criando o Arquivo Docker Compose
Crie um arquivo chamado docker-compose.yaml no diretório /mnt/docker/jellyfin com o seguinte conteúdo:
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=100
- TZ=America/Sao_Paulo
group_add:
- "106" # Mude para o seu "render" host group id
network_mode: "host"
volumes:
- /mnt/docker/jellyfin/config:/config
- /mnt/docker/jellyfin/cache:/cache
- /mnt/docker/jellyfin/transcode:/transcode
- /mnt/docker/jellyfin/tvseries:/data/tvshows
- /mnt/docker/jellyfin//movies:/data/movies
ports:
- 8096:8096
# - 8920:8920 #optional
# - 7359:7359/udp #optional
# - 1900:1900/udp #optional
restart: unless-stopped
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
Entendendo o Arquivo Docker Compose
image: jellyfin/jellyfin:latest
Isso especifica a imagem Docker que será usada para criar o contêiner. Neste caso, é a última versão da imagem Jellyfin.
container_name: jellyfin
Isso define o nome do contêiner como “jellyfin”.
environment:
Define variáveis de ambiente para o contêiner. Neste caso, são definidos o ID do usuário (PUID), o ID do grupo (PGID) e o fuso horário (TZ) esse valores você precisa mudar conforme seu sistema para saber o numero do seu (PUID) e (PGID) digite no terminal do linux o comando id.
group_add:
Adiciona o contêiner ao grupo especificado.
network_mode: “host”:
Configura o contêiner para usar a rede do host.
volumes:
Esse parâmetro mapeia diretórios no host para diretórios no contêiner. Neste caso, vários diretórios estão sendo mapeados para armazenar configurações, cache, transcodificação e dados de mídia.
ports:
Isso mapeia portas no host para portas no contêiner. Neste caso, a porta 8096 no host é mapeada para a porta 8096 no contêiner.
restart: unless-stopped:
Configura o contêiner para reiniciar automaticamente a menos que seja explicitamente parado.
devices:
Mapeia dispositivos no host para dispositivos no contêiner. Neste caso, um dispositivo de renderização está sendo mapeado.
Habilitando a Transcodificação no Jellyfin
Este arquivo Docker Compose permite a ativação da transcodificação por meio da placa de vídeo integrada da Intel.
Para outras placas consulte mais informações em: Jellyfin Docs
Caso não tenha interesse em habilitar transcodificação pule para Iniciando o Contêiner Jellyfin.
Obtendo o GID do Grupo render
Digite o comando abaixo no terminal do linux
getent group render | cut -d: -f3
Anote o numero e substitua no arquivo docker compose logo abaixo de group_add:
Iniciando o Contêiner Jellyfin
Agora, inicie o container Jellyfin com o seguinte comando:
docker compose up -d
Acessar a Interface Web do Jellyfin
Finalmente, acesse a interface web do Jellyfin no seu navegador através do seguinte endereço:
http://localhost:8096
Configurações Iniciais
Inicialmente, é necessário criar um usuário e uma senha. Após essa etapa, você deve adicionar suas bibliotecas. Para isso, clique no sinal de “+” para iniciar o processo de adição de uma biblioteca de media. No campo “Tipo de conteúdo”, selecione a opção “Filmes” e, em seguida, escolha a pasta /data/movies. Para finalizar, confirme a operação clicando no botão “OK”. Repita o procedimento para a pasta /data/tvshows, selecionando desta vez “Séries” como o tipo de conteúdo.
Testando a Aceleração de Hardware
Execute o comando abaixo para saber quais codecs sua placa suporta
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
Verifique o status do tempo de execução do OpenCL:
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
Verifique se a execução ocorre sem erros. Se sim, então você deve ter suporte à transcodificação QSV. Se algum erro for apresentado, pode ser que sua placa não tenha suporte, nesse caso, você pode usar o método nativo VA-API.
Retorne ao Jellyfin, clique no ícone representado por três linhas horizontais, escolha a opção “Painel” e, em seguida, selecione “Reprodução”.
Em Aceleração de Hardware escolha VAAPI ou QSV(Quick Sync Video) salve as configurações
Para finalmente testar se a aceleração esta funcionando assista algum video e diminua a qualidade da images para forçar a transcodificação, enquanto o filme esta rodando abra o terminal do linux e instale o intel-gpu-tools
sudo apt update && sudo apt install -y intel-gpu-tools
depois de instalado rode o programa
sudo intel-gpu-tools
Verifique se estão trabalhando como imagem abaixo:
Conclusão
O Jellyfin se destaca por ser uma solução de mídia gratuita e de código aberto, que coloca a privacidade do usuário em primeiro lugar. Ao contrário de muitas outras opções de software de mídia, o Jellyfin não rastreia sua atividade nem vende seus dados. Além disso, sendo de código aberto, você tem a liberdade de personalizar e modificar o Jellyfin para atender às suas necessidades específicas. Agora é só aproveitar sua experiência com o Jellyfin!