82 lines
2.9 KiB
YAML
82 lines
2.9 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# =============================================================
|
|
# POSTGRESQL — Banco de Dados do MicrotecFlix (Dedicado)
|
|
# =============================================================
|
|
postgres-microtecflix:
|
|
image: postgres:16-alpine
|
|
restart: always
|
|
environment:
|
|
POSTGRES_DB: microtecflix
|
|
POSTGRES_USER: microtecflix_user
|
|
POSTGRES_PASSWORD: MicrotecFlixSecurePass2026!
|
|
ports:
|
|
- "5435:5432" # Porta 5435 para evitar conflitos com outros Postgres (ex: AgendaPRO 5432)
|
|
volumes:
|
|
- pgdata-microtecflix:/var/lib/postgresql/data
|
|
networks:
|
|
- microtecflix-net
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U microtecflix_user -d microtecflix"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
|
|
# =============================================================
|
|
# MICROTECFLIX WEB APP — Plataforma de Cursos (Aluno + Admin)
|
|
# =============================================================
|
|
microtecflix:
|
|
image: microtecflix-app:local
|
|
restart: always
|
|
depends_on:
|
|
- postgres-microtecflix
|
|
environment:
|
|
- NODE_ENV=production
|
|
- PORT=3000
|
|
- DATABASE_URL=postgresql://microtecflix_user:MicrotecFlixSecurePass2026!@postgres-microtecflix:5432/microtecflix
|
|
- JWT_SECRET=microtecflix_jwt_secret_key_2026_super_secure
|
|
- ASAAS_ENVIRONMENT=sandbox
|
|
networks:
|
|
- microtecflix-net
|
|
- network_public
|
|
deploy:
|
|
replicas: 1
|
|
update_config:
|
|
parallelism: 1
|
|
delay: 10s
|
|
order: start-first
|
|
restart_policy:
|
|
condition: on-failure
|
|
max_attempts: 3
|
|
labels:
|
|
- "traefik.enable=true"
|
|
# Painel do Aluno
|
|
- "traefik.http.routers.microtecflix-student.rule=Host(`estudo.microtecinformaticacurso.com.br`)"
|
|
- "traefik.http.routers.microtecflix-student.entrypoints=websecure"
|
|
- "traefik.http.routers.microtecflix-student.tls=true"
|
|
- "traefik.http.routers.microtecflix-student.tls.certresolver=leresolver"
|
|
- "traefik.http.routers.microtecflix-student.service=microtecflix-student"
|
|
- "traefik.http.services.microtecflix-student.loadbalancer.server.port=3000"
|
|
# Painel Admin
|
|
- "traefik.http.routers.microtecflix-admin.rule=Host(`admin-estudo.microtecinformaticacurso.com.br`)"
|
|
- "traefik.http.routers.microtecflix-admin.entrypoints=websecure"
|
|
- "traefik.http.routers.microtecflix-admin.tls=true"
|
|
- "traefik.http.routers.microtecflix-admin.tls.certresolver=leresolver"
|
|
- "traefik.http.routers.microtecflix-admin.service=microtecflix-admin"
|
|
- "traefik.http.services.microtecflix-admin.loadbalancer.server.port=3000"
|
|
- "traefik.docker.network=network_public"
|
|
|
|
volumes:
|
|
pgdata-microtecflix:
|
|
|
|
networks:
|
|
microtecflix-net:
|
|
driver: overlay
|
|
network_public:
|
|
external: true
|