services: production: # image: ghcr.io/presenton/presenton:latest build: context: . dockerfile: Dockerfile ports: # You can replace 5000 with any other port number of your choice to run Presenton on a different port number. - "5000:80" # Required for Codex OAuth callback (OpenAI redirects browser directly to localhost:1455) - "1455:1455" volumes: - ./app_data:/app_data environment: - MIGRATE_DATABASE_ON_STARTUP=true - CAN_CHANGE_KEYS=${CAN_CHANGE_KEYS} - LLM=${LLM} - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_MODEL=${OPENAI_MODEL} - GOOGLE_API_KEY=${GOOGLE_API_KEY} - GOOGLE_MODEL=${GOOGLE_MODEL} - VERTEX_API_KEY=${VERTEX_API_KEY} - VERTEX_MODEL=${VERTEX_MODEL} - VERTEX_PROJECT=${VERTEX_PROJECT} - VERTEX_LOCATION=${VERTEX_LOCATION} - VERTEX_BASE_URL=${VERTEX_BASE_URL} - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY} - AZURE_OPENAI_MODEL=${AZURE_OPENAI_MODEL} - AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT} - AZURE_OPENAI_BASE_URL=${AZURE_OPENAI_BASE_URL} - AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION} - AZURE_OPENAI_DEPLOYMENT=${AZURE_OPENAI_DEPLOYMENT} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - ANTHROPIC_MODEL=${ANTHROPIC_MODEL} - OLLAMA_URL=${OLLAMA_URL} - OLLAMA_MODEL=${OLLAMA_MODEL} - START_OLLAMA=${START_OLLAMA:-false} - CUSTOM_LLM_URL=${CUSTOM_LLM_URL} - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - CODEX_MODEL=${CODEX_MODEL} - DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION} - IMAGE_PROVIDER=${IMAGE_PROVIDER} - PEXELS_API_KEY=${PEXELS_API_KEY} - PIXABAY_API_KEY=${PIXABAY_API_KEY} - DALL_E_3_QUALITY=${DALL_E_3_QUALITY} - GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY} - EXTENDED_REASONING=${EXTENDED_REASONING} - DISABLE_THINKING=${DISABLE_THINKING} - WEB_GROUNDING=${WEB_GROUNDING} - DATABASE_URL=${DATABASE_URL} - DISABLE_ANONYMOUS_TRACKING=${DISABLE_ANONYMOUS_TRACKING} - COMFYUI_URL=${COMFYUI_URL} - COMFYUI_WORKFLOW=${COMFYUI_WORKFLOW} - MEM0_ENABLED=${MEM0_ENABLED:-true} - MEM0_DIR=${MEM0_DIR:-/app_data/mem0} - MEM0_EMBEDDER_PROVIDER=${MEM0_EMBEDDER_PROVIDER:-fastembed} - MEM0_EMBEDDER_MODEL=${MEM0_EMBEDDER_MODEL:-BAAI/bge-small-en-v1.5} - MEM0_EMBEDDING_DIMS=${MEM0_EMBEDDING_DIMS:-384} - LITEPARSE_DPI=${LITEPARSE_DPI:-120} - LITEPARSE_NUM_WORKERS=${LITEPARSE_NUM_WORKERS:-1} - OPEN_WEBUI_IMAGE_URL=${OPEN_WEBUI_IMAGE_URL} - OPEN_WEBUI_IMAGE_API_KEY=${OPEN_WEBUI_IMAGE_API_KEY} - AUTH_USERNAME=${AUTH_USERNAME:-} - AUTH_PASSWORD=${AUTH_PASSWORD:-} - AUTH_OVERRIDE_FROM_ENV=${AUTH_OVERRIDE_FROM_ENV:-} - RESET_AUTH=${RESET_AUTH:-} production-gpu: # image: ghcr.io/presenton/presenton:latest build: context: . dockerfile: Dockerfile deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] ports: # You can replace 5000 with any other port number of your choice to run Presenton on a different port number. - "5000:80" # Required for Codex OAuth callback (OpenAI redirects browser directly to localhost:1455) - "1455:1455" volumes: - ./app_data:/app_data environment: - MIGRATE_DATABASE_ON_STARTUP=true - CAN_CHANGE_KEYS=${CAN_CHANGE_KEYS} - LLM=${LLM} - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_MODEL=${OPENAI_MODEL} - GOOGLE_API_KEY=${GOOGLE_API_KEY} - GOOGLE_MODEL=${GOOGLE_MODEL} - VERTEX_API_KEY=${VERTEX_API_KEY} - VERTEX_MODEL=${VERTEX_MODEL} - VERTEX_PROJECT=${VERTEX_PROJECT} - VERTEX_LOCATION=${VERTEX_LOCATION} - VERTEX_BASE_URL=${VERTEX_BASE_URL} - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY} - AZURE_OPENAI_MODEL=${AZURE_OPENAI_MODEL} - AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT} - AZURE_OPENAI_BASE_URL=${AZURE_OPENAI_BASE_URL} - AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION} - AZURE_OPENAI_DEPLOYMENT=${AZURE_OPENAI_DEPLOYMENT} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - ANTHROPIC_MODEL=${ANTHROPIC_MODEL} - OLLAMA_URL=${OLLAMA_URL} - OLLAMA_MODEL=${OLLAMA_MODEL} - START_OLLAMA=${START_OLLAMA:-false} - CUSTOM_LLM_URL=${CUSTOM_LLM_URL} - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - CODEX_MODEL=${CODEX_MODEL} - DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION} - IMAGE_PROVIDER=${IMAGE_PROVIDER} - PEXELS_API_KEY=${PEXELS_API_KEY} - PIXABAY_API_KEY=${PIXABAY_API_KEY} - DALL_E_3_QUALITY=${DALL_E_3_QUALITY} - GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY} - EXTENDED_REASONING=${EXTENDED_REASONING} - DISABLE_THINKING=${DISABLE_THINKING} - WEB_GROUNDING=${WEB_GROUNDING} - DATABASE_URL=${DATABASE_URL} - DISABLE_ANONYMOUS_TRACKING=${DISABLE_ANONYMOUS_TRACKING} - COMFYUI_URL=${COMFYUI_URL} - COMFYUI_WORKFLOW=${COMFYUI_WORKFLOW} - MEM0_ENABLED=${MEM0_ENABLED:-true} - MEM0_DIR=${MEM0_DIR:-/app_data/mem0} - MEM0_EMBEDDER_PROVIDER=${MEM0_EMBEDDER_PROVIDER:-fastembed} - MEM0_EMBEDDER_MODEL=${MEM0_EMBEDDER_MODEL:-BAAI/bge-small-en-v1.5} - MEM0_EMBEDDING_DIMS=${MEM0_EMBEDDING_DIMS:-384} - LITEPARSE_DPI=${LITEPARSE_DPI:-120} - LITEPARSE_NUM_WORKERS=${LITEPARSE_NUM_WORKERS:-1} - OPEN_WEBUI_IMAGE_URL=${OPEN_WEBUI_IMAGE_URL} - OPEN_WEBUI_IMAGE_API_KEY=${OPEN_WEBUI_IMAGE_API_KEY} - AUTH_USERNAME=${AUTH_USERNAME:-} - AUTH_PASSWORD=${AUTH_PASSWORD:-} - AUTH_OVERRIDE_FROM_ENV=${AUTH_OVERRIDE_FROM_ENV:-} - RESET_AUTH=${RESET_AUTH:-} development: build: context: . dockerfile: Dockerfile.dev ports: - "5000:80" # Required for Codex OAuth callback (OpenAI redirects browser directly to localhost:1455) - "1455:1455" volumes: - .:/app - presenton_root_node_modules:/app/node_modules - presenton_document_extraction_liteparse:/app/document-extraction-liteparse - ./app_data:/app_data environment: # Ollama is not baked into the image; set START_OLLAMA=true for runtime install, or use OLLAMA_URL. - START_OLLAMA=${START_OLLAMA:-false} - MIGRATE_DATABASE_ON_STARTUP=true - CAN_CHANGE_KEYS=${CAN_CHANGE_KEYS} - LLM=${LLM} - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_MODEL=${OPENAI_MODEL} - GOOGLE_API_KEY=${GOOGLE_API_KEY} - GOOGLE_MODEL=${GOOGLE_MODEL} - VERTEX_API_KEY=${VERTEX_API_KEY} - VERTEX_MODEL=${VERTEX_MODEL} - VERTEX_PROJECT=${VERTEX_PROJECT} - VERTEX_LOCATION=${VERTEX_LOCATION} - VERTEX_BASE_URL=${VERTEX_BASE_URL} - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY} - AZURE_OPENAI_MODEL=${AZURE_OPENAI_MODEL} - AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT} - AZURE_OPENAI_BASE_URL=${AZURE_OPENAI_BASE_URL} - AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION} - AZURE_OPENAI_DEPLOYMENT=${AZURE_OPENAI_DEPLOYMENT} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - ANTHROPIC_MODEL=${ANTHROPIC_MODEL} - OLLAMA_URL=${OLLAMA_URL} - OLLAMA_MODEL=${OLLAMA_MODEL} - CUSTOM_LLM_URL=${CUSTOM_LLM_URL} - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - CODEX_MODEL=${CODEX_MODEL} - DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION} - IMAGE_PROVIDER=${IMAGE_PROVIDER} - PEXELS_API_KEY=${PEXELS_API_KEY} - PIXABAY_API_KEY=${PIXABAY_API_KEY} - DALL_E_3_QUALITY=${DALL_E_3_QUALITY} - GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY} - EXTENDED_REASONING=${EXTENDED_REASONING} - DISABLE_THINKING=${DISABLE_THINKING} - WEB_GROUNDING=${WEB_GROUNDING} - DATABASE_URL=${DATABASE_URL} - DISABLE_ANONYMOUS_TRACKING=${DISABLE_ANONYMOUS_TRACKING} - COMFYUI_URL=${COMFYUI_URL} - COMFYUI_WORKFLOW=${COMFYUI_WORKFLOW} - MEM0_ENABLED=${MEM0_ENABLED:-true} - MEM0_DIR=${MEM0_DIR:-/app_data/mem0} - MEM0_EMBEDDER_PROVIDER=${MEM0_EMBEDDER_PROVIDER:-fastembed} - MEM0_EMBEDDER_MODEL=${MEM0_EMBEDDER_MODEL:-BAAI/bge-small-en-v1.5} - MEM0_EMBEDDING_DIMS=${MEM0_EMBEDDING_DIMS:-384} - LITEPARSE_DPI=${LITEPARSE_DPI:-120} - LITEPARSE_NUM_WORKERS=${LITEPARSE_NUM_WORKERS:-1} - OPEN_WEBUI_IMAGE_URL=${OPEN_WEBUI_IMAGE_URL} - OPEN_WEBUI_IMAGE_API_KEY=${OPEN_WEBUI_IMAGE_API_KEY} - AUTH_USERNAME=${AUTH_USERNAME:-} - AUTH_PASSWORD=${AUTH_PASSWORD:-} - AUTH_OVERRIDE_FROM_ENV=${AUTH_OVERRIDE_FROM_ENV:-} - RESET_AUTH=${RESET_AUTH:-} development-gpu: build: context: . dockerfile: Dockerfile.dev deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] ports: - "5000:80" # Required for Codex OAuth callback (OpenAI redirects browser directly to localhost:1455) - "1455:1455" volumes: - .:/app - presenton_root_node_modules:/app/node_modules - presenton_document_extraction_liteparse:/app/document-extraction-liteparse - ./app_data:/app_data environment: - START_OLLAMA=${START_OLLAMA:-false} - MIGRATE_DATABASE_ON_STARTUP=true - CAN_CHANGE_KEYS=${CAN_CHANGE_KEYS} - LLM=${LLM} - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_MODEL=${OPENAI_MODEL} - GOOGLE_API_KEY=${GOOGLE_API_KEY} - GOOGLE_MODEL=${GOOGLE_MODEL} - VERTEX_API_KEY=${VERTEX_API_KEY} - VERTEX_MODEL=${VERTEX_MODEL} - VERTEX_PROJECT=${VERTEX_PROJECT} - VERTEX_LOCATION=${VERTEX_LOCATION} - VERTEX_BASE_URL=${VERTEX_BASE_URL} - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY} - AZURE_OPENAI_MODEL=${AZURE_OPENAI_MODEL} - AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT} - AZURE_OPENAI_BASE_URL=${AZURE_OPENAI_BASE_URL} - AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION} - AZURE_OPENAI_DEPLOYMENT=${AZURE_OPENAI_DEPLOYMENT} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - ANTHROPIC_MODEL=${ANTHROPIC_MODEL} - OLLAMA_URL=${OLLAMA_URL} - OLLAMA_MODEL=${OLLAMA_MODEL} - CUSTOM_LLM_URL=${CUSTOM_LLM_URL} - CUSTOM_LLM_API_KEY=${CUSTOM_LLM_API_KEY} - CUSTOM_MODEL=${CUSTOM_MODEL} - CODEX_MODEL=${CODEX_MODEL} - DISABLE_IMAGE_GENERATION=${DISABLE_IMAGE_GENERATION} - IMAGE_PROVIDER=${IMAGE_PROVIDER} - PEXELS_API_KEY=${PEXELS_API_KEY} - PIXABAY_API_KEY=${PIXABAY_API_KEY} - DALL_E_3_QUALITY=${DALL_E_3_QUALITY} - GPT_IMAGE_1_5_QUALITY=${GPT_IMAGE_1_5_QUALITY} - EXTENDED_REASONING=${EXTENDED_REASONING} - DISABLE_THINKING=${DISABLE_THINKING} - WEB_GROUNDING=${WEB_GROUNDING} - DATABASE_URL=${DATABASE_URL} - DISABLE_ANONYMOUS_TRACKING=${DISABLE_ANONYMOUS_TRACKING} - COMFYUI_URL=${COMFYUI_URL} - COMFYUI_WORKFLOW=${COMFYUI_WORKFLOW} - MEM0_ENABLED=${MEM0_ENABLED:-true} - MEM0_DIR=${MEM0_DIR:-/app_data/mem0} - MEM0_EMBEDDER_PROVIDER=${MEM0_EMBEDDER_PROVIDER:-fastembed} - MEM0_EMBEDDER_MODEL=${MEM0_EMBEDDER_MODEL:-BAAI/bge-small-en-v1.5} - MEM0_EMBEDDING_DIMS=${MEM0_EMBEDDING_DIMS:-384} - LITEPARSE_DPI=${LITEPARSE_DPI:-120} - LITEPARSE_NUM_WORKERS=${LITEPARSE_NUM_WORKERS:-1} - OPEN_WEBUI_IMAGE_URL=${OPEN_WEBUI_IMAGE_URL} - OPEN_WEBUI_IMAGE_API_KEY=${OPEN_WEBUI_IMAGE_API_KEY} - AUTH_USERNAME=${AUTH_USERNAME:-} - AUTH_PASSWORD=${AUTH_PASSWORD:-} - AUTH_OVERRIDE_FROM_ENV=${AUTH_OVERRIDE_FROM_ENV:-} - RESET_AUTH=${RESET_AUTH:-} volumes: presenton_root_node_modules: presenton_document_extraction_liteparse: