Skip to content

Simple admin

No database — configuration is stored in a single YAML or JSON file. The admin UI lets you manage auth and users without editing config manually.

Config file

  • Format — YAML or JSON. Set CONFIG_FILE to the path (e.g. ./config.yaml).
  • Sectionsserver, auth, frontend, users. See Config file for the full schema.
  • Override — Environment variables override config file values. Useful for secrets in production.

Admin UI

Admins (users in oauth_admin_emails or with is_admin) can access the Settings page to:

  • Auth providers — Enable/disable Google and GitHub OAuth, set client ID and secret
  • Local users — Add, edit, remove username/password users
  • Server settings — Root path, max upload size, debug mode, CORS origins
  • OAuth redirect URL — Base callback URL for OAuth providers

Changes are written back to the config file. No database migrations or extra setup.

Default admin bootstrap

When no users exist, you can define a default_admin in config with username and password. On first startup, plaintext password is hashed and replaced in-place. The user is not added to local_users; change the password via the admin UI or config to persist.