58 lines
1.9 KiB
YAML
58 lines
1.9 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"
|
|
# - "122:122/tcp" # SSH
|
|
volumes:
|
|
# Volumes para Configurações (Persistência Interna)
|
|
# nginx.conf é copiado no Build para evitar erro de mount "not a directory"
|
|
# - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
|
|
# Diretórios são montados para permitir hot-reload e Fail2Ban
|
|
- ./nginx/conf.d:/etc/nginx/conf.d
|
|
- ./nginx/snippets:/etc/nginx/snippets
|
|
- ./nginx/modsec:/etc/nginx/modsec
|
|
|
|
# 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
|
|
# A blacklist precisa ser persistente e compartilhada, então mantemos o mount apenas dela ou do snippets se precisarmos escrever
|
|
- ./nginx/snippets:/etc/nginx/snippets # Fail2Ban escreve aqui (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
|