NgixProxy_Pathfinder/docker-compose.yml

56 lines
1.6 KiB
YAML

services:
nginx:
build: .
container_name: nginx-proxy
restart: always
network_mode: host # Recomendado para performance e Fail2Ban
# Se mudar para bridge futuramente, não esquecer:
# ports:
# - "80:80/tcp"
# - "443:443/tcp"
# - "443:443/udp" # HTTP/3
# - "122:122/tcp" # SSH
volumes:
# Volumes para Configurações (Persistência Interna)
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/snippets:/etc/nginx/snippets
- ./nginx/modsec/main.conf:/etc/nginx/modsec/main.conf:ro
# Persistência de Dados e Certificados
- ./ssl:/etc/nginx/ssl
- ./certbot:/etc/letsencrypt
- ./logs:/var/log/nginx
# Customização do Shell
- ./.bashrc:/root/.bashrc:ro
environment:
- TZ=America/Sao_Paulo
fail2ban:
image: linuxserver/fail2ban:latest
container_name: fail2ban-sidecar
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
restart: always
volumes:
- ./logs:/var/log/nginx:ro # Monitora os logs do Nginx
- ./fail2ban/data:/config # Configurações do F2B
- ./nginx/snippets:/etc/nginx/snippets # Onde ele gera o blacklist.conf
- /var/run/docker.sock:/var/run/docker.sock # Para reload do Nginx
user: root # Necessário para interagir com o socket
environment:
- TZ=America/Sao_Paulo
- PUID=1000
- PGID=1000
test-backend:
image: traefik/whoami
container_name: test-backend
restart: always
# Na network host, ele vai ouvir em uma porta alta para não conflitar
command: --port 8080
network_mode: host