Configurer Vaultwarden avec Traefik
Ça fait plusieurs mois que mon abonnement à Enpass est terminé et que j’ai décidé de changer de crêmerie pour Bitwarden. Le problème de Bitwarden c’est que la procédure d’installation est assez complexe.
Mais c’est là que Vaultwarden arrive et va simplifier tout ça… Du moins c’est ce que je pensais au début, l’installation de Vaultwarden ne s’est pas forcément passé comme je l’espérais car j’utilise Traefik comme proxy et qu’il y a quelques petites spécificités à connaitre.
Sans perdre d’avantage de temps voici un extrait de mon fichier docker-compose.yml
ou j’ai configuré mon container Vaultwarden.
version: "2"
networks:
traefik:
external: true
volumes:
vaultwarden_data:
driver: local
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
networks:
- traefik
environment:
- SIGNUPS_ALLOWED="false"
- DOMAIN="https://vaultwarden.example.com"
- SHOW_PASSWORD_HINT="false"
- TIME_ZONE="Europe/Paris"
- TZ="Europe/Paris"
- WEBSOCKET_ENABLED="true"
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
# UI
- "traefik.http.routers.vaultwarden-ui.rule=Host(`vaultwarden.example.com`)"
- "traefik.http.routers.vaultwarden-ui.entrypoints=https"
- "traefik.http.routers.vaultwarden-ui.tls=true"
- "traefik.http.routers.vaultwarden-ui.tls.certresolver=your_resolver"
- "traefik.http.services.vaultwarden-ui.loadbalancer.server.port=80"
- "traefik.http.services.vaultwarden-ui.loadbalancer.passhostheader=true"
- "traefik.http.routers.vaultwarden-ui.service=vaultwarden-ui"
# WS
- "traefik.http.routers.vaultwarden-ws.rule=Host(`vaultwarden.example.com`) && Path(`/notifications/hub`)"
- "traefik.http.routers.vaultwarden-ws.entrypoints=https"
- "traefik.http.services.vaultwarden-ws.loadbalancer.server.port=3012"
- "traefik.http.routers.vaultwarden-ws.tls=true"
- "traefik.http.routers.vaultwarden-ws.tls.certresolver=your_resolver"
- "traefik.http.routers.vaultwarden-ws.service=vaultwarden-ws"
volumes:
- vaultwarden_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
Prenez bien le temps de remplacer les variables d’exemple pour le domaine, votre configuration Traefik (certificat resolver, Host, …) et le nom volume si vous utilisez un volume.
Voici quelques points important :
- Il faut ajouter la variable d’environnement
WEBSOCKET_ENABLED
et la mettre à true, - Il faut définir 2 services pour Traefik, un pour le site et un second pour les Websockets pour les applications.
Voila, pour mon cas cette configuration m’a permis d’utiliser et de synchroniser mes données avec le site web et les applications Mac/iOS Bitwarden sans soucis, j’espère que si comme moi vous utilisez Traefik cette configuration pourra vous aider à profiter de VaultWarden.