Ctrl K
ComunidadGuías…

docker-compose.yml

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

Archivo original ↗Preguntar a KiBot
services:
  database:
    image: ${MULTIFORUM_NEO4J_IMAGE:-neo4j:2026.10}
    restart: unless-stopped
    ports:
      - '${MULTIFORUM_BIND_ADDRESS:-127.0.0.1}:7474:7474'
      - '${MULTIFORUM_BIND_ADDRESS:-127.0.0.1}:7687:7687'
    environment:
      NEO4J_AUTH: 'neo4j/${NEO4J_PASSWORD:-multiforum-local-neo4j}'
      NEO4J_PLUGINS: '["apoc"]'
      NEO4J_dbms_security_procedures_unrestricted: 'apoc.*'
      NEO4J_dbms_default__database: neo4j
      NEO4J_dbms_logs_debug_level: INFO
      NEO4J_dbms_logs_query_enabled: 'OFF'
      NEO4J_dbms_memory_pagecache_size: 256M
      NEO4J_dbms_memory_heap_initial__size: 256M
      NEO4J_dbms_memory_heap_max__size: 512M
    volumes:
      - neo4j-data:/data
      - neo4j-logs:/logs
      - neo4j-import:/import
      - neo4j-plugins:/plugins
    healthcheck:
      test:
        [
          'CMD',
          'cypher-shell',
          '-u',
          'neo4j',
          '-p',
          '${NEO4J_PASSWORD:-multiforum-local-neo4j}',
          'RETURN 1',
        ]
      interval: 10s
      timeout: 10s
      retries: 20
      start_period: 30s
    networks:
      - multiforum-network

  backend:
    image: ${MULTIFORUM_BACKEND_IMAGE:-ghcr.io/gennit-project/multiforum-backend:edge}
    pull_policy: ${MULTIFORUM_BACKEND_PULL_POLICY:-always}
    restart: unless-stopped
    ports:
      - '${MULTIFORUM_BIND_ADDRESS:-127.0.0.1}:4000:4000'
    depends_on:
      database:
        condition: service_healthy
    environment:
      NODE_ENV: development
      ENVIRONMENT: local
      MULTIFORUM_AUTH_PROVIDER: local-dev
      MULTIFORUM_AUTO_PROVISION: 'true'
      MULTIFORUM_BOOTSTRAP_EMAIL: ${MULTIFORUM_BOOTSTRAP_EMAIL:-admin@multiforum.local}
      MULTIFORUM_BOOTSTRAP_USERNAME: ${MULTIFORUM_BOOTSTRAP_USERNAME:-admin}
      MULTIFORUM_BOOTSTRAP_PASSWORD: ${MULTIFORUM_BOOTSTRAP_PASSWORD:-multiforum-local-admin}
      SUPERADMIN_EMAIL: ${MULTIFORUM_BOOTSTRAP_EMAIL:-admin@multiforum.local}
      SERVER_CONFIG_NAME: ${MULTIFORUM_INSTANCE_NAME:-My Multiforum}
      NEO4J_URI: bolt://database:7687
      NEO4J_USER: neo4j
      NEO4J_PASSWORD: ${NEO4J_PASSWORD:-multiforum-local-neo4j}
      AUTH0_DOMAIN: ''
      AUTH0_CLIENT_ID: ''
      GCS_BUCKET_NAME: ''
      GOOGLE_APPLICATION_CREDENTIALS: ''
      GOOGLE_CREDENTIALS_BASE64: ''
      SLACK_WEBHOOK_URL: ''
    healthcheck:
      test:
        [
          'CMD',
          'node',
          '-e',
          "require('net').connect(4000, '127.0.0.1').on('connect', () => process.exit(0)).on('error', () => process.exit(1))",
        ]
      interval: 10s
      timeout: 5s
      retries: 30
      start_period: 60s
    networks:
      - multiforum-network

  frontend:
    image: ${MULTIFORUM_FRONTEND_IMAGE:-ghcr.io/gennit-project/multiforum-nuxt:edge}
    pull_policy: ${MULTIFORUM_FRONTEND_PULL_POLICY:-always}
    restart: unless-stopped
    ports:
      - '${MULTIFORUM_BIND_ADDRESS:-127.0.0.1}:3000:3000'
    depends_on:
      backend:
        condition: service_healthy
    environment:
      - NUXT_PUBLIC_AUTH_PROVIDER=local-dev
      - NUXT_PUBLIC_BASE_URL=${MULTIFORUM_PUBLIC_FRONTEND_URL:-http://localhost:3000}
      - NUXT_PUBLIC_ENVIRONMENT=development
      - NUXT_PUBLIC_SERVER_NAME=${MULTIFORUM_INSTANCE_NAME:-My Multiforum}
      - NUXT_PUBLIC_SERVER_DISPLAY_NAME=${MULTIFORUM_INSTANCE_NAME:-My Multiforum}
      - NUXT_BACKEND_GRAPHQL_URL=http://backend:4000
      - NUXT_LOCAL_AUTH_TOKEN_ENDPOINT=http://backend:4000/auth/local-dev/token
      # Optional instance branding, passed through only when the operator sets
      # it. These use the bare passthrough form deliberately: with
      # `KEY: ${VAR:-}` Compose would inject an empty string, and an empty
      # branding value means "hide this link" rather than "not configured", so
      # every deployment would silently lose its documentation and source
      # links. Unset variables are omitted entirely, leaving the application
      # defaults in place. See docs/frontend-runtime-configuration.md.
      - NUXT_PUBLIC_BRANDING_LOGO_URL
      - NUXT_PUBLIC_BRANDING_LOGO_DARK_URL
      - NUXT_PUBLIC_BRANDING_LOGO_ALT
      - NUXT_PUBLIC_BRANDING_FAVICON_URL
      - NUXT_PUBLIC_BRANDING_PRIMARY_COLOR
      - NUXT_PUBLIC_BRANDING_PRODUCT_NAME
      - NUXT_PUBLIC_BRANDING_DOCS_URL
      - NUXT_PUBLIC_BRANDING_SOURCE_URL
      - NUXT_PUBLIC_BRANDING_ISSUES_URL
      - NUXT_PUBLIC_BRANDING_SUPPORT_EMAIL
      - NUXT_PUBLIC_BRANDING_SHOW_UPSTREAM_LINKS
      - NUXT_PUBLIC_BRANDING_CUSTOM_FOOTER_LINKS
      - NUXT_PUBLIC_BRANDING_LOCKED
    healthcheck:
      test:
        [
          'CMD',
          'node',
          '-e',
          "fetch('http://127.0.0.1:3000').then(response => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))",
        ]
      interval: 10s
      timeout: 5s
      retries: 12
      start_period: 30s
    logging:
      driver: json-file
      options:
        max-size: 10m
        max-file: '3'
    networks:
      - multiforum-network

networks:
  multiforum-network:
    driver: bridge

volumes:
  neo4j-data:
  neo4j-logs:
  neo4j-import:
  neo4j-plugins: