gatoflix/README.md
2025-11-21 22:46:59 -03:00

6.3 KiB

Gatoflix Media Center

Stack completa de servidor de mídia com Plex, Sonarr, Radarr, Bazarr, Jackett, Transmission e FlareSolverr, gerenciados via Docker Compose com proxy reverso Caddy.

Serviços Incluídos

Media Server

  • Plex - Servidor de streaming de mídia

Download

  • Transmission - Cliente BitTorrent

Indexers & Resolvers

  • Jackett - Agregador de indexadores/trackers
  • FlareSolverr - Bypass de proteção Cloudflare

PVR (Personal Video Recorder)

  • Sonarr - Gerenciador de séries de TV
  • Radarr - Gerenciador de filmes

Subtitles

  • Bazarr - Gerenciador de legendas

Proxy Reverso

  • Caddy - Servidor web com HTTPS automático

Estrutura de Subdomínios

Todos os serviços são acessíveis via subdomínios:

  • plex.SEU_DOMINIO - Plex Media Server
  • transmission.SEU_DOMINIO - Transmission Web UI
  • jackett.SEU_DOMINIO - Jackett
  • sonarr.SEU_DOMINIO - Sonarr
  • radarr.SEU_DOMINIO - Radarr
  • bazarr.SEU_DOMINIO - Bazarr

Instalação

1. Configurar variáveis de ambiente

# Copiar arquivo de exemplo
cp .env.example .env

# Editar com seus valores
nano .env

2. Criar estrutura de diretórios

# Criar diretórios de aplicação
mkdir -p ~/gatoflix/appdata/{plex,plex/transcode,sonarr,radarr,bazarr,jackett,transmission,caddy/{data,config},downloads}

# Criar diretórios de mídia (se ainda não existirem)
mkdir -p ~/gatoflix/MEDIA/{Filmes,Series}

# Criar diretórios de torrents
mkdir -p ~/gatoflix/torrent/{complete/{radarr,tv-sonarr},incomplete,watch}

3. Ajustar permissões

# Obter seu UID e GID
id -u  # Geralmente 1000
id -g  # Geralmente 1000

# Ajustar permissões (use os valores corretos de PUID e PGID)
sudo chown -R 1000:1000 ~/gatoflix/appdata
sudo chown -R 1000:1000 ~/gatoflix/MEDIA
sudo chown -R 1000:1000 ~/gatoflix/torrent

4. Configurar DNS

Para acesso local (desenvolvimento/rede interna)

Edite o arquivo /etc/hosts e adicione:

127.0.0.1 plex.media.local
127.0.0.1 transmission.media.local
127.0.0.1 jackett.media.local
127.0.0.1 sonarr.media.local
127.0.0.1 radarr.media.local
127.0.0.1 bazarr.media.local

No .env, configure DOMAIN=media.local

Para acesso externo (produção)

  1. Configure registros DNS A/AAAA apontando para seu IP público:

    • *.seudominio.comSEU_IP_PUBLICO
  2. Configure port forwarding no roteador:

    • Porta 80 → 80 (HTTP)
    • Porta 443 → 443 (HTTPS)
  3. No .env, configure DOMAIN=seudominio.com

5. Iniciar serviços

# Subir todos os containers
docker-compose up -d

# Verificar status
docker-compose ps

# Ver logs
docker-compose logs -f

# Ver logs de um serviço específico
docker-compose logs -f plex

6. Verificar e ajustar

  1. Acesse cada serviço via navegador
  2. Verifique se as configurações estão corretas
  3. Ajuste URLs internas se necessário (ex: Sonarr/Radarr → Transmission)

Configuração dos Serviços

URLs Internas (para configuração entre serviços)

Use os nomes dos containers como hostname:

  • Transmission: http://transmission:9091
  • Jackett: http://jackett:9117
  • FlareSolverr: http://flaresolverr:8191

Exemplos de Configuração

Sonarr/Radarr → Transmission

  • Host: transmission
  • Port: 9091
  • URL Base: (vazio)

Sonarr/Radarr → Jackett

  • Host: http://jackett:9117

Jackett → FlareSolverr

  • FlareSolverr URL: http://flaresolverr:8191

Comandos Úteis

# Parar todos os serviços
docker-compose down

# Reiniciar um serviço específico
docker-compose restart plex

# Ver logs em tempo real
docker-compose logs -f

# Atualizar images
docker-compose pull
docker-compose up -d

# Remover containers, networks e volumes (CUIDADO!)
docker-compose down -v

# Executar comando em um container
docker-compose exec plex bash

Backup

Backup dos dados de configuração

# Criar backup
tar -czf backup-gatoflix-$(date +%Y%m%d).tar.gz \
  ~/gatoflix/appdata

# Restaurar backup
tar -xzf backup-gatoflix-YYYYMMDD.tar.gz -C /

Backup da biblioteca de mídia

# Use rsync para backups incrementais
rsync -av --progress \
  ~/gatoflix/MEDIA/ \
  /caminho/destino/backup/

Segurança

Segurança

Recomendações

Recomendações

  1. Autenticação: Configure senhas fortes em todos os serviços
  2. Firewall: Mantenha apenas portas 80, 443 abertas externamente
  3. Atualizações: Execute docker-compose pull regularmente
  4. Backups: Configure backups automáticos regulares
  5. HTTPS: Caddy gerencia certificados SSL automaticamente

Autenticação Básica no Caddy (Opcional)

Para adicionar camada extra de segurança:

# Gerar hash de senha
docker run --rm caddy caddy hash-password --plaintext 'sua-senha-forte'

# Adicionar ao .env
ADMIN_USER=admin
ADMIN_PASSWORD_HASH=<hash_gerado>

Descomente as linhas de basicauth no Caddyfile.

Troubleshooting

Containers não iniciam

# Verificar logs
docker-compose logs

# Verificar permissões
ls -la ~/gatoflix/appdata

Erro de permissões

# Ajustar owner dos diretórios
sudo chown -R 1000:1000 ~/gatoflix/appdata

Certificados SSL não geram

  1. Verifique se portas 80 e 443 estão acessíveis externamente
  2. Confirme que DNS está apontando corretamente
  3. Veja logs do Caddy: docker-compose logs caddy

Serviços não se comunicam

  1. Verifique se estão na mesma rede: docker network ls
  2. Use nomes de container como hostname
  3. Não use localhost ou 127.0.0.1 entre containers

Estrutura do Projeto

gatoflix/
├── docker-compose.yml      # Definição de todos os serviços
├── Caddyfile              # Configuração do proxy reverso
├── .env                   # Variáveis de ambiente (não versionado)
├── .env.example           # Template de variáveis de ambiente
├── .gitignore             # Arquivos ignorados pelo git
└── README.md              # Esta documentação

Licença

Este é um projeto pessoal de gerenciamento de mídia.

Suporte

Para problemas específicos dos serviços: