# OpenDots template: the UI opens in setup state until these fields are configured. HOST=127.0.0.1 PORT=4310 DATABASE_PATH=data/opendots.sqlite # Keep OWNER_ID stable: it owns the persistent Intelligence conversations. OWNER_ID=opendots-owner # npm run dev allows http://127.0.0.1:5173; override for a different exact origin. # APP_ORIGIN=http://127.0.0.1:5173 # Required for an external HOST binding (24+ characters); enables local login too. # OWNER_TOKEN= INTELLIGENCE_API_KEY= # INTELLIGENCE_API_URL= # INTELLIGENCE_WS_URL= OPENAI_API_KEY= OPENAI_BASE_URL=https://api.openai.com/v1 OPENAI_MODEL= # Optional isolated read-only public-page browser for WEB_SEARCH_PROVIDER=browser. BROWSER_URL=http://127.0.0.1:4311 BROWSER_SECRET= BROWSER_HOST=127.0.0.1 BROWSER_PORT=4311 # Use the same random 24+ character secret in app/browser. All redirects are blocked. # Supply canonical public URLs. Use the separate browser container for isolation. # Optional realtime speech; compute uses the same configured Intelligence thread. VOICE_API_KEY= VOICE_MODEL= VOICE_NAME=marin # Optional managed Slack channel; see docs/SETUP.md#slack. # Match the managed declaration name, not a Slack #conversation name. # OpenTag calls this INTELLIGENCE_CHANNEL_NAME; OpenDots uses SLACK_CHANNEL_NAME. # Allowlist both the Slack workspace and explicit Slack user IDs. SLACK_CHANNEL_NAME= SLACK_TEAM_ID= SLACK_USER_IDS= # SLACK_DOT_ID= (defaults to the initial Dot) # Optional persistent computers, one per Dot, using OpenBot services. # See docs/COMPUTERS.md. Keep these two different random secrets on the server. COMPUTER_SUPERVISOR_URL= COMPUTER_SUPERVISOR_TOKEN= COMPUTER_TOKEN= # Keep stable: the namespace identifies existing containers and persistent volumes. COMPUTER_NAMESPACE=opendots # COMPUTER_MEMORY_BYTES=2147483648 # COMPUTER_RUNTIME=runsc # ENGINE_SOCKET=/var/run/docker.sock # Public-web provider. parallel (default), browser (URL-only), or disabled. # Queries and selected URLs are sent to Parallel; sample mode makes no provider calls. WEB_SEARCH_PROVIDER=parallel # Optional Bearer key for production/higher limits; anonymous MCP supports light use. PARALLEL_API_KEY=