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

5.4 KiB

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:
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
  1. Inicie os containers:
docker-compose up -d
  1. Acesse via HTTPS:

    • https://plex.media.local
    • https://sonarr.media.local
    • etc.
  2. 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:
# plex.{$DOMAIN} {
#     tls internal
#     reverse_proxy plex:32400
# }
  1. Descomente os blocos HTTP no final do arquivo:
http://plex.{$DOMAIN} {
    reverse_proxy plex:32400
}

http://transmission.{$DOMAIN} {
    reverse_proxy transmission:9091
}

# ... etc
  1. Reinicie o Caddy:
docker-compose restart caddy
  1. 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:
services:
  sonarr:
    ports:
      - 8989:8989

  radarr:
    ports:
      - 7878:7878

  bazarr:
    ports:
      - 6767:6767

  jackett:
    ports:
      - 9117:9117
  1. Remova ou pare o container do Caddy:
docker-compose stop caddy
  1. 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:

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
  1. Configure DHCP do roteador para usar o DNS local

  2. Todos os dispositivos da rede resolverão automaticamente!

mDNS/Avahi (Alternativa Avançada)

Para usar .local sem editar hosts:

  1. Instale Avahi no servidor:
sudo apt install avahi-daemon
  1. Configure para responder por múltiplos nomes

  2. Dispositivos Apple (macOS, iOS) resolverão automaticamente

  3. Linux com avahi também resolve

  4. 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:
{
    email seu@email.com
}
  1. Reinicie: docker-compose restart caddy
  2. Caddy obterá certificados Let's Encrypt automaticamente!