Skip to content

Configuration

Alcoves is configured through environment variables, prefixed with ALCOVES_ on the backend. This page covers the ones most installs touch; .env.example in the repository is the complete, always-current list.

VariableDescription
ALCOVES_SESSION_SECRETKey for encrypted session cookies. Required — the API won’t start without it. It’s hashed into the encryption key, so any non-empty value works, but use a long random one (below).
ALCOVES_DATABASE_URLPostgreSQL connection string. The database needs the pgvector extension.

Generate a session secret with:

Terminal window
openssl rand -base64 48
VariableDefaultDescription
ALCOVES_MODEallall (API + worker), api (HTTP only), or worker (background jobs only).
ALCOVES_ENVdevelopmentSet production for real deployments — development relaxes CORS for localhost.
ALCOVES_BASE_URLhttp://localhost:3000The public URL of the instance. Drives OAuth redirects, share links, and CORS. Keep it accurate.

Splitting api and worker lets you scale the request path and the heavy background pipeline independently — see deploying Alcoves.

VariableDefaultDescription
ALCOVES_QUEUE_HOSTlocalhostDragonfly/Redis host for background jobs.
ALCOVES_QUEUE_PORT6389Port (most Redis setups use 6379).
ALCOVES_QUEUE_PASSWORD(empty)Optional queue password.
VariableDefaultDescription
ALCOVES_STORAGE_DRIVERlocalStorage backend.
ALCOVES_STORAGE_PATH./dataBase data directory. Uploaded files live under {path}/files.
ALCOVES_AVATAR_STORAGE_PATH{path}/avatarsOverride path for avatars.
ALCOVES_CACHE_STORAGE_PATH{path}/.cacheOverride path for derived media (thumbnails, transcodes).
VariableDescription
ALCOVES_OAUTH_GOOGLE_CLIENT_IDGoogle OAuth client ID.
ALCOVES_OAUTH_GOOGLE_CLIENT_SECRETGoogle OAuth client secret.

Also set PUBLIC_GOOGLE_AUTH_ENABLED=true on the frontend so the sign-in button shows up (the Helm chart does this automatically).

The SvelteKit server reads its own variables (not ALCOVES_-prefixed):

VariableDefaultDescription
INTERNAL_API_URLhttp://localhost:3001Where the SvelteKit server reaches the Go API for SSR and the /api proxy.
PUBLIC_API_ORIGIN(empty)When set, browsers stream video/images/downloads and the activity WebSocket directly from the API instead of through the SvelteKit proxy. Recommended in production.
FRONTEND_HOST / FRONTEND_PORT0.0.0.0 / 3000Bind address of the SvelteKit server.
FRONTEND_BODY_SIZE_LIMITInfinityKeep unbounded, or large upload chunks through the proxy are rejected.
PUBLIC_GOOGLE_AUTH_ENABLED(empty)true shows the Google sign-in button.
PUBLIC_MAP_TILE_URL / PUBLIC_MAP_TILE_ATTRIBUTIONOpenStreetMapPoint the map view at self-hosted tiles if you prefer.
VariableDefaultDescription
ALCOVES_MCP_HTTP_ENABLEDfalseServe the MCP server over HTTP at /api/mcp.
ALCOVES_MCP_OAUTH_ENABLEDfalseOAuth 2.1 flow for remote MCP connectors (requires the HTTP transport and an https base URL).
ALCOVES_SENTRY_DSN(empty)Backend error reporting to a Sentry instance you choose. Off unless set.
ALCOVES_WHISPER_MODELlarge-v3Boot-time default transcription model; admins can change it at runtime in the admin panel.