Community server required

VariableRequiredDescriptionExample
SERVER_TOKENCloud onlyServer token used for registration and heartbeat. Leave empty when OFFGRID_MODE=true; it is ignored there.abc123...
COMMUNITY_PUBLIC_URLYesPublic base URL for this community API (registered with Core as api_url). Required in .env — Docker Compose does not substitute a default. Required in Offgrid too: it drives voice and attachment URLs.https://community.example.com
CORE_SERVER_URLCloud onlyCore URL used by the community-server for token validation and registration. Forced empty when OFFGRID_MODE=true, which is what stops every call to tusile.com.https://api.tusile.com
LIVEKIT_API_KEYYesLiveKit key used to mint room tokens. Generated by the setup script; run docker run --rm livekit/livekit-server generate-keys to make one by hand. There is no default, and the server will not start without it.APIabcd1234wxyz
LIVEKIT_API_SECRETYesLiveKit secret paired with the API key. Anyone holding it can mint a token for any voice room on your server, so treat it like a password and never reuse an example value.a 32+ character random string

Community server optional

VariableDefaultPurpose
OFFGRID_MODEfalseRun standalone: the server mints its own signing key, issues its own accounts, and never contacts Core. Requires an empty SERVER_TOKEN / CORE_SERVER_URL (both are forced empty anyway) and cannot be combined with multi-tenant mode. See the install guide.
DATA_DIR/app/dataHolds the install ID and, in Offgrid, community_key — the signing key the server’s identity is derived from. Must stay on a persisted volume and be included in backups; losing it in Offgrid invalidates every session and changes the server ID.
CORS_ALLOWED_HOSTSExtra browser origins allowed to call this API, comma-separated. The host of COMMUNITY_PUBLIC_URL is added automatically.
STORAGE_BACKENDlocalFile storage backend: `local` or `s3`.
STORAGE_LOCAL_PATH/app/uploadsUpload location for local storage.
UPLOAD_MAX_SIZE52428800Max upload bytes.
UPLOADS_COMPRESS_ENABLEDtrueToggle ffmpeg image/video re-encoding on upload. Poster (thumbnail) generation is unaffected. Set false on small instances (e.g. t3.micro) where libx264 pegs CPU.
UPLOADS_COMPRESS_CONCURRENCY1Max parallel image/video compress jobs.
S3_BUCKET, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY-Required together when `STORAGE_BACKEND=s3`.
S3_ENDPOINT, S3_PUBLIC_URL-Optional custom S3 endpoint/public URL.
LIVEKIT_URL-Optional explicit LiveKit WebSocket URL override.
LIVEKIT_PORT7880Used when LIVEKIT_URL is not set; combines with COMMUNITY_PUBLIC_URL.
LIVEKIT_CONFIGlivekit.prod.yamlPath to LiveKit config file.
TURN_DOMAIN-Optional override for the LiveKit TURN/TLS (5349) cert domain synced by the livekit-cert-sync container. Defaults to the host of COMMUNITY_PUBLIC_URL.

For local storage, include the community-uploads Docker volume (or bind-mounted directory) in your backup plan. For S3, back up the bucket using your provider’s tools. See Backup & restore.

This page is the operator-facing summary for quick setup and audits.

Last updated: 2026-07-24.