Skip to content

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):

FieldRole
Primary colorMain brand/accent color.
Primary color (light)Lighter variant of the primary color.
Primary color (dark)Darker variant of the primary color.
Secondary colorSecondary accent color.
Label colorColor used for labels/text accents.

Logo overrides

Three logos can be uploaded per virtual host:

LogoWhere it appears
Login logoThe login page for this hostname.
Menu logoThe left navigation menu of the admin/user interface.
Creation form logoThe 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.

Built with VitePress