Skip to content

Server Configuration

The server is configured via server-config.yaml. All settings can also be overridden with environment variables.

Full reference

yaml
server:
  port: 3000
  host: "0.0.0.0"
  sessionExpiryDays: 30
  web:
    enabled: true
  # baseUrl: "https://your-public-domain.com"

log:
  level: "info"
  json: false

database:
  url: "${DATABASE_URL}"
  maxConnections: 10

push:
  allowPrivateEndpoints: false

mediabridge:
  url: "http://localhost:9090"
  healthCheckInterval: 5000

Settings

server

SettingDefaultEnv OverrideDescription
port3000PORTHTTP port the server listens on
host0.0.0.0HOSTBind address
baseUrlBASE_URLPublic URL where providers send webhooks
sessionExpiryDays30How long login sessions last before requiring re-authentication
web.enabledtrueWhether to serve the built-in web interface

log

SettingDefaultEnv OverrideDescription
levelinfoLOG_LEVELLog level: debug / info / warn / error
jsonfalseOutput logs as JSON (useful for log aggregation)

database

SettingDefaultEnv OverrideDescription
urlDATABASE_URLPostgreSQL connection string
maxConnections10Maximum database connection pool size

push

SettingDefaultDescription
allowPrivateEndpointsfalseAllow UnifiedPush endpoints on private/LAN networks. Enable if your push server (e.g. ntfy) is on the same LAN. When false, only HTTPS URLs resolving to public IPs are accepted.

mediabridge

SettingDefaultEnv OverrideDescription
urlhttp://localhost:9090MEDIA_BRIDGE_URLURL of the MediaBridge ControlAPI
healthCheckInterval5000MEDIA_BRIDGE_HEALTH_CHECK_INTERVALHow often (ms) the server checks if the MediaBridge is alive

Environment variable overrides

Any setting can be overridden by its corresponding env var. The config file also supports ${VAR_NAME} placeholder syntax for referencing environment variables inline.

Other environment variables

These don't have config file equivalents:

VariableDescription
INITIAL_PASSWORDSeeds the login password on first run
CONFIG_ENCRYPTION_KEYAES-256-GCM key for encrypting provider secrets at rest
CORS_ORIGINComma-separated allowed origins for CORS
CONFIG_PATHPath to the config file (default: ./server-config.yaml)

Released under the AGPL-3.0 License.