version: "3.9" services: strapi: build: context: . dockerfile: Dockerfile args: NODE_OPTIONS: "--max-old-space-size=8192" container_name: contraloria-backend working_dir: /app ports: - "1337:1337" volumes: - strapi_uploads:/app/public/uploads - strapi_backups:/app/backups command: sh -c "yarn start" environment: NODE_ENV: production NODE_OPTIONS: "--max-old-space-size=8192" DATABASE_CLIENT: ${DATABASE_CLIENT} DATABASE_NAME: ${DATABASE_NAME} DATABASE_HOST: ${DATABASE_HOST} DATABASE_PORT: ${DATABASE_PORT} DATABASE_USERNAME: ${DATABASE_USERNAME} DATABASE_PASSWORD: ${DATABASE_PASSWORD} DATABASE_SSL: ${DATABASE_SSL} DATABASE_FILENAME: ${DATABASE_FILENAME} JWT_SECRET: ${JWT_SECRET} restart: always networks: - dokploy-network labels: - traefik.enable=true - traefik.docker.network=dokploy-network # --- HTTP → HTTPS REDIRECT --- - traefik.http.routers.strapi-http.rule=Host(`adm-cms.contraloria.gob.gt`) - traefik.http.routers.strapi-http.entrypoints=web - traefik.http.routers.strapi-http.middlewares=strapi-https - traefik.http.middlewares.strapi-https.redirectscheme.scheme=https # --- HTTPS ROUTER --- - traefik.http.routers.strapi.rule=Host(`adm-cms.contraloria.gob.gt`) - traefik.http.routers.strapi.entrypoints=websecure - traefik.http.routers.strapi.tls=true - traefik.http.routers.strapi.tls.certresolver=dokploy # --- Headers para Strapi detrás del proxy --- - traefik.http.middlewares.strapi-headers.headers.customrequestheaders.X-Forwarded-Proto=https - traefik.http.middlewares.strapi-headers.headers.customrequestheaders.X-Forwarded-Host=adm-cms.contraloria.gob.gt - traefik.http.routers.strapi.middlewares=strapi-headers # Servicio interno - traefik.http.services.strapi.loadbalancer.server.port=1337 networks: dokploy-network: external: true volumes: strapi_uploads: strapi_backups: