Skip to Content
Configuration

Configuration

The server has no CLI flags; all runtime configuration comes from environment variables, validated at startup by apps/server/src/config/env.ts. Copy .env.example to .env and adjust the values for your environment.

Relative file and directory paths are resolved against the monorepo workspace root, so behaviour does not depend on the process working directory.

Server

VariableDefaultDescription
NODE_ENVdevelopmentdevelopment, test, or production
HOST127.0.0.1Bind address
PORT3000Bind port
LOG_LEVELinfofataltrace, or silent

Storage

VariableDefaultDescription
STORAGE_ROOTOS temp dir (app-dev)Root for the live DB, version archives, and local caches. Set this explicitly for real deployments.
DATABASE_URL{STORAGE_ROOT}/app.sqliteLive DB path override (mostly for tests; :memory: is supported)
SHARED_FOLDER_ROOT(unset)Root directory exposed by the shared-folder import browser. When unset, only zip-file import is available.
APP_WEB_ROOT(bundled next to the server)Override the directory of pre-built web assets served at /

Sessions & security

VariableDefaultDescription
SESSION_COOKIE_NAMEapp_sessionSession cookie name
SESSION_TTL_SECONDS2592000Session lifetime (30 days)
SESSION_SECURE_COOKIEfalseForce the Secure flag on session cookies
FORCE_HTTPSfalseRefuse to issue/refresh session cookies over plain HTTP. Enable when behind a TLS-terminating reverse proxy.
DISABLE_DEV_PLUGINSfalseIgnore DEV_PLUGIN_PATHS. Recommended for public-facing deployments.

Uploads & media

VariableDefaultDescription
MAX_UPLOAD_BYTES16 GiBUpper bound on a single resource upload
MAX_ARCHIVE_EXTRACTED_BYTES64 GiBHard cap on bytes written when extracting an archive upload (zip-bomb defence)
FFMPEG_PATH(auto)Optional ffmpeg binary override
FFPROBE_PATH(auto)Optional ffprobe binary override

Plugins

VariableDefaultDescription
BUILTIN_PATHpackages/plugin-file/distDirectory of the built-in fallback content plugin
DEV_PLUGIN_PATHS(empty)Comma-separated dev plugin directories loaded from disk
DEV_PLUGINS(empty)Comma-separated plugin names for pnpm dev

One-shot setup

VariableDescription
RESTORE_FROMSnapshot name to restore during setup:dev / app-server-setup, before the server starts listening
ADMIN_PASSWORDAdmin password in plain text (convenient for dev)
ADMIN_PASSWORD_FILEFile containing the admin password (recommended for production)
Last updated on