# Nginx Pathfinder Proxy - Repositório de Configuração Este repositório é a fonte da verdade para as configurações do **Pathfinder Proxy**. Ele armazena as definições de domínios, segurança e parâmetros do Nginx e Fail2Ban. > [!IMPORTANT] > **Repositório de Configuração (Config Management):** > Este repositório **NÃO** gerencia a execução do Docker, build de imagens ou certificados SSL. Ele serve apenas para versionar os arquivos `.conf` que serão baixados no servidor. ## 🧠 O que este repositório armazena: * **Gerenciamento de Sites:** Definição de VHosts em `nginx/conf.d/`. * **Snippets Reutilizáveis:** Componentes modulares (SSL, Proxy, WAF) em `nginx/snippets/`. * **Segurança Dinâmica:** Estrutura para `blacklist.conf` (alimentada externamente). * **Fail2Ban:** Regras de jails e filters customizados em `fail2ban/`. ## 📂 Estrutura de Pastas ```text . ├── nginx/ │ ├── nginx.conf # Configuração mestre (Global) │ ├── conf.d/ # Arquivos de site (Ex: ferreirareal.com.br.conf) │ ├── snippets/ # Peças modulares (SSL, ModSec, Proxy, Blacklist) │ ├── dynamic/ # Configurações dinâmicas (Blacklist - gerado pelo Fail2Ban) │ └── modsec/ # Regras do WAF └── fail2ban/ # Configurações do sidecar de segurança ``` ## 🛠️ Como Adicionar um Site 1. Crie o arquivo em `nginx/conf.d/meusite.conf`. 2. Utilize os snippets para manter o padrão e segurança: ```nginx server { listen 443 quic reuseport; # Suporte a HTTP/3 listen 443 ssl; server_name meusite.com.br; # Certificados (Gerenciados no Servidor/Portainer) ssl_certificate /etc/letsencrypt/live/meusite.com.br/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/meusite.com.br/privkey.pem; include snippets/ssl_params.conf; include snippets/proxy_params.conf; include snippets/modsecurity.conf; location / { proxy_pass http://ip_interno:porta; } } ``` 3. Commit e Push para a branch `producao`. 4. No servidor (Portainer/Docker), faça o Pull das alterações. ## ⚙️ Notas Operacionais * **Logs e SSL:** As pastas `logs`, `ssl` e `certbot` não são versionadas aqui para segurança. Elas existem apenas no servidor. * **Fail2Ban:** O Fail2Ban lê os logs do Nginx e escreve bloqueios em `nginx/dynamic/blacklist.conf`.