services:
  vitepress-builder:
    image: vevedh/vitepress-builder:studio-0.1.165
    restart: unless-stopped
    ports:
      - "${APP_PORT:-3000}:3000"
    environment:
      NODE_ENV: production
      NITRO_HOST: 0.0.0.0
      NITRO_PORT: 3000
      NUXT_PUBLIC_SITE_URL: ${NUXT_PUBLIC_SITE_URL}
      MONGODB_URI: ${MONGODB_URI:-mongodb://mongodb:27017/vitepress-builder}
      MONGODB_URL: ${MONGODB_URI:-mongodb://mongodb:27017/vitepress-builder}
      MONGO_URL: ${MONGODB_URI:-mongodb://mongodb:27017/vitepress-builder}
      NFZ_LICENSE_SERVER_URL: ${NFZ_LICENSE_SERVER_URL}
      NFZ_LICENSE_KEY: ${NFZ_LICENSE_KEY:?NFZ_LICENSE_KEY is required}
      NFZ_PRODUCT_KEY: vitepress-builder
      NFZ_PRODUCT_ID: vitepress-builder
      NFZ_PRODUCT_DOMAIN: vitepress-builder.com
      NFZ_EDITION: starter
      SESSION_SECRET: ${SESSION_SECRET}
      NFZ_AUTH_SECRET: ${SESSION_SECRET}
      ADMIN_EMAIL: ${ADMIN_EMAIL}

      # Premier administrateur seedé au premier démarrage.
      # À désactiver après création/rotation du compte si la politique de sécurité l'exige.
      NFZ_SEED_ADMIN_ENABLED: ${NFZ_SEED_ADMIN_ENABLED:-true}
      NFZ_SEED_ADMIN_EMAIL: ${NFZ_SEED_ADMIN_EMAIL:-admin@example.local}
      NFZ_SEED_ADMIN_USERID: ${NFZ_SEED_ADMIN_USERID:-admin@example.local}
      NFZ_SEED_ADMIN_PASSWORD: ${NFZ_SEED_ADMIN_PASSWORD:?NFZ_SEED_ADMIN_PASSWORD is required}
      NFZ_SEED_ADMIN_NAME: ${NFZ_SEED_ADMIN_NAME:-Administrateur VitePress Builder}
      NFZ_SEED_ADMIN_GROUPS: ${NFZ_SEED_ADMIN_GROUPS:-ADMIN,DOCS_ADMIN,DSI}
      NFZ_SEED_ADMIN_ROLES: ${NFZ_SEED_ADMIN_ROLES:-admin,docs-admin}
      NFZ_SEED_ADMIN_ATTEMPTS: ${NFZ_SEED_ADMIN_ATTEMPTS:-20}
      NFZ_SEED_ADMIN_RETRY_MS: ${NFZ_SEED_ADMIN_RETRY_MS:-1500}
    depends_on:
      mongodb:
        condition: service_healthy

  mongodb:
    image: mongo:7
    restart: unless-stopped
    volumes:
      - mongodb-data:/data/db
    environment:
      MONGO_INITDB_DATABASE: vitepress-builder
    healthcheck:
      test: ["CMD-SHELL", "mongosh --quiet --eval 'db.adminCommand({ ping: 1 }).ok' localhost:27017/test | grep 1"]
      interval: 10s
      timeout: 5s
      retries: 12
      start_period: 20s

volumes:
  mongodb-data:
