Theming
Each virtual host can carry its own theme — a set of color and logo overrides applied whenever the interface is served through that host's hostname. This lets a single Modoboa instance present a differently branded login and admin interface per tenant.
How overrides are applied
Theme values are resolved per request, by hostname. When the web interface is served through a virtual host's hostname, the plugin layers that host's theme on top of the global theme defined in Modoboa.
Only the fields you actually set on a virtual host are emitted — any blank field falls back to the global default rather than overwriting it with an empty value. So you can override just the login logo, just the primary color, or the full palette, and everything you leave untouched keeps the instance-wide look.
Color overrides
Five colors can be overridden per virtual host. Each is a hex color string (e.g. #1565c0):
| Field | Role |
|---|---|
| Primary color | Main brand/accent color. |
| Primary color (light) | Lighter variant of the primary color. |
| Primary color (dark) | Darker variant of the primary color. |
| Secondary color | Secondary accent color. |
| Label color | Color used for labels/text accents. |
Logo overrides
Three logos can be uploaded per virtual host:
| Logo | Where it appears |
|---|---|
| Login logo | The login page for this hostname. |
| Menu logo | The left navigation menu of the admin/user interface. |
| Creation form logo | The logo shown on creation forms. |
Uploading a new logo replaces the previous one (the old file is removed from storage so replacements don't accumulate). Clearing a logo reverts that slot to the global default.
Editing a theme
From the Virtual hosts admin list, open a virtual host's theme editor to set its colors and upload or clear its logos. Changes take effect immediately for new requests served through that hostname — there is no provisioning step involved, theming is purely a presentation concern.
TIP
Combine theming with access control: each branded hostname both looks like its tenant and only admits the users that belong to its domains.