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

277 lines
6.3 KiB
Markdown

# 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
```bash
# Copiar arquivo de exemplo
cp .env.example .env
# Editar com seus valores
nano .env
```
### 2. Criar estrutura de diretórios
```bash
# 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
```bash
# 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.com``SEU_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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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:
```bash
# 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
```bash
# Verificar logs
docker-compose logs
# Verificar permissões
ls -la ~/gatoflix/appdata
```
### Erro de permissões
```bash
# 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:
- [Plex](https://support.plex.tv/)
- [Sonarr](https://wiki.servarr.com/sonarr)
- [Radarr](https://wiki.servarr.com/radarr)
- [Bazarr](https://wiki.bazarr.media/)
- [Jackett](https://github.com/Jackett/Jackett)
- [Transmission](https://transmissionbt.com/)
- [Caddy](https://caddyserver.com/docs/)