"Configuration" throughout the documentation and codebase refers to these variables which are statically set when the process launches. Changing them requires a restart, however they don't need to be changed much once set.
Configuration is done via environment variables. The following variables are available:
These settings are necessary to customise for pretty much all production installations.
Used for logging and switching some behaviour to use mocks instead of real services.
- logs will be output in JSON.
- emails will be sent instead of logged.
- SMS messages will be sent instead of logged.
default: a SQLite file located at
This specifies the primary database Storyden will persist all its main data in. It can accept Postgres or SQLite URL-style strings.
The interface bind address. Usually you won't ever need to change this.
This is important as it affects the ability for users to authenticate. It's used for both cookies and WebAuthn.
Warning: Changing this will break WebAuthn/Passkey sessions. There's a planned workaround coming but currently it's not recommended you switch domains if you allow users to authenticate with WebAuthn/Passkey.
An encryption key for secure cookies. Do not leave this as the default value for production installations. Changing this value will invalidate all active sessions.
Changing the session key will invalidate all existing sessions and force all users to log in again. It's best to set this once and only change it if you believe the key has been compromised.
The public address for the frontend application. Change this to your production frontend URL with which you access the web application from via a browser. In production it should not have a port number and should use https.
default: empty string - local filesystem storage
When unset, all persistent storage of files (avatars, uploads, assets, etc) will use the local filesystem.
When set to
s3, the other
S3_ prefixed variables are required and all persistent storage of files will use S3.
ASSET_STORAGE_TYPE specifies local file storage, this variable controls where the files are stored.
The following variables are required when
ASSET_STORAGE_TYPE is set to
These are often used during development of Storyden itself, plugins or frontends and rarely need to be set by end-users.
Internal or advanced use only. A directory path that, when non-empty, be used to run the frontend Next.js app from.
The all-in-one Docker image uses this to ensure the frontend process is a child process of the backend process and they start/stop together. If you're self-hosting outside of Docker, you should not need to use this because it's simpler to use your preferred job management solution (such as systemd) to manage both processes independently.