How do I customize colors and the logo?
Short answer
Section titled “Short answer”Open Administration → Branding: there you upload the logo and favicon, set the site name (browser tab), and choose the primary color and secondary color as hex values. The primary color applies UI-wide — to buttons, links, and active navigation — and Notory automatically calculates lighter/darker hover and active shades from it, as well as a contrast-safe text color (WCAG-oriented). The secondary color shapes the sidebar, including its hover state.
Prerequisites
Section titled “Prerequisites”Images: PNG, JPEG, SVG, WEBP, ICO, or GIF, up to the configured upload size limit.
Colors: hex notation #RGB or #RRGGBB.
Instructions
Section titled “Instructions”-
Open Branding. Administration → Branding (“Set the logo, site name (browser tab) and server name for this instance.”).
Screenshot pendingadmin-branding-01Branding section with logo upload, site name, server name, and primary and secondary colorThe branding section: logo, site name, and the instance's two brand colors. -
Upload the logo and favicon. Click “Upload logo” and choose the file; do the same for the favicon. The old image is automatically replaced.
-
Set the names and colors. Enter the site name (appears in the browser tab and in e-mails) and, if needed, the server name. Choose the primary color and secondary color using the color picker or as a hex value. Optional: a login message that appears on the login page, and the default theme (Dark, Light, or Notory).
-
Save. The changes take effect immediately — even on the login page, before anyone signs in.
Branding lives in the instance settings. Reading is public (the login page needs it before sign-in); writing requires administrator rights:
curl https://demo.notory.io/api/v1/instance/settingscurl -X PUT https://demo.notory.io/api/v1/instance/settings \ -H "Authorization: Bearer inv_dein_token" \ -H "Content-Type: application/json" \ -d '{ "site_name": "ACME Inventar", "server_name": "ACME Notory Server", "primary_color": "#c6703d", "secondary_color": "#15161a", "login_message": "Willkommen im ACME-Inventar. Support: it@acme.example", "default_theme": "dark" }'curl -X POST https://demo.notory.io/api/v1/instance/logo \ -H "Authorization: Bearer inv_dein_token" \ -F "file=@acme-logo.svg;type=image/svg+xml"Similarly: POST /api/v1/instance/favicon. You set tenant branding separately:
curl -X PUT https://demo.notory.io/api/v1/tenants/{tenant_id}/branding \ -H "Authorization: Bearer inv_dein_token" \ -H "Content-Type: application/json" \ -d '{ "logo_url": "https://acme.example/logo.svg", "primary_color": "#1B3A5C", "secondary_color": "#ffffff" }'Possible errors: 403 (not an administrator / missing write scope), 413 (file too
large), 415 (unsupported image type — allowed: PNG, JPEG, SVG, WEBP, ICO, GIF), 422
(invalid hex value — pattern #RGB/#RRGGBB).
What happens behind the scenes?
Section titled “What happens behind the scenes?”- UI-wide color derivation. From the primary color, the frontend automatically generates a lighter (+12%) and a darker variant (−12%) for hover/active states, and calculates a WCAG-oriented contrast text color (light or dark) so that text on brand-colored buttons stays readable. The secondary color determines the sidebar background; its hover shade is likewise derived (+10%). So you only maintain two values — Notory takes care of every state and contrast.
- Effective before login.
GET /api/v1/instance/settingsis deliberately public: the browser tab title, logo, colors, and login message already appear on the login page. So don’t store anything confidential here. - E-mails are branded too. System e-mails (reset link, invitation) pick up the site name, logo, and primary color, as well as the legal footer links.
- Uploads live in the database. The logo/favicon are stored in the database’s media store (not on the file system) — so multiple backend replicas all serve the same image. Replacing an image deletes the old one.
- Two layers of branding. Instance branding applies everywhere; in addition, each tenant can maintain its own logo and colors, which override the instance branding for that tenant’s users.
- Audit. Every change records
updated_by(who last made the change) and appears in the log.
Related topics
Section titled “Related topics”- Manage the legal footer links
- Tenants — branding per tenant
- Create a user — branded invitation e-mails