Custom logo replacement no longer works in recent Vaultwarden versions

Hi everyone,

I’ve been trying to replace the default Vaultwarden logo (and add my own branding) in the current Vaultwarden release, but none of the previously documented methods seem to work anymore.

Here’s a summary of everything I’ve tried and what happened:

  • Running Vaultwarden in Docker on a Synology NAS

  • Reverse proxy configured via Synology (HTTPS → HTTP:8122)

  • Custom templates mounted from /volume1/docker/vaultwarden/templates/

  • Custom images stored in /data/branding/

What we’ve tried so far

  1. Editing the templates
  • Modified user.vaultwarden.scss.hbs and footer.hbs successfully (footer changes appear).

  • Added custom CSS to hide the default logo and display our own → no effect.

  • Tried both standard CSS and SCSS syntax.

  1. Replacing logo files directly
  • Replaced /web-vault/images/logo*.png and /web-vault/images/logo.svg inside the container.

  • Even after container restart and cache clearing, Vaultwarden still shows the original logo.

  • The files are indeed overwritten, but seem to be ignored.

  1. Adding external images
  • Tried referencing images from /data/branding/ and external URLs

  • CSS loads, but the images are never rendered.

  1. Injecting via ::before overlay
  • We even tried adding a top bar (html::before { background-image: url(“/images/logo.png”) }) to cover the default logo area.

  • The style loads (verified with color and padding changes), but the background-image is never displayed — possibly blocked or overridden by the new frontend build.

Has anyone successfully replaced the Vaultwarden logo or applied custom branding with the new web-vault structure?
If so:

Which files or environment variables did you modify?

Is there a new path or method to override the React build assets?

Any guidance or examples would be greatly appreciated :folded_hands:
We’d be happy to contribute an updated guide or documentation once this works.

Thanks, Mathias

Which vaultwarden version and web-vault version are you using? The examples from the wiki seem to work for me.

(You might have to mount the images into the /web-vault/images directory so that you can reference them via url(../images/my-custom-global-logo.png). Vaultwarden’s CSP might prevent loading the image if you reference external images.)

btw: the SVGs are now embedded into the compiled application so they cannot easily be replaced by changing custom images in the web-vault images folder. You’d need to replace the whole <svg>...</svg> images inside the compiled javascript which is not something I would recommend.