almeira-web/facturacion-dian-hub/docker-compose.yml

82 lines
2.5 KiB
YAML

version: '3.8'
services:
# ========================================================
# BASE DE DATOS: PostgreSQL 16 Alpine con ACID Estricto
# ========================================================
postgres:
image: postgres:16-alpine
container_name: dian_hub_postgres
restart: unless-stopped
environment:
POSTGRES_DB: dian_hub_db
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres123_secure_hub
ports:
- "5432:5432"
volumes:
- dian_pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d dian_hub_db"]
interval: 10s
timeout: 5s
retries: 5
networks:
- dian_hub_network
# ========================================================
# MICROSERVICIO BACKEND: Fastify + Clean Architecture UBL 2.1
# ========================================================
backend:
build:
context: .
dockerfile: Dockerfile.backend
container_name: dian_hub_backend
restart: unless-stopped
environment:
PORT: 3001
HOST: 0.0.0.0
NODE_ENV: production
DATABASE_URL: "postgresql://postgres:postgres123_secure_hub@postgres:5432/dian_hub_db?schema=public"
API_KEY_MASTER: "dev_master_key_innovacion_2026_secure"
JWT_SECRET: "super_secret_jwt_key_dian_hub_innovacion_2026"
ENCRYPTION_KEY: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
DIAN_ENVIRONMENT: "HABILITACION"
DIAN_SOFTWARE_ID: "d5e07b47-6aea-43cc-b38c-3c7d46b4a52f"
DIAN_SOFTWARE_PIN: "75319"
DIAN_TEST_SET_ID: "c48d035e-c15c-4f76-905c-efbc912389a0"
DIAN_VPFE_HABILITACION_URL: "https://vpfe-hab.dian.gov.co/WcfDianCustomerServices.svc"
DIAN_VPFE_PRODUCCION_URL: "https://vpfe.dian.gov.co/WcfDianCustomerServices.svc"
ports:
- "3001:3001"
depends_on:
postgres:
condition: service_healthy
networks:
- dian_hub_network
# ========================================================
# PANEL ADMINISTRATIVO WEB: React 18 + Vite + Nginx Alpine
# ========================================================
frontend:
build:
context: .
dockerfile: Dockerfile.frontend
container_name: dian_hub_frontend
restart: unless-stopped
ports:
- "3000:80"
depends_on:
- backend
networks:
- dian_hub_network
volumes:
dian_pgdata:
name: dian_hub_pgdata
networks:
dian_hub_network:
name: dian_hub_network
driver: bridge