Categorias

Servidor de mídia em casa com Raspberry Pi e Jellyfin

Tutorial completo: monte um servidor de mídia caseiro com Raspberry Pi 5 e Jellyfin, com HD externo, montagem automática e integração ao Home Assistant.

Toda coleção de filme, série e foto que você acumulou está espalhada em HD externo, pendrive e pastas do computador — e você nunca assiste, porque dá trabalho achar e conectar. Um servidor de mídia resolve isso: a biblioteca inteira aparece organizada, com capa e sinopse, em qualquer TV, celular ou navegador da casa.

E resolve sem mensalidade, sem nuvem e sem depender de um serviço que pode mudar de política amanhã.

Este tutorial monta esse servidor com Raspberry Pi 5 e Jellyfin, do zero até a integração com o Home Assistant.

Antes de começar: a limitação que define o projeto

Vale saber disso antes de comprar qualquer coisa, porque muda a forma de montar a biblioteca.

Servidor de mídia opera em dois modos:

Reprodução direta (Direct Play). O aplicativo cliente consegue tocar o arquivo no formato original. O servidor só lê do disco e manda pela rede. Exige quase nada de processamento — o Pi 5 serve vários clientes simultâneos assim, sem suar.

Transcodificação. O cliente não suporta o formato, e o servidor precisa converter o vídeo em tempo real. Isso é trabalho pesado de processamento.

O ponto importante: o Raspberry Pi 5 não é uma boa máquina de transcodificação. Ele não trouxe o codificador H.264 por hardware que existia no Pi 4 — o que ele tem é decodificação HEVC. Na prática, transcodificar no Pi 5 recai sobre a CPU, e a CPU não dá conta com fluidez.

A consequência prática: monte a biblioteca em formatos amplamente compatíveis (H.264 em contêiner MP4 ou MKV, áudio AAC) e configure os clientes para reproduzir direto. Fazendo isso, o Pi 5 é um servidor excelente. Contando com transcodificação, ele vai decepcionar.

Lista de materiais

Produto Destaque Nota Comprar
Raspberry Pi 5 4GB · Raspberry Pi O cérebro do servidor ⭐ 4.7
SanDisk microSD 128GB · SanDisk Sistema e metadados ⭐ 4.8
HD Externo Toshiba 1TB · Toshiba Melhor custo por TB ⭐ 4.8
SanDisk SSD Portátil 1TB · SanDisk Silencioso e sem quedas de USB ⭐ 4.7
Gabinete ElectroCookie Pi 5 · ElectroCookie Refrigeração ativa ⭐ 4.5

Raspberry Pi 5 4GB

Raspberry Pi 5 Model B 4GB

4GB são suficientes com folga para Jellyfin em reprodução direta. Os 8GB só se justificam se você pretende rodar outras coisas na mesma máquina — Home Assistant, Pi-hole, um servidor de arquivos.

⚠️ Sobre a fonte: o Pi 5 precisa de fonte USB-C de 5V/5A para alimentar periféricos com folga. A fonte do Pi 4 funciona para o básico, mas com disco externo conectado ela vira a causa de reinício aleatório. É o erro mais comum de quem migra do Pi 4.

Pontos positivos

  • 4GB são suficientes com folga para Jellyfin em reprodução direta
  • Versão homologada pela Anatel, relevante para garantia no Brasil

Pontos negativos

  • Exige fonte USB-C de 5V/5A — a fonte do Pi 4 causa reinícios com disco conectado
Ver na Amazon

SanDisk microSD 128GB

SanDisk microSDXC Ultra 128GB

O cartão guarda o sistema, o banco de metadados e as capas que o Jellyfin baixa — que ocupam mais do que se imagina numa biblioteca grande. 128GB dão folga confortável.

Mas trate o cartão como peça de consumo. Ele tem número limitado de ciclos de escrita e é o componente que mais falha em Raspberry Pi ligado 24 horas por dia. É justamente por isso que a mídia fica no disco externo: quando o cartão morrer — e ele vai —, você regrava o sistema e a biblioteca continua intacta.

Pontos positivos

  • 128GB acomodam sistema, banco de metadados e capas com folga
  • SanDisk tem o melhor histórico de confiabilidade em cartão para Raspberry Pi

Pontos negativos

  • microSD é o componente que mais falha em Pi ligado 24/7 — planeje o backup
Ver na Amazon

O armazenamento: HD ou SSD?

HD Externo Toshiba 1TB Canvio Basics

HD Toshiba 1TB tem o melhor custo por terabyte, e para armazenar vídeo capacidade importa muito mais que velocidade — servir um filme por rede local não chega perto de saturar nem um HD mecânico lento.

O risco é elétrico: HD de 2,5” alimentado pela USB puxa um pico de corrente ao iniciar o prato, e esse pico pode exceder o que o Pi entrega com folga. O sintoma é característico — o disco some do sistema no meio de uma reprodução.

Pontos positivos

  • Melhor custo por terabyte — para mídia, capacidade vale mais que velocidade
  • Nota 4,8 entre os HDs externos mais vendidos do país

Pontos negativos

  • Pico de corrente na partida pode causar desconexões se a alimentação não tiver folga
Ver na Amazon

SanDisk SSD Portátil 1TB

SanDisk SSD 1TB resolve exatamente esse problema: sem prato girando, o consumo é muito menor e o pico de partida desaparece. É silencioso e tolera vibração — relevante num aparelho que vai ficar ligado direto num móvel da sala.

A velocidade extra é irrelevante para servir vídeo, e o custo por terabyte é bem maior. Você paga pela estabilidade e pelo silêncio, não pelo desempenho.

Pontos positivos

  • Consumo baixo elimina o risco de reinício por falta de corrente no USB
  • Silencioso e sem partes móveis — melhor para equipamento ligado 24/7 na sala

Pontos negativos

  • Custo por terabyte muito maior, e a velocidade extra não serve para nada aqui
Ver na Amazon

Gabinete com refrigeração ativa

Gabinete ElectroCookie para Raspberry Pi 5

Não é opcional aqui. O Pi 5 esquenta bastante, e servidor ligado direto significa carga contínua. Sem refrigeração adequada ele reduz a frequência do processador para se proteger, e o desempenho cai justamente quando você está assistindo.

O corpo de alumínio ajuda na dissipação passiva além da ventoinha.

Se o servidor vai ficar na sala, considere que ventoinha faz ruído. Um dissipador passivo grande pode ser a escolha melhor nesse caso.

Pontos positivos

  • Refrigeração ativa é praticamente obrigatória no Pi 5 sob carga contínua
  • Alumínio agrega dissipação passiva à ventoinha

Pontos negativos

  • Ruído da ventoinha incomoda se o servidor ficar na sala
Ver na Amazon

Passo 1 — Sistema no cartão

Grave o Raspberry Pi OS Lite (64-bit) com o Raspberry Pi Imager. Sem interface gráfica: o servidor não precisa, e ela só consome memória e ciclos de disco.

Antes de gravar, abra as configurações avançadas do Imager (ícone de engrenagem) e já deixe pronto:

  • Hostname: jellyfin
  • Habilitar SSH com senha ou chave
  • Usuário e senha
  • Wi-Fi, se não for usar cabo

📡 Use cabo de rede se puder. Servir vídeo por Wi-Fi funciona, mas o cabo elimina de uma vez travamento por interferência e disputa de banda — que é a causa número um de “o servidor está lento” em instalação doméstica.

Ligue o Pi e conecte:

ssh usuario@jellyfin.local

Atualize o sistema antes de qualquer coisa:

sudo apt update && sudo apt full-upgrade -y
sudo reboot

Passo 2 — Monte o disco automaticamente

Este é o passo que a maioria dos tutoriais faz mal, e o resultado é um servidor que perde a biblioteca toda vez que reinicia.

Conecte o disco e identifique ele:

lsblk -f

Você vai ver algo como sda1 com um UUID e o tipo de sistema de arquivos. Anote o UUID.

Se o disco estiver em exFAT ou NTFS (comum em disco que veio formatado de fábrica), instale o suporte:

# exFAT
sudo apt install -y exfat-fuse exfatprogs

# NTFS
sudo apt install -y ntfs-3g

Crie o ponto de montagem:

sudo mkdir -p /mnt/midia

Edite o /etc/fstab:

sudo nano /etc/fstab

Adicione uma das linhas abaixo, conforme o sistema de arquivos do seu disco, trocando o UUID pelo seu:

# Para disco ext4 (recomendado se você puder formatar)
UUID=cole-seu-uuid-aqui  /mnt/midia  ext4   defaults,nofail  0  2

# Para disco exFAT
UUID=CO-LE  /mnt/midia  exfat  defaults,uid=1000,gid=1000,umask=002,nofail  0  0

# Para disco NTFS
UUID=cole-seu-uuid-aqui  /mnt/midia  ntfs-3g  defaults,uid=1000,gid=1000,umask=002,nofail  0  0

⚠️ O nofail é essencial. Sem ele, se o disco não estiver presente no boot, o Raspberry Pi trava na inicialização e você precisa de teclado e monitor para recuperar. Com nofail, ele apenas ignora e sobe normalmente.

Monte e confirme:

sudo mount -a
df -h /mnt/midia

Se o df mostrar o tamanho do disco, está certo. Reinicie e confira de novo — é o teste que garante que a montagem sobrevive ao boot:

sudo reboot

Passo 3 — Instale o Jellyfin

O projeto mantém um instalador oficial para sistemas baseados em Debian, que é o caso do Raspberry Pi OS:

curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash

Rodar script direto da internet com sudo merece o cuidado de sempre: esse é o método publicado pelo próprio projeto, mas se você preferir inspecionar antes, baixe primeiro (curl -o install.sh https://repo.jellyfin.org/install-debuntu.sh), leia, e só então execute.

Confirme que subiu:

sudo systemctl status jellyfin

Deve aparecer active (running). Garanta que ele inicia junto com o sistema:

sudo systemctl enable jellyfin

Passo 4 — Permissão de leitura no disco

O Jellyfin roda com um usuário próprio, e ele precisa conseguir ler a pasta da mídia. Em disco ext4, ajuste o grupo:

sudo chown -R root:jellyfin /mnt/midia
sudo chmod -R 755 /mnt/midia

Em disco exFAT ou NTFS, permissão POSIX não se aplica do mesmo jeito — quem manda são as opções uid, gid e umask que você colocou no fstab. Se o Jellyfin não enxergar os arquivos, adicione o usuário dele ao seu grupo:

sudo usermod -aG $USER jellyfin
sudo systemctl restart jellyfin

Passo 5 — Configuração inicial

Abra no navegador de qualquer máquina da rede:

http://jellyfin.local:8096

Se o .local não resolver, descubra o IP do Pi:

hostname -I

E acesse http://IP-DO-PI:8096.

O assistente vai pedir idioma, usuário administrador e as bibliotecas. Ao adicionar uma biblioteca, aponte para as subpastas de /mnt/midia — por exemplo /mnt/midia/filmes e /mnt/midia/series, separadas por tipo de conteúdo. Isso importa: o Jellyfin usa o tipo da biblioteca para decidir como buscar metadados.

Organize os arquivos assim

O reconhecimento automático de capa e sinopse depende da nomenclatura. O padrão que funciona:

/mnt/midia/filmes/O Nome do Filme (2024)/O Nome do Filme (2024).mkv
/mnt/midia/series/Nome da Serie/Season 01/Nome da Serie S01E01.mkv

O ano entre parênteses nos filmes resolve a maioria dos casos de identificação errada — sem ele, títulos com refilmagem viram loteria.

Passo 6 — Force a reprodução direta

Esta é a configuração que faz o Pi 5 ser um bom servidor.

No painel administrativo, em Painel → Reprodução, revise as opções de transcodificação. Em cada cliente (aplicativo na TV, celular, navegador), busque a configuração de qualidade e escolha a opção de qualidade máxima ou original em vez de um limite de banda — limite de banda é o que faz o cliente pedir transcodificação sem necessidade.

Você confere se está funcionando pelo próprio painel: com algo tocando, vá em Painel → Atividade. Se aparecer Direct Play, o Pi está apenas lendo e enviando. Se aparecer Transcodificando, alguma coisa forçou a conversão — normalmente um limite de qualidade no cliente ou um formato de áudio incompatível.

Passo 7 — Integre ao Home Assistant

Aqui a coisa fica interessante, porque o servidor deixa de ser só um repositório e vira parte da automação da casa.

O Home Assistant tem integração nativa com Jellyfin. Adicione em Configurações → Dispositivos e Serviços → Adicionar Integração → Jellyfin, informando http://IP-DO-PI:8096 e as credenciais.

Isso cria entidades media_player para cada sessão. Com elas, a automação clássica de cinema em casa:

automation:
  - alias: "Cinema — escurece a sala quando o filme começa"
    trigger:
      - platform: state
        entity_id: media_player.jellyfin_tv_da_sala
        to: "playing"
    condition:
      - condition: sun
        after: sunset
    action:
      - service: light.turn_on
        target:
          entity_id: light.sala
        data:
          brightness_pct: 15
          transition: 3
      - service: switch.turn_off
        target:
          entity_id: switch.luz_led_estante

  - alias: "Cinema — acende quando pausa ou termina"
    trigger:
      - platform: state
        entity_id: media_player.jellyfin_tv_da_sala
        to: "paused"
      - platform: state
        entity_id: media_player.jellyfin_tv_da_sala
        to: "idle"
    action:
      - service: light.turn_on
        target:
          entity_id: light.sala
        data:
          brightness_pct: 70
          transition: 3

Ajuste os entity_id para os nomes que aparecem no seu Home Assistant — eles variam conforme o nome do cliente que você configurou no Jellyfin.

Passo 8 — Backup (não pule)

O cartão microSD vai falhar em algum momento. O que você não quer perder é a configuração: usuários, bibliotecas, progresso de reprodução, capas.

sudo systemctl stop jellyfin
sudo tar -czf /mnt/midia/backup-jellyfin-$(date +%F).tar.gz \
  /var/lib/jellyfin /etc/jellyfin
sudo systemctl start jellyfin

Repare que o backup vai para o disco externo, não para o cartão — guardar o backup no componente que vai falhar não ajuda muito.

Para automatizar semanalmente, coloque isso num script e agende no cron:

sudo crontab -e
0 4 * * 0 /usr/local/bin/backup-jellyfin.sh

Problemas comuns

O disco some no meio da reprodução. Alimentação. Use fonte de 5V/5A no Pi 5, ou um hub USB com fonte própria, ou troque o HD mecânico por SSD.

O Pi reinicia sozinho. Mesma causa na maioria dos casos. Confira também a temperatura: vcgencmd measure_temp.

A biblioteca sumiu depois do reboot. O disco não montou. Confira /etc/fstab e rode sudo mount -a para ver o erro.

Está transcodificando sem necessidade. Limite de qualidade configurado no cliente, ou faixa de áudio incompatível. Ajuste o cliente para qualidade original.

Vídeo travando pela rede. Wi-Fi. Cabo resolve na maioria dos casos.

🔒 Sobre acessar de fora de casa: não abra a porta 8096 no roteador. Isso expõe o serviço a varredura automatizada e transforma qualquer falha não corrigida em porta de entrada para a rede inteira. Use VPN para entrar na sua própria rede, ou coloque um proxy reverso com HTTPS e autenticação na frente. Para assistir na casa de alguém de vez em quando, a VPN resolve com muito menos risco.

Perguntas frequentes

O Pi 5 aguenta? Aguenta bem em reprodução direta. Transcodificação pesada não é para ele — monte a biblioteca em formatos compatíveis.

Jellyfin ou Plex? Jellyfin é livre, sem conta e sem assinatura. Plex é mais polido e mais fácil de configurar, mas exige conta.

Preciso de HD externo? Precisa. Por espaço e, principalmente, para isolar a biblioteca do cartão microSD, que é o que falha.

Dá para acessar de fora? Dá, mas por VPN ou proxy reverso com HTTPS — nunca abrindo a porta direto no roteador.

Por que o HD desconecta? Alimentação insuficiente no pico de partida. Fonte adequada, hub com fonte própria ou SSD resolvem.


Montou o seu e travou em alguma etapa? Fale com a gente.

Resumo dos produtos avaliados

#1
Raspberry Pi 5 Model B 4GB Anatel

Raspberry Pi

Raspberry Pi 5 Model B 4GB Anatel

4.7

Confira o preço atualizado na loja

Pontos positivos

  • A versão de 4GB é suficiente com folga para Jellyfin servindo alguns clientes simultâneos em reprodução direta
  • Versão com homologação Anatel, o que importa para garantia e suporte no Brasil

Pontos negativos

  • O Pi 5 exige fonte USB-C de 5V/5A para alimentar periféricos com folga — a fonte antiga do Pi 4 não dá conta
#2
SanDisk Cartão microSDXC Ultra 128GB Classe 10 100MB/s

SanDisk

SanDisk Cartão microSDXC Ultra 128GB Classe 10 100MB/s

4.8

Confira o preço atualizado na loja

Pontos positivos

  • 128GB dão folga para o sistema, os metadados e as capas que o Jellyfin baixa para a biblioteca
  • SanDisk é a marca com melhor histórico de confiabilidade em cartão para Raspberry Pi

Pontos negativos

  • Cartão microSD é o componente que mais falha em Raspberry Pi ligado 24 horas por dia — planeje backup
#3
HD Externo Toshiba 1TB Canvio Basics USB 3.0

Toshiba

HD Externo Toshiba 1TB Canvio Basics USB 3.0

4.8

Confira o preço atualizado na loja

Pontos positivos

  • Melhor custo por terabyte da lista — para armazenar mídia, capacidade importa mais que velocidade
  • Nota 4,8 com volume alto de avaliações, entre os HDs externos mais vendidos do país

Pontos negativos

  • HD mecânico alimentado pela USB pode exigir mais corrente do que o Pi entrega com folga, causando desconexões
#4
SanDisk SSD Portátil 1TB USB-C até 800 MB/s

SanDisk

SanDisk SSD Portátil 1TB USB-C até 800 MB/s

4.7

Confira o preço atualizado na loja

Pontos positivos

  • Sem partes móveis: silencioso, mais tolerante a vibração e com consumo bem menor que o de um HD mecânico
  • Consumo baixo reduz o risco de o Pi reiniciar por falta de corrente no barramento USB

Pontos negativos

  • Custo por terabyte muito maior que o do HD, e a velocidade extra não faz diferença para servir vídeo
#5
Gabinete ElectroCookie para Raspberry Pi 5 em alumínio com ventoinha

ElectroCookie

Gabinete ElectroCookie para Raspberry Pi 5 em alumínio com ventoinha

4.5

Confira o preço atualizado na loja

Pontos positivos

  • Refrigeração ativa é praticamente obrigatória no Pi 5 sob carga contínua, que é o caso de um servidor ligado direto
  • Corpo em alumínio ajuda na dissipação passiva além da ventoinha

Pontos negativos

  • Ventoinha faz ruído — se o servidor vai ficar na sala, considere um dissipador passivo maior