Branding
Branding settings live in the Options table under the branding_* key prefix. Changes are read by both the backend (where templated emails reference the site name and logo) and the frontend (where they're injected into the document head and topbar).
Configuration
| Key | Purpose |
|---|---|
branding_site-name | Browser tab title and email From display name. Defaults to "Sosyabot". |
branding_site-tagline | Tagline shown on auth pages and emails. |
branding_logo-url | Absolute URL or repo-relative path to the logo (PNG or SVG recommended). |
branding_favicon-url | Path or URL to the favicon. |
branding_default-theme | light | dark | system. Users can still override per device. |
Storage
GET /api/v1/options list with optional ?prefix=branding_
PUT /api/v1/options { key, value } upsert oneAll values are stored as UTF-8 strings. Restarting the API is not required — the frontend re-reads on next page load.
Asset hosting
Logo and favicon URLs can point at:
- The Sosyabot file store (paste a URL from Files Library).
- An S3 bucket / CDN you control.
- A path under the API's static-files mount.
For self-hosted deployments, dropping assets into backend/dist/public/branding/ and referencing them as /branding/logo.svg is the simplest path.