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