# vault-cortex — remote quickstart (Obsidian Sync) # Copy to .env and fill in values, then: docker compose up -d # Required ────────────────────────────────────────────────── # Bearer token for MCP authentication. # Generate one: openssl rand -hex 32 MCP_AUTH_TOKEN= # Public URL that MCP clients use to reach this server. # Used as the OAuth issuer URL in discovery metadata. # Examples: https://vault.example.com, http://203.0.113.10:8000 PUBLIC_URL= # Obsidian Sync auth token. Generate once with: # docker run --rm -it --entrypoint get-token \ # ghcr.io/belphemur/obsidian-headless-sync-docker:latest OBSIDIAN_AUTH_TOKEN= # Exact name of your Obsidian vault (case-sensitive). VAULT_NAME= # Optional ────────────────────────────────────────────────── # Only if your vault has end-to-end encryption enabled. # VAULT_PASSWORD= # Your IANA timezone — affects daily note resolution and memory timestamps. # TZ=America/New_York # Enable or disable the embedding pipeline (default: true). # When true, notes are chunked and embedded via a local ONNX model # (bge-small-en-v1.5) for hybrid search — FTS5 keyword + vector semantic # similarity fused via RRF. First startup is slow (~5min for 700 notes); # subsequent starts are fast via content-hash caching. # Set to false to disable model download and use FTS5 search only. # EMBEDDING_ENABLED=true # Reranking mode for hybrid search results (default: blended). # "blended" uses a cross-encoder to refine result ordering with # position-aware score blending (~200ms added latency). # "none" skips reranking for lower latency. # Only takes effect when EMBEDDING_ENABLED=true. # RERANK_MODE=blended # Windows bind-mount mode (default: false). # Set to true when your vault is on a Windows drive (Docker Desktop). # Enables polling for the file watcher and rename-based moves across # the Docker Desktop/WSL2 bridge. # WINDOWS_MODE=false # Enable or disable the memory layer (default: true). # Set to false to hide memory tools and skip About Me/ creation. # MEMORY_ENABLED=true # Memory folder name in your vault (default: About Me). # MEMORY_DIR=About Me # Host port to expose (default: 8000). # PORT=8000 # Log verbosity: debug | info | warn | error (default: info). # LOG_LEVEL=info # Directory for persistent log files inside the container (default: /data/logs). # Set to empty to disable file logging (logs still go to stdout either way). # LOG_DIR=/data/logs # Days to retain persistent log files before cleanup (default: 30). # LOG_RETENTION_DAYS=30 # User/group IDs for obsidian-sync (default: 1000). # PUID=1000 # PGID=1000 # Device name shown in Obsidian Sync settings. # DEVICE_NAME=vault-cortex # Obsidian Sync conflict resolution: merge | conflict (default: merge). # 'merge' integrates changes automatically; 'conflict' writes a separate conflict file. # CONFLICT_STRATEGY=merge # Sync direction: bidirectional | pull-only | push-only (default: bidirectional). # SYNC_MODE=bidirectional