🎉 begin project

This commit is contained in:
Cinco Euzebio 2025-11-21 22:46:59 -03:00
parent 54a5d8d822
commit 874907d167
6 changed files with 995 additions and 1 deletions

145
.env.example Normal file
View File

@ -0,0 +1,145 @@
# ========================================
# Gatoflix Media Center - Environment Variables
# ========================================
# Copie este arquivo para .env e ajuste os valores conforme necessário
# cp .env.example .env
# ========================================
# DOMÍNIO E REDE
# ========================================
# Domínio raiz para acesso aos serviços
# Os subdomínios serão: plex.DOMAIN, sonarr.DOMAIN, radarr.DOMAIN, etc.
#
# REDE LOCAL (recomendado para uso doméstico):
# - Use .local (ex: media.local, gatoflix.local)
# - Caddy usará certificados auto-assinados (TLS interno)
# - Configure /etc/hosts ou DNS local
#
# REDE EXTERNA (exposto na internet):
# - Use um domínio real (ex: gatoflix.com.br)
# - Caddy usará Let's Encrypt automaticamente
# - Requer portas 80 e 443 abertas e DNS configurado
#
DOMAIN=media.local
# ========================================
# USUÁRIO E PERMISSÕES
# ========================================
# ID do usuário e grupo para execução dos containers
# Use 'id -u' e 'id -g' no terminal para obter seus valores
PUID=1000
PGID=1000
# ========================================
# TIMEZONE
# ========================================
# Fuso horário para todos os containers
# Lista completa: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=America/Sao_Paulo
# ========================================
# VERSÕES DOS CONTAINERS
# ========================================
# Versão dos containers LinuxServer
# Use 'latest' para sempre puxar a versão mais recente
# Ou especifique uma versão específica para maior controle
VERSION=latest
# ========================================
# DIRETÓRIOS DE DADOS
# ========================================
# Caminho base para dados de aplicação
# Cada serviço terá seu subdiretório: appdata/plex, appdata/sonarr, etc.
APPDATA_DIR='~/gatoflix/appdata'
# Caminho para biblioteca de mídia
# Estrutura sugerida:
# - MEDIA_DIR/Filmes
# - MEDIA_DIR/Series
MEDIA_DIR='~/gatoflix/MEDIA'
# Caminho para downloads de torrents
# Estrutura sugerida:
# - TORRENT_DIR/complete
# - TORRENT_DIR/incomplete
# - TORRENT_DIR/watch
TORRENT_DIR='~/gatoflix/torrent'
# ========================================
# FLARESOLVERR - Bypass Cloudflare
# ========================================
# Nível de log do FlareSolverr
# Opções: info, debug, warning, error
FLARE_LOG_LEVEL=info
# Registrar HTML das páginas (útil para debug)
# Opções: true, false
FLARE_LOG_HTML=false
# Solver de CAPTCHA
# Opções: none, hcaptcha-solver, recaptcha-solver
# IMPORTANTE: Solvers externos podem requerer configuração adicional
FLARE_CAPTCHA_SOLVER=none
# ========================================
# CADDY - Proxy Reverso (Opcional)
# ========================================
# Usuário para autenticação básica em serviços sensíveis
# ADMIN_USER=admin
# Hash da senha para autenticação básica
# Gere com: caddy hash-password --plaintext 'sua-senha'
# ADMIN_PASSWORD_HASH=
# ========================================
# PLEX - Configurações Específicas
# ========================================
# Claim Token para vincular servidor Plex à sua conta
# Obtenha em: https://www.plex.tv/claim/
# IMPORTANTE: O token expira em 4 minutos após gerado
# PLEX_CLAIM=
# ========================================
# OBSERVAÇÕES IMPORTANTES
# ========================================
# 1. Crie os diretórios antes de iniciar os containers:
# mkdir -p ${APPDATA_DIR}/{plex,sonarr,radarr,bazarr,jackett,transmission,caddy/{data,config}}
# mkdir -p ${MEDIA_DIR}/{Filmes,Series}
# mkdir -p ${TORRENT_DIR}/{complete,incomplete,watch}
#
# 2. Ajuste as permissões dos diretórios:
# sudo chown -R ${PUID}:${PGID} ${APPDATA_DIR} ${MEDIA_DIR} ${TORRENT_DIR}
#
# 3. REDE LOCAL (uso doméstico - SEM acesso internet):
# a) Configure /etc/hosts com suas entradas:
# sudo nano /etc/hosts
# # 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
#
# b) Acesse via HTTPS com certificados auto-assinados:
# - https://plex.media.local
# - Navegador mostrará aviso de segurança (é normal!)
# - Aceite o certificado para continuar
#
# c) OU use HTTP sem SSL (descomente seção HTTP no Caddyfile):
# - http://plex.media.local
# - Sem avisos de segurança
# - Menos seguro, mas funciona
#
# 4. REDE EXTERNA (exposto na internet):
# IMPORTANTE: Let's Encrypt SÓ funciona com domínio real e acesso internet!
# a) Registre um domínio (ex: gatoflix.com.br)
# b) Configure DNS A/AAAA apontando *.seudominio.com para seu IP público
# c) Abra portas 80 e 443 no roteador para o servidor
# d) Altere Caddyfile: remova "tls internal" e adicione email no global options
# e) Caddy gerará certificados SSL automaticamente via Let's Encrypt
#
# 5. Migração dos dados existentes:
# - Os volumes já apontam para os diretórios existentes
# - Verifique se os caminhos estão corretos antes de iniciar
# - Faça backup antes de migrar!

12
.gitignore vendored Normal file
View File

@ -0,0 +1,12 @@
# Environment variables
.env
# Caddy data
caddy/
# Docker volumes
appdata/
# Logs
*.log
logs/

163
Caddyfile Normal file
View File

@ -0,0 +1,163 @@
# ==============================================
# Gatoflix Media Center - Caddy Configuration
# CONFIGURAÇÃO PARA REDE LOCAL
# ==============================================
# Global options
# {
# # Para rede local, desabilitar ACME (Let's Encrypt)
# # Caddy gerará certificados auto-assinados automaticamente
# auto_https disable_redirects
#
# # OU use certificados internos do Caddy (recomendado)
# # Descomente a linha abaixo para usar PKI interno do Caddy
# # local_certs
# }
# ==============================================
# Media Server - Plex
# ==============================================
# plex.{$DOMAIN} {
# # TLS interno (certificado auto-assinado)
# tls internal
#
# reverse_proxy plex:32400
#
# # Headers específicos para Plex
# header {
# X-Content-Type-Options "nosniff"
# X-Frame-Options "SAMEORIGIN"
# Referrer-Policy "no-referrer-when-downgrade"
# }
#
# # Logs
# log {
# output file /var/log/caddy/plex.log
# format json
# }
# }
# ==============================================
# Download Manager - Transmission
# ==============================================
# transmission.{$DOMAIN} {
# tls internal
#
# reverse_proxy transmission:9091
#
# header {
# X-Content-Type-Options "nosniff"
# X-Frame-Options "DENY"
# }
#
# log {
# output file /var/log/caddy/transmission.log
# format json
# }
# }
#
# # ==============================================
# # Indexer - Jackett
# # ==============================================
# jackett.{$DOMAIN} {
# tls internal
#
# reverse_proxy jackett:9117
#
# header {
# X-Content-Type-Options "nosniff"
# X-Frame-Options "DENY"
# }
#
# log {
# output file /var/log/caddy/jackett.log
# format json
# }
# }
#
# # ==============================================
# # TV Shows Manager - Sonarr
# # ==============================================
# sonarr.{$DOMAIN} {
# tls internal
#
# reverse_proxy sonarr:8989
#
# header {
# X-Content-Type-Options "nosniff"
# X-Frame-Options "DENY"
# }
#
# log {
# output file /var/log/caddy/sonarr.log
# format json
# }
# }
#
# # ==============================================
# # Movies Manager - Radarr
# # ==============================================
# radarr.{$DOMAIN} {
# tls internal
#
# reverse_proxy radarr:7878
#
# header {
# X-Content-Type-Options "nosniff"
# X-Frame-Options "DENY"
# }
#
# log {
# output file /var/log/caddy/radarr.log
# format json
# }
# }
#
# # ==============================================
# # Subtitles Manager - Bazarr
# # ==============================================
# bazarr.{$DOMAIN} {
# tls internal
#
# reverse_proxy bazarr:6767
#
# header {
# X-Content-Type-Options "nosniff"
# X-Frame-Options "DENY"
# }
#
# log {
# output file /var/log/caddy/bazarr.log
# format json
# }
# }
# ==============================================
# ALTERNATIVA: SEM HTTPS (HTTP apenas)
# ==============================================
# Se preferir não usar HTTPS em rede local, descomente abaixo
# e comente todos os blocos acima
#
http://plex.{$DOMAIN} {
reverse_proxy plex:32400
}
http://transmission.{$DOMAIN} {
reverse_proxy transmission:9091
}
http://jackett.{$DOMAIN} {
reverse_proxy jackett:9117
}
http://sonarr.{$DOMAIN} {
reverse_proxy sonarr:8989
}
http://radarr.{$DOMAIN} {
reverse_proxy radarr:7878
}
http://bazarr.{$DOMAIN} {
reverse_proxy bazarr:6767
}

276
README.md
View File

@ -1,2 +1,276 @@
# gatoflix # 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/)

233
REDE-LOCAL.md Normal file
View File

@ -0,0 +1,233 @@
# Configuração para Rede Local
Este guia explica como configurar o Gatoflix Media Center para uso em rede doméstica **SEM exposição à internet**.
## Por que Let's Encrypt não funciona?
**Let's Encrypt NÃO funciona em redes locais** porque:
1. Let's Encrypt precisa validar que você controla o domínio
2. Servidores do Let's Encrypt acessam seu servidor via internet (porta 80 ou 443)
3. Em rede local doméstica sem IP público acessível, isso é impossível
## Opções para Rede Local
### Opção 1: HTTPS com Certificados Auto-Assinados (Configuração Atual)
O Caddyfile está configurado para usar `tls internal`, que gera certificados auto-assinados automaticamente.
**Vantagens:**
- Conexão criptografada (HTTPS)
- Zero configuração adicional
- Funciona offline
**Desvantagens:**
- Navegador mostrará aviso de certificado não confiável
- Precisa aceitar o certificado manualmente em cada dispositivo
**Como usar:**
1. Configure o `.env` com `DOMAIN=media.local`
2. Adicione entradas ao `/etc/hosts`:
```bash
sudo nano /etc/hosts
# Adicione estas linhas:
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
```
3. Inicie os containers:
```bash
docker-compose up -d
```
4. Acesse via HTTPS:
- `https://plex.media.local`
- `https://sonarr.media.local`
- etc.
5. **Aceite o aviso de segurança:**
- Chrome/Edge: Clique em "Avançado" → "Continuar para media.local"
- Firefox: Clique em "Avançado" → "Aceitar o risco e continuar"
### Opção 2: HTTP sem SSL (Mais Simples)
Se preferir evitar avisos de certificado, use HTTP puro (sem criptografia).
**Vantagens:**
- Sem avisos de certificado
- Acesso direto sem aceitar nada
**Desvantagens:**
- Conexão não criptografada
- Senhas trafegam em texto claro na rede
**Como usar:**
1. Edite o `Caddyfile` e **comente** todos os blocos HTTPS:
```caddyfile
# plex.{$DOMAIN} {
# tls internal
# reverse_proxy plex:32400
# }
```
2. **Descomente** os blocos HTTP no final do arquivo:
```caddyfile
http://plex.{$DOMAIN} {
reverse_proxy plex:32400
}
http://transmission.{$DOMAIN} {
reverse_proxy transmission:9091
}
# ... etc
```
3. Reinicie o Caddy:
```bash
docker-compose restart caddy
```
4. Acesse via HTTP:
- `http://plex.media.local`
- `http://sonarr.media.local`
- etc.
### Opção 3: Sem Caddy - Portas Diretas
Se não quiser usar proxy reverso, pode acessar diretamente pelas portas.
**Como usar:**
1. Edite `docker-compose.yml` e exponha as portas:
```yaml
services:
sonarr:
ports:
- 8989:8989
radarr:
ports:
- 7878:7878
bazarr:
ports:
- 6767:6767
jackett:
ports:
- 9117:9117
```
2. Remova ou pare o container do Caddy:
```bash
docker-compose stop caddy
```
3. Acesse diretamente pelo IP:
- `http://localhost:8989` (Sonarr)
- `http://localhost:7878` (Radarr)
- `http://localhost:32400/web` (Plex)
- etc.
## Acesso de outros dispositivos na rede
### Configurar /etc/hosts em outros dispositivos
**Linux/macOS:**
```bash
sudo nano /etc/hosts
# Substitua 192.168.1.100 pelo IP do seu servidor
192.168.1.100 plex.media.local
192.168.1.100 sonarr.media.local
192.168.1.100 radarr.media.local
192.168.1.100 transmission.media.local
192.168.1.100 jackett.media.local
192.168.1.100 bazarr.media.local
```
**Windows:**
1. Abra o Bloco de Notas como Administrador
2. Abra: `C:\Windows\System32\drivers\etc\hosts`
3. Adicione as mesmas linhas acima
**Android:**
- Requer root ou app como "Hosts Editor"
**iOS:**
- Requer jailbreak ou usar DNS local
### Opção Melhor: DNS Local
Configure um servidor DNS local (Pi-hole, AdGuard Home, ou router DNS):
1. Adicione registros A apontando para o IP do servidor:
```
plex.media.local → 192.168.1.100
sonarr.media.local → 192.168.1.100
radarr.media.local → 192.168.1.100
transmission.media.local → 192.168.1.100
jackett.media.local → 192.168.1.100
bazarr.media.local → 192.168.1.100
```
2. Configure DHCP do roteador para usar o DNS local
3. Todos os dispositivos da rede resolverão automaticamente!
## mDNS/Avahi (Alternativa Avançada)
Para usar `.local` sem editar hosts:
1. Instale Avahi no servidor:
```bash
sudo apt install avahi-daemon
```
2. Configure para responder por múltiplos nomes
3. Dispositivos Apple (macOS, iOS) resolverão automaticamente
4. Linux com avahi também resolve
5. Windows precisa de Bonjour Print Services
## Resumo - Recomendação
**Para uso doméstico simples:**
- Use **Opção 2 (HTTP sem SSL)**
- Configure `/etc/hosts` em cada dispositivo
- OU configure DNS local no roteador
**Para segurança adicional:**
- Use **Opção 1 (HTTPS com certificados auto-assinados)**
- Aceite os certificados uma vez em cada navegador/dispositivo
- Conexão criptografada mesmo em rede local
**Para máxima simplicidade:**
- Use **Opção 3 (sem Caddy)**
- Acesse direto pelo IP:porta
- Sem subdomínios, sem proxy
## Migração para Internet (Futuro)
Se futuramente quiser expor na internet com Let's Encrypt:
1. Registre um domínio real
2. Configure DNS A/AAAA para seu IP público
3. Abra portas 80 e 443 no roteador
4. Edite `Caddyfile`:
- Remova `tls internal` de todos os serviços
- Adicione email no global options:
```caddyfile
{
email seu@email.com
}
```
5. Reinicie: `docker-compose restart caddy`
6. Caddy obterá certificados Let's Encrypt automaticamente!

167
docker-compose.yml Normal file
View File

@ -0,0 +1,167 @@
version: '3.8'
services:
# ======================
# Media Server
# ======================
plex:
image: linuxserver/plex:latest
container_name: gatoflix-plex
restart: unless-stopped
networks:
- media
# Plex precisa de algumas portas UDP para descoberta na rede local
# Comente estas linhas se não precisar de acesso direto
ports:
- 32400:32400 # Web UI (será também acessível via Caddy)
- 32400:32400/udp # Plex DLNA Server
- 32469:32469 # Plex DLNA Server
- 32469:32469/udp # Plex DLNA Server
- 5354:5353/udp # Plex Companion
- 1900:1900/udp # Plex DLNA Server
volumes:
- ${APPDATA_DIR}/plex:/config
- ${APPDATA_DIR}/plex/transcode:/transcode
- ${MEDIA_DIR}:/data
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
VERSION: ${VERSION}
# ======================
# Download Clients
# ======================
transmission:
image: linuxserver/transmission:latest
container_name: gatoflix-transmission
restart: unless-stopped
networks:
- media
# Porta 51413 necessária para conexões P2P
# Pode ser comentada se usar VPN ou não precisar de seeding
ports:
- 51413:51413
- 51413:51413/udp
volumes:
- ${APPDATA_DIR}/transmission:/config
- ${TORRENT_DIR}:/downloads
- ${TORRENT_DIR}/watch:/watch
- /etc/localtime:/etc/localtime:ro
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
# ======================
# Indexers & Searchers
# ======================
jackett:
image: linuxserver/jackett:latest
container_name: gatoflix-jackett
restart: unless-stopped
networks:
- media
volumes:
- ${APPDATA_DIR}/jackett:/config
#- ${APPDATA_DIR}/downloads:/downloads
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: gatoflix-flaresolverr
restart: unless-stopped
networks:
- media
environment:
LOG_LEVEL: ${FLARE_LOG_LEVEL:-info}
LOG_HTML: ${FLARE_LOG_HTML:-false}
CAPTCHA_SOLVER: ${FLARE_CAPTCHA_SOLVER:-none}
TZ: ${TZ}
# ======================
# PVR - TV Shows
# ======================
sonarr:
image: linuxserver/sonarr:latest
container_name: gatoflix-sonarr
restart: unless-stopped
networks:
- media
volumes:
- ${APPDATA_DIR}/sonarr:/config
# - ${APPDATA_DIR}/downloads:/downloads
- ${MEDIA_DIR}/Series:/tv
- ${TORRENT_DIR}/complete/tv-sonarr:/supercousas/MEDIACENTER/torrent
- ${TORRENT_DIR}/complete/tv-sonarr:/downloads/complete/tv-sonarr
- /etc/localtime:/etc/localtime:ro
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
# ======================
# PVR - Movies
# ======================
radarr:
image: linuxserver/radarr:latest
container_name: gatoflix-radarr
restart: unless-stopped
networks:
- media
volumes:
- ${APPDATA_DIR}/radarr:/config
- ${MEDIA_DIR}/Filmes:/movies
- ${TORRENT_DIR}:/supercousas/MEDIACENTER/torrent
- ${TORRENT_DIR}/complete/radarr:/downloads/complete/radarr
- /etc/localtime:/etc/localtime:ro
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
# ======================
# Subtitles
# ======================
bazarr:
image: linuxserver/bazarr:latest
container_name: gatoflix-bazarr
restart: unless-stopped
networks:
- media
volumes:
- ${APPDATA_DIR}/bazarr:/config
- ${MEDIA_DIR}/Filmes:/movies
- ${MEDIA_DIR}/Series:/tv
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
UMASK: 022
# ======================
# Reverse Proxy
# ======================
caddy:
image: caddy:latest
container_name: gatoflix-caddy
restart: unless-stopped
networks:
- media
ports:
- 80:80
# - 443:443
# - 443:443/udp # HTTP/3
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ${APPDATA_DIR}/caddy/data:/data
- ${APPDATA_DIR}/caddy/config:/config
environment:
DOMAIN: ${DOMAIN}
networks:
media:
driver: bridge