[variables] main_domain = "${domain}" karakeep_version = "release" [config] [[config.domains]] serviceName = "web" port = 3000 host = "${main_domain}" [config.env] # Core required configuration "NEXTAUTH_URL" = "http://${main_domain}" # "NEXTAUTH_SECRET" = "${password:36}" # DATA_DIR is already set to /data by default in docker-compose # "DATA_DIR" = "/data" # Optional: common configs # "ASSETS_DIR" = "" "MEILI_MASTER_KEY" = "${password:36}" # "MAX_ASSET_SIZE_MB" = "50" # "DISABLE_NEW_RELEASE_CHECK" = "false" # "PROMETHEUS_AUTH_TOKEN" = "" # "RATE_LIMITING_ENABLED" = "false" # "DB_WAL_MODE" = "false" # "SEARCH_NUM_WORKERS" = "1" # "WEBHOOK_NUM_WORKERS" = "1" # "ASSET_PREPROCESSING_NUM_WORKERS" = "1" # "RULE_ENGINE_NUM_WORKERS" = "1" # --- Asset Storage (S3) --- # "ASSET_STORE_S3_ENDPOINT" = "" # "ASSET_STORE_S3_REGION" = "" # "ASSET_STORE_S3_BUCKET" = "" # "ASSET_STORE_S3_ACCESS_KEY_ID" = "" # "ASSET_STORE_S3_SECRET_ACCESS_KEY" = "" # "ASSET_STORE_S3_FORCE_PATH_STYLE" = "false" # --- Authentication / Signup --- # "DISABLE_SIGNUPS" = "false" # "DISABLE_PASSWORD_AUTH" = "false" # "EMAIL_VERIFICATION_REQUIRED" = "false" # "OAUTH_WELLKNOWN_URL" = "" # "OAUTH_CLIENT_SECRET" = "" # "OAUTH_CLIENT_ID" = "" # "OAUTH_SCOPE" = "openid email profile" # "OAUTH_PROVIDER_NAME" = "Custom Provider" # "OAUTH_ALLOW_DANGEROUS_EMAIL_ACCOUNT_LINKING" = "false" # "OAUTH_TIMEOUT" = "3500" # --- Inference Configs --- # "OPENAI_API_KEY" = "" # "OPENAI_BASE_URL" = "" # "OLLAMA_BASE_URL" = "" # "OLLAMA_KEEP_ALIVE" = "" # "INFERENCE_TEXT_MODEL" = "gpt-4.1-mini" # "INFERENCE_IMAGE_MODEL" = "gpt-4o-mini" # "EMBEDDING_TEXT_MODEL" = "text-embedding-3-small" # "INFERENCE_CONTEXT_LENGTH" = "2048" # "INFERENCE_LANG" = "english" # "INFERENCE_NUM_WORKERS" = "1" # "INFERENCE_ENABLE_AUTO_TAGGING" = "true" # "INFERENCE_ENABLE_AUTO_SUMMARIZATION" = "false" # "INFERENCE_JOB_TIMEOUT_SEC" = "30" # "INFERENCE_FETCH_TIMEOUT_SEC" = "300" # "INFERENCE_OUTPUT_SCHEMA" = "structured" # --- Crawler Configs --- # "CRAWLER_NUM_WORKERS" = "1" # "BROWSER_WEB_URL" = "http://chrome:9222" # "BROWSER_WEBSOCKET_URL" = "" # "BROWSER_CONNECT_ONDEMAND" = "false" # "CRAWLER_DOWNLOAD_BANNER_IMAGE" = "true" # "CRAWLER_STORE_SCREENSHOT" = "true" # "CRAWLER_FULL_PAGE_SCREENSHOT" = "false" # "CRAWLER_SCREENSHOT_TIMEOUT_SEC" = "5" # "CRAWLER_FULL_PAGE_ARCHIVE" = "false" # "CRAWLER_JOB_TIMEOUT_SEC" = "60" # "CRAWLER_NAVIGATE_TIMEOUT_SEC" = "30" # "CRAWLER_VIDEO_DOWNLOAD" = "false" # "CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE" = "50" # "CRAWLER_VIDEO_DOWNLOAD_TIMEOUT_SEC" = "600" # "CRAWLER_ENABLE_ADBLOCKER" = "true" # "CRAWLER_YTDLP_ARGS" = "[]" # --- OCR Configs --- # "OCR_CACHE_DIR" = "" # "OCR_LANGS" = "eng" # "OCR_CONFIDENCE_THRESHOLD" = "50" # --- Webhook Configs --- # "WEBHOOK_TIMEOUT_SEC" = "5" # "WEBHOOK_RETRY_TIMES" = "3" # "WEBHOOK_TOKEN" = "" # --- SMTP Configuration --- # "SMTP_HOST" = "" # "SMTP_PORT" = "587" # "SMTP_SECURE" = "false" # "SMTP_USER" = "" # "SMTP_PASSWORD" = "" # "SMTP_FROM" = "" # --- Proxy Configuration --- # "CRAWLER_HTTP_PROXY" = "" # "CRAWLER_HTTPS_PROXY" = "" # "CRAWLER_NO_PROXY" = "" [[config.mounts]] # Persistent data directory for Karakeep volumeName = "data" mountPath = "/data" [[config.mounts]] # Meilisearch data directory volumeName = "meilisearch" mountPath = "/meili_data"