services: openmind: build: context: . dockerfile: Dockerfile image: openmind:latest container_name: openmind restart: unless-stopped env_file: - .env environment: # Le conteneur ecoute toujours sur 8080 ; APP_PORT ne change que l'hote. APP_NAME: ${APP_NAME:-OpenMind} DATABASE_URL: ${DATABASE_URL:-sqlite:////app/data/openmind.db} MAX_MAP_SIZE_MB: ${MAX_MAP_SIZE_MB:-10} MAX_NODES: ${MAX_NODES:-5000} SHARING_ENABLED: ${SHARING_ENABLED:-true} SHARE_CREATE_RATE_LIMIT: ${SHARE_CREATE_RATE_LIMIT:-10/hour} SHARE_READ_RATE_LIMIT: ${SHARE_READ_RATE_LIMIT:-120/minute} SHARE_WRITE_RATE_LIMIT: ${SHARE_WRITE_RATE_LIMIT:-60/hour} MAX_SHARED_MAPS: ${MAX_SHARED_MAPS:-10000} MAX_SHARE_SIZE_MB: ${MAX_SHARE_SIZE_MB:-0} DEFAULT_SHARE_EXPIRY_DAYS: ${DEFAULT_SHARE_EXPIRY_DAYS:-30} ALLOW_PERMANENT_SHARES: ${ALLOW_PERMANENT_SHARES:-true} TRUST_PROXY_HEADERS: ${TRUST_PROXY_HEADERS:-false} CORS_ORIGINS: ${CORS_ORIGINS:-} LOG_LEVEL: ${LOG_LEVEL:-INFO} STATIC_DIR: /app/static ports: - "${APP_PORT:-8080}:8080" volumes: # Bind mount explicite : les partages SQLite restent accessibles sur l'hote. - ./data:/app/data healthcheck: test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8080/api/health"] interval: 30s timeout: 5s start_period: 10s retries: 3