Files
clube67.com/docker-compose.yml
T
2026-05-18 18:32:55 +02:00

62 lines
2.0 KiB
YAML

services:
nginx:
image: nginx:alpine
restart: always
volumes:
- "./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro"
labels:
- "traefik.enable=true"
# Roteador de Produção (clube67.com e newwhats.clube67.com)
- "traefik.http.routers.clube67-prod.rule=Host(`clube67.com`) || Host(`www.clube67.com`) || Host(`newwhats.clube67.com`)"
- "traefik.http.routers.clube67-prod.entrypoints=websecure"
- "traefik.http.routers.clube67-prod.tls.certresolver=le"
- "traefik.http.services.clube67-prod.loadbalancer.server.port=80"
- "traefik.docker.network=web"
networks:
- soc
- web
depends_on:
- newwhats-backend
newwhats-backend:
image: node:20
container_name: newwhats-backend-prod
restart: always
# rootless docker: container UID 0 já é mapeado para o usuário deploy do host
working_dir: /app
env_file:
- "./newwhats.local/backend/.env"
environment:
- PORT=8008
- NODE_ENV=production
- DATABASE_URL=postgresql://clube67:clube67_db_pass_9903@10.99.0.3:5432/clube67?schema=public
- DB_HOST=10.99.0.3
- DB_PORT=5432
- DB_USER=clube67
- DB_PASSWORD=clube67_db_pass_9903
- DB_NAME=clube67
- REDIS_HOST=10.99.0.3
- REDIS_PORT=6379
- REDIS_PASSWORD=clube67_dragonfly_pass_9903
volumes:
- "/home/deploy/newwhats-sessions:/app/sessions"
- "/home/deploy/newwhats-media:/app/media"
- "./newwhats.local/plugins:/app/plugins"
# Montar diretórios e arquivos pré-compilados pelo builder (VPS 4)
- "./newwhats.local/backend/dist:/app/dist"
- "./newwhats.local/backend/package.json:/app/package.json"
- "./newwhats.local/backend/node_modules:/app/node_modules"
- "./newwhats.local/frontend:/frontend"
command: node dist/backend/src/index.js
security_opt:
- no-new-privileges:true
networks:
- soc
- web
networks:
soc:
external: true
web:
external: true