how-to-install-and-manage Help

Vaultwarden

Vaultwarden est un fork en Rust de Bitwarden, qui est un gestionnaire de mots de passe open source. Il est conçu pour être léger de plus de 70% et facile à déployer, tout en offrant une interface utilisateur similaire à celle de Bitwarden. Vaultwarden permet la gestion de plusieurs utilisateurs et équipes, et il est compatible avec les applications Bitwarden existantes.

Installation

Contexte

Vaultwarden est installé dans le cluster Kubernetes pour simplifier, l'accès aux mots de passe depuis l'exterieur du réseau local.

Manifestes Kubernetes

Le déploiment de Vaultwarden est géré par des manifestes Kubernetes. Donc cela va être segmenté en plusieurs parties :

  • Namespace: Création d'un namespace spécifique pour Vaultwarden.

  • Service: Création d'un service pour exposer Vaultwarden.

  • Deployment: Déploiement de l'application Vaultwarden.

  • Persistent Volume Claim (PVC): Stockage persistant pour les données de Vaultwarden.

  • Ingress: Configuration de l'accès externe via Ingress.

Manifestes Vaultwarden

Namespace

Pour ségmenter toutes les ressource lié à vaultwarden, nous allons créer un namespace spécifique.

apiVersion: v1 kind: Namespace metadata: name: vaultwarden

Service

Le service permet d'exposer Vaultwarden à l'extérieur du cluster Kubernetes. Qui sera router par Traefik.

apiVersion: v1 kind: Service metadata: name: vaultwarden namespace: vaultwarden type: LoadBalancer sessionAffinity: None spec: selector: app: vaultwarden ports: - protocol: TCP port: 80 targetPort: 80 name: vaultwarden

Deployment

Déploiement de Vaultwarden.

apiVersion: apps/v1 kind: Deployment template: metadata: labels: app: vaultwarden metadata: name: vaultwarden namespace: vaultwarden spec: replicas: 1 selector: matchLabels: app: vaultwarden template: metadata: labels: app: vaultwarden spec: containers: - name: vaultwarden image: vaultwarden/server:1.30.5 ports: - containerPort: 80 name: vaultwarden protocol: TCP volumeMounts: - name: vaultwarden-pvc mountPath: /data volumes: - name: vaultwarden-pvc persistentVolumeClaim: claimName: vaultwarden-pvc

Persistent Volume Claim (PVC)

Le PVC permet de stocker les données de Vaultwarden de manière persistante. Il y aura notamment la base de données SQLite et les fichiers de configuration.

apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: io.kompose.service: vaultwarden name: vaultwarden-pvc namespace: vaultwarden spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Mi

Ingress

L'Ingress permet de configurer l'accès externe à Vaultwarden via Traefik.

apiVersion: networking.k8s.io/v1 kind: Ingress annotations: annotations: kubernetes.io/ingress.class: traefik traefik.ingress.kubernetes.io/redirect-permanent: "true" metadata: name: vaultwarden-ingress namespace: vaultwarden spec: rules: - host: vaultwarden.innovalia.cc http: paths: - path: / pathType: Prefix backend: service: name: vaultwarden port: number: 80

Configuration

TODO

Last modified: 13 July 2025