open-notebook/.env.example
Luis Novo bb61ecfd23 docs: point examples and .env.example at Manage → Models
Follow-up to #1313 and #1330: the Settings → API Keys nav path survived in
.env.example and examples/**, the first files a self-hoster reads.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnMHW3qrSc8Nhi7xTPfZuv
2026-09-05 16:45:47 -03:00

102 lines
4.3 KiB
Text

# Open Notebook Configuration
# Copy this file to .env and customize as needed
# =============================================================================
# REQUIRED
# =============================================================================
# Encryption key for storing API credentials securely in the database
# Change this to any secret string (minimum 16 characters recommended)
OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
# =============================================================================
# DATABASE (Default values work with docker-compose.yml)
# =============================================================================
SURREAL_URL=ws://surrealdb:8000/rpc
# root:root is fine for local use. Change these before exposing the instance to a
# network — docker-compose.yml reads them for both the SurrealDB server and the
# app, so the two stay in sync.
SURREAL_USER=root
SURREAL_PASSWORD=root
SURREAL_NAMESPACE=open_notebook
SURREAL_DATABASE=open_notebook
# =============================================================================
# DEPRECATED: AI Provider API Keys (environment-variable fallback)
# =============================================================================
# Configure AI providers via the UI: Manage → Models. Credentials are
# stored encrypted, can be rotated without restarts, and support multiple
# credentials per provider.
#
# The environment variables below are a DEPRECATED fallback. They still work
# today, but there is no guarantee they keep working in future releases, and
# new automation should not be built on them. A declarative provisioning
# contract for headless/CI/Docker setups is being designed in
# https://github.com/lfnovo/open-notebook/discussions/765
# OpenAI
# OPENAI_API_KEY=sk-...
# Anthropic
# ANTHROPIC_API_KEY=sk-ant-...
# Google AI
# GOOGLE_API_KEY=...
# Groq
# GROQ_API_KEY=gsk_...
# =============================================================================
# OPTIONAL: Advanced Configuration
# =============================================================================
# External API URL (for webhooks, callbacks, etc.)
# API_URL=http://localhost:5055
# Ollama endpoint — DEPRECATED fallback, configure via Manage → Models instead
# OLLAMA_API_BASE=http://localhost:11434
# oMLX (Apple Silicon) — DEPRECATED fallback, configure via Manage → Models instead
# Port 11435 avoids clashing with SurrealDB on 8000
# OMLX_API_BASE=http://localhost:11435/v1
# OMLX_API_KEY= # optional; only if oMLX was started with --api-key
# Content processing
# CHUNK_SIZE=1500
# CHUNK_OVERLAP=150
# Remote Crawl4AI server for the crawl4ai URL engine (no local install needed).
# Crawl4AI Docker >= 0.9.0 requires a bearer token for external connections.
# CRAWL4AI_API_URL=http://crawl4ai:11235
# CRAWL4AI_API_TOKEN=your-crawl4ai-token
# Max background tasks the worker runs concurrently (default 5). Set to 1 for
# sequential processing on single-GPU / local-LLM setups to avoid rate limits.
# NOTE: consumed at worker launch, not by the app — for `make`/dev-init export
# it in your shell; for Docker set it under `environment:` in docker-compose.yml.
# OPEN_NOTEBOOK_WORKER_MAX_TASKS=1
# Maximum upload/request body size in MB (default: 100). Raise this if you
# need to upload larger audio/video files. A fronting reverse proxy's own
# limit (e.g. nginx client_max_body_size) still applies and should be raised
# to match.
# OPEN_NOTEBOOK_MAX_UPLOAD_SIZE_MB=100
# Security
# Password to protect this Open Notebook instance. Supports Docker secrets
# via OPEN_NOTEBOOK_PASSWORD_FILE. Auth is fully disabled if unset.
# OPEN_NOTEBOOK_PASSWORD=secret
# Network / Proxy (corporate / firewalled environments)
# Route outbound HTTP(S) through a proxy. NO_PROXY MUST list the internal
# SurrealDB hosts (host.docker.internal, surrealdb) — otherwise the DB
# websocket gets tunnelled through the proxy and the worker/API fail to start
# with HTTP 403. The app also injects these hosts automatically as a safety
# net, but keep them here so your config is explicit.
# HTTP_PROXY=http://proxy.corp.com:8080
# HTTPS_PROXY=http://proxy.corp.com:8080
# NO_PROXY=localhost,127.0.0.1,host.docker.internal,surrealdb,.local
# For more configuration options, see:
# https://github.com/lfnovo/open-notebook/blob/main/docs/5-CONFIGURATION/environment-reference.md