Ctrl K
ComunidadGuías…

docker-compose.production.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Production overlay for the image-based stack. Supply every required value in
# .env.production and combine this file with docker-compose.yml.
services:
  database:
    image: ${MULTIFORUM_NEO4J_IMAGE:?Set MULTIFORUM_NEO4J_IMAGE from a release manifest}
    labels:
      net.multiforum.release: ${MULTIFORUM_RELEASE_VERSION:?Set MULTIFORUM_RELEASE_VERSION from a release manifest}
      net.multiforum.component: database
    environment:
      NEO4J_AUTH: neo4j/${NEO4J_PASSWORD:?Set NEO4J_PASSWORD}

  backend:
    image: ${MULTIFORUM_BACKEND_IMAGE:?Set MULTIFORUM_BACKEND_IMAGE from a release manifest}
    labels:
      net.multiforum.release: ${MULTIFORUM_RELEASE_VERSION:?Set MULTIFORUM_RELEASE_VERSION from a release manifest}
      net.multiforum.component: backend
    environment:
      NODE_ENV: production
      ENVIRONMENT: production
      MULTIFORUM_AUTH_PROVIDER: auth0
      MULTIFORUM_AUTO_PROVISION: 'true'
      SUPERADMIN_EMAIL: ${MULTIFORUM_SUPERADMIN_EMAIL:?Set MULTIFORUM_SUPERADMIN_EMAIL}
      AUTH0_DOMAIN: ${AUTH0_DOMAIN:?Set AUTH0_DOMAIN}
      AUTH0_CLIENT_ID: ${AUTH0_CLIENT_ID:?Set AUTH0_CLIENT_ID}
      AUTH0_AUDIENCE: ${AUTH0_AUDIENCE:?Set AUTH0_AUDIENCE}
      FRONTEND_URL: https://${MULTIFORUM_DOMAIN:?Set MULTIFORUM_DOMAIN}
      NEO4J_PASSWORD: ${NEO4J_PASSWORD:?Set NEO4J_PASSWORD}
      PLUGIN_SECRET_ENCRYPTION_KEY: ${PLUGIN_SECRET_ENCRYPTION_KEY:?Set PLUGIN_SECRET_ENCRYPTION_KEY}
      GCS_BUCKET_NAME: ${GCS_BUCKET_NAME:-}
      GCS_PRIVATE_DOWNLOAD_BUCKET_NAME: ${GCS_PRIVATE_DOWNLOAD_BUCKET_NAME:-}
      GOOGLE_CREDENTIALS_BASE64: ${GOOGLE_CREDENTIALS_BASE64:-}
      EMAIL_PROVIDER: ${EMAIL_PROVIDER:-}
      EMAIL_FROM: ${EMAIL_FROM:-}
      RESEND_API_KEY: ${RESEND_API_KEY:-}
      SENDGRID_API_KEY: ${SENDGRID_API_KEY:-}
      SENDGRID_FROM_EMAIL: ${SENDGRID_FROM_EMAIL:-}

  frontend:
    image: ${MULTIFORUM_FRONTEND_IMAGE:?Set MULTIFORUM_FRONTEND_IMAGE from a release manifest}
    labels:
      net.multiforum.release: ${MULTIFORUM_RELEASE_VERSION:?Set MULTIFORUM_RELEASE_VERSION from a release manifest}
      net.multiforum.component: frontend
    environment:
      NODE_ENV: production
      NUXT_PUBLIC_AUTH_PROVIDER: auth0
      NUXT_PUBLIC_BASE_URL: https://${MULTIFORUM_DOMAIN:?Set MULTIFORUM_DOMAIN}
      NUXT_PUBLIC_ENVIRONMENT: production
      NUXT_PUBLIC_LOGOUT_URL: https://${MULTIFORUM_DOMAIN:?Set MULTIFORUM_DOMAIN}/auth/logout
      NUXT_AUTH0_DOMAIN: ${AUTH0_DOMAIN:?Set AUTH0_DOMAIN}
      NUXT_AUTH0_CLIENT_ID: ${AUTH0_CLIENT_ID:?Set AUTH0_CLIENT_ID}
      NUXT_AUTH0_CLIENT_SECRET: ${NUXT_AUTH0_CLIENT_SECRET:?Set NUXT_AUTH0_CLIENT_SECRET}
      NUXT_AUTH0_SESSION_SECRET: ${NUXT_AUTH0_SESSION_SECRET:?Set NUXT_AUTH0_SESSION_SECRET}
      NUXT_AUTH0_APP_BASE_URL: https://${MULTIFORUM_DOMAIN:?Set MULTIFORUM_DOMAIN}
      NUXT_AUTH0_AUDIENCE: ${AUTH0_AUDIENCE:?Set AUTH0_AUDIENCE}
      NUXT_PUBLIC_GOOGLE_MAPS_API_KEY: ${GOOGLE_MAPS_API_KEY:-}
      NUXT_PUBLIC_GOOGLE_MAP_ID: ${GOOGLE_MAP_ID:-}
      NUXT_PUBLIC_OPEN_CAGE_API_KEY: ${OPEN_CAGE_API_KEY:-}
      NUXT_PUBLIC_GOOGLE_CLOUD_STORAGE_BUCKET: ${GCS_BUCKET_NAME:-}
    volumes:
      - frontend-data:/app/data

  caddy:
    image: ${MULTIFORUM_CADDY_IMAGE:?Set MULTIFORUM_CADDY_IMAGE from a release manifest}
    labels:
      net.multiforum.release: ${MULTIFORUM_RELEASE_VERSION:?Set MULTIFORUM_RELEASE_VERSION from a release manifest}
      net.multiforum.component: caddy
    restart: unless-stopped
    depends_on:
      frontend:
        condition: service_healthy
    environment:
      CADDY_ACME_EMAIL: ${CADDY_ACME_EMAIL:?Set CADDY_ACME_EMAIL}
      MULTIFORUM_DOMAIN: ${MULTIFORUM_DOMAIN:?Set MULTIFORUM_DOMAIN}
    ports:
      - '80:80'
      - '443:443'
      - '443:443/udp'
    volumes:
      - ./deploy/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy-data:/data
      - caddy-config:/config
    networks:
      - multiforum-network

volumes:
  frontend-data:
  caddy-data:
  caddy-config: