Jellyfin em uma VPS: como criar seu próprio servidor de mídia
Uma pasta cheia de vídeos raramente se parece com uma biblioteca de mídia prática: nomes de arquivos desorganizados, legendas separadas e busca manual pelo episódio certo. O Jellyfin transforma esse tipo de arquivo em um serviço pessoal de streaming, com capas, descrições, perfis e continuação da reprodução.
Ao mesmo tempo, o Jellyfin não vende assinaturas nem oferece um catálogo de conteúdo pronto. Ele funciona com seus próprios arquivos e pode ser hospedado em um computador doméstico, NAS ou VPS. A seguir, veremos os recursos do serviço, os requisitos do servidor e a instalação no Ubuntu com domínio e HTTPS.
O que é o Jellyfin e para que ele serve
O Jellyfin é um servidor de mídia gratuito e de código aberto. O servidor indexa filmes, séries, músicas, fotos e outros conteúdos, enquanto os aplicativos clientes os reproduzem em um celular, computador ou televisão.
Depois de analisar as pastas, o Jellyfin baixa capas e descrições, organiza as séries por temporadas, memoriza o progresso e exibe uma seção “Continuar assistindo”. Para uma família, é possível criar perfis locais separados, limitar o acesso às bibliotecas e configurar o controle parental. O Quick Connect permite entrar pela televisão usando um código curto, sem digitar uma senha longa.
Há clientes disponíveis para Android, iOS, Android TV, Roku, webOS, Tizen, Xbox e computadores. Também existe uma interface web e integração com o Kodi.
Além disso, o Jellyfin oferece suporte a músicas, IPTV, sintonizadores de TV e gravação de transmissões. O SyncPlay sincroniza a reprodução entre vários usuários, enquanto os plugins adicionam legendas, novas fontes de metadados e integrações.
O Jellyfin não procura nem baixa filmes por conta própria. Ele apenas organiza e transmite o conteúdo que já está em posse do proprietário do servidor.
Jellyfin e Plex: principais diferenças
As duas soluções transformam uma coleção local em um serviço de mídia, mas utilizam modelos diferentes.
| Parâmetro | Jellyfin | Plex |
|---|---|---|
| Código-fonte | Aberto | Proprietário |
| Recursos premium | O servidor e os clientes oficiais não possuem nível pago | Alguns recursos dependem do plano |
| Conta central | Não é necessária | Utiliza o ecossistema do fornecedor |
| Acesso remoto | O proprietário configura domínio, proxy reverso ou VPN | Oferece mais mecanismos prontos |
| Controle dos dados | Máximo | Parte da infraestrutura é controlada pelo fornecedor |
O Jellyfin é escolhido por sua independência, privacidade e ausência de assinatura. O Plex pode ser mais conveniente quando a prioridade é uma configuração tão simples quanto possível e aplicativos igualmente bem-acabados em todos os dispositivos.
Direct Play ou transcodificação: o que sobrecarrega o servidor
O desempenho do Jellyfin depende menos do tamanho da biblioteca do que do método de reprodução.
| Modo | O que acontece | Carga |
|---|---|---|
| Direct Play | O servidor transmite o arquivo original | Baixa |
| Direct Stream | O contêiner ou uma faixa individual é alterado | Baixa ou média |
| Transcoding | O codec, a resolução ou a taxa de bits são alterados em tempo real | Alta |
Se a televisão for compatível com o codec, o áudio e as legendas do arquivo, o servidor quase não utiliza CPU. Os problemas começam quando o cliente não entende o formato, a conexão exige uma taxa de bits menor ou as legendas precisam ser incorporadas à imagem. Nesse caso, o Jellyfin inicia o FFmpeg e transcodifica o vídeo em tempo real.
Conteúdos 4K, HEVC, HDR e a conversão de HDR para SDR são especialmente exigentes. Uma VPS comum sem placa de vídeo pode não dar conta, mesmo que tenha muitos núcleos virtuais. Por isso, formatos compatíveis e Direct Play muitas vezes economizam mais dinheiro do que a migração para o plano seguinte.
Qual servidor o Jellyfin precisa
A recomendação oficial para uma instalação comum é de cerca de 8 GB de RAM. No Linux sem interface gráfica, um servidor pequeno pode funcionar com 4 GB. Um disco rápido é necessário para o sistema, o banco de dados, as imagens, o cache e os arquivos temporários; a biblioteca de mídia fica armazenada separadamente e normalmente ocupa a maior parte do espaço.
| Cenário | Configuração inicial | Comentário |
|---|---|---|
| Música e um stream 1080p com Direct Play | 2 vCPU, 4 GB de RAM | A velocidade da rede e do disco é mais importante |
| Pequena biblioteca de mídia familiar | 4 vCPU, 8 GB de RAM | Formatos compatíveis são recomendados |
| Transcodificação ocasional em 1080p | 4–8 vCPU de alto desempenho ou GPU | A carga depende do codec |
| Vários streams 4K/HDR | iGPU Intel moderna ou placa de vídeo | Uma VPS comum somente com CPU não é adequada |
Considere também o tráfego: um stream de 20 Mbps transfere cerca de 9 GB de dados por hora. Com reprodução diária, o consumo chega rapidamente a centenas de gigabytes por mês.
Servidor doméstico ou VPS
Um mini PC ou NAS doméstico é mais econômico para uma coleção de vários terabytes e transcodificação frequente por hardware. Você pode instalar discos de grande capacidade e escolher um processador com Intel Quick Sync, mas o acesso remoto depende da energia elétrica, da conexão doméstica e da disponibilidade de um IP público.
Uma VPS possui endereço público, conexão estável e funciona 24 horas por dia. Ela é conveniente para músicas, uma videoteca pequena, Direct Play e usuários em locais diferentes. As limitações são o custo do armazenamento e a ausência de GPU nos planos comuns.
Também existe uma opção híbrida: os arquivos permanecem em casa, enquanto a VPS funciona como um ponto de entrada protegido. Essa arquitetura ajuda quando não há um IPv4 público, mas a velocidade de reprodução continua limitada pela largura de banda de upload da conexão doméstica.
Instalação do Jellyfin no Ubuntu com Docker Compose
Na configuração abaixo, Jellyfin e Caddy são executados na mesma rede Docker. A porta 8096 não é exposta à internet; o Caddy recebe conexões HTTPS e obtém automaticamente um certificado.
Primeiro, aponte o registro A do domínio, por exemplo media.example.com, para o endereço IP do servidor.
1. Instale o Docker e crie os diretórios
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
sudo mkdir -p /opt/jellyfin/{config,cache,caddy-data,caddy-config}
sudo mkdir -p /srv/media/{movies,series,music}
cd /opt/jellyfin2. Crie /opt/jellyfin/compose.yaml
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
volumes:
- ./config:/config
- ./cache:/cache
- /srv/media:/media:ro
networks: [media]
caddy:
image: caddy:2
container_name: jellyfin-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
networks: [media]
networks:
media:O parâmetro :ro monta a biblioteca de mídia em modo somente leitura e protege os arquivos originais contra exclusão acidental pelo Jellyfin.
3. Crie /opt/jellyfin/Caddyfile
media.example.com {
reverse_proxy jellyfin:8096
}Substitua o domínio pelo seu, inicie os contêineres e abra as portas necessárias:
sudo docker compose up -d
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enableSe o SSH utilizar outra porta, libere-a com uma regra separada antes de executar ufw enable.
Depois que o certificado for emitido, abra https://media.example.com. Nas configurações de rede do Jellyfin, adicione o proxy reverso à lista de proxies confiáveis para que as restrições de acesso externo funcionem corretamente.
Configuração inicial da biblioteca de mídia
No assistente, selecione o idioma, crie um administrador e adicione as bibliotecas:
- filmes —
/media/movies; - séries —
/media/series; - músicas —
/media/music.
Use nomes claros para garantir uma identificação precisa:
/media/movies/Título do filme (2024)/Título do filme (2024).mkv
/media/series/Título da série (2024)/Season 01/Título da série S01E01.mkvCrie um perfil padrão separado para assistir e oculte a conta de administrador da tela de login. Conceda aos usuários acesso apenas às bibliotecas necessárias e não permita a exclusão de arquivos sem necessidade.
Atualizações e backups
A configuração do Jellyfin contém usuários, ajustes, o banco de dados e o progresso de reprodução. Antes de atualizar, pare o contêiner e salve o diretório config:
cd /opt/jellyfin
sudo docker compose stop jellyfin
sudo tar -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker compose start jellyfinTransfira o arquivo compactado para fora da VPS. Os arquivos de mídia devem ser copiados separadamente.
Para atualizar, execute:
sudo docker compose pull
sudo docker compose up -dNão exponha diretamente a porta 8096. Use HTTPS ou VPN, instale atualizações regularmente e monitore o espaço livre em disco.
Jellyfin em uma VPS da tropic.host
Para uma biblioteca de mídia pequena que utilize principalmente Direct Play, você pode começar com uma VPS Linux de 4 GB de RAM. Para vários usuários, um banco de dados grande e serviços adicionais, é mais razoável escolher 8 GB.
Ao escolher uma VPS na tropic.host, avalie separadamente a capacidade do disco, o tráfego mensal e a necessidade de transcodificação. Um servidor virtual é conveniente como ponto de acesso sempre disponível, com IP público e HTTPS, mas não substitui um servidor com GPU. Se você precisar de vários streams 4K/HDR com conversão de formato, é melhor usar um servidor doméstico com iGPU Intel, um servidor dedicado ou um plano especializado com placa de vídeo.
Você pode começar com uma coleção pequena, verificar no painel do Jellyfin a proporção de sessões Direct Play e só então aumentar CPU, RAM ou armazenamento de acordo com a carga real.
Conclusão
O Jellyfin transforma sua própria coleção em um serviço pessoal de streaming sem assinatura obrigatória ou conta central. Para uma implantação bem-sucedida, é importante estimar antecipadamente o armazenamento, o tráfego e a probabilidade de transcodificação.
Um servidor pequeno com Direct Play muitas vezes funciona com 4–8 GB de RAM. A reprodução frequente de 4K/HDR exige processamento de vídeo por hardware. Independentemente da configuração, proteja o acesso externo com HTTPS ou VPN e faça backups separados das configurações e da biblioteca de mídia.
FAQ
O Jellyfin é totalmente gratuito?
Sim. O servidor e os clientes estão disponíveis sem plano premium. Você só precisa pagar pelo equipamento, pela VPS, pelos discos, pelo domínio e pelo tráfego.
O Jellyfin inclui filmes e séries prontos para assistir?
Não. O usuário adiciona seus próprios arquivos de mídia.
É possível executar o Jellyfin em uma VPS sem placa de vídeo?
Sim, desde que a maioria dos arquivos seja reproduzida por Direct Play. A transcodificação frequente de conteúdo 4K e HDR exige um servidor com iGPU adequada ou placa de vídeo.
De quanta RAM o Jellyfin precisa?
Um servidor Linux pequeno pode funcionar com 4 GB de RAM. Para uma biblioteca de mídia familiar e vários usuários, é melhor considerar 8 GB.
Como acessar o Jellyfin com segurança pela internet?
Use um domínio e HTTPS por meio de um proxy reverso ou uma VPN. Não exponha diretamente a porta 8096 e crie contas de usuário separadas com permissões mínimas.
