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 Servertransmission.SEU_DOMINIO- Transmission Web UIjackett.SEU_DOMINIO- Jackettsonarr.SEU_DOMINIO- Sonarrradarr.SEU_DOMINIO- Radarrbazarr.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)
-
Configure registros DNS A/AAAA apontando para seu IP público:
*.seudominio.com→SEU_IP_PUBLICO
-
Configure port forwarding no roteador:
- Porta 80 → 80 (HTTP)
- Porta 443 → 443 (HTTPS)
-
No
.env, configureDOMAIN=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
- Acesse cada serviço via navegador
- Verifique se as configurações estão corretas
- 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
- Autenticação: Configure senhas fortes em todos os serviços
- Firewall: Mantenha apenas portas 80, 443 abertas externamente
- Atualizações: Execute
docker-compose pullregularmente - Backups: Configure backups automáticos regulares
- 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
- Verifique se portas 80 e 443 estão acessíveis externamente
- Confirme que DNS está apontando corretamente
- Veja logs do Caddy:
docker-compose logs caddy
Serviços não se comunicam
- Verifique se estão na mesma rede:
docker network ls - Use nomes de container como hostname
- Não use
localhostou127.0.0.1entre 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:
Description
1.0.0
Latest
Languages
Caddyfile
100%