Vaultwarden
Gestor de contraseñas self-hosted (compatible Bitwarden) para la familia y
fuente de verdad de secretos del homelab.
Resumen
Vaultwarden (implementación libre del servidor de Bitwarden) es el gestor de
contraseñas de la familia y la fuente de verdad de los secretos del homelab
(conviviendo de momento con el .env local, que se mantiene como respaldo).
Aloja una organización "Familia" con colecciones Familia (compartida) y
Homelab; los secretos personales de Gorka y Miren viven en sus cajas fuertes
individuales. La colección Homelab se sincroniza al cluster vía
Vaultwarden Kubernetes Secrets.
Estado
| Campo |
Valor |
| Estado |
Operativo |
| Argo CD Application |
vaultwarden |
| Namespace |
vaultwarden |
Despliegue
| Campo |
Valor |
| Método |
manifests planos (imagen oficial) |
| Imagen |
vaultwarden/server:1.37.2 |
| Origen |
clusters/luka/config/vaultwarden/ |
| Config en el repo |
clusters/luka/apps/vaultwarden/ y clusters/luka/config/vaultwarden/ |
Red
Acceso y usuarios
- Usuarios:
gorka (owner/admin de la organización), miren, y
vaultwarden-sync (usuario de servicio de VKS, solo lectura sobre Homelab).
- Credenciales: la master password de cada usuario vive en Vaultwarden
(nunca en el repo). El
ADMIN_TOKEN del panel /admin está en el SealedSecret
vaultwarden-admin-token. Nunca el secreto en claro aquí.
Configuración
DATABASE_URL → cluster CNPG vaultwarden-db (SealedSecret vaultwarden-db-url).
- SMTP Gmail (
smtp.gmail.com:587, starttls) para invitaciones y 2FA
(app password en SealedSecret vaultwarden-smtp).
SIGNUPS_ALLOWED=false (ya bootstrapado; durante el bootstrap estuvo true),
SIGNUPS_VERIFY=true, DOMAIN=https://passwords.gorkarevilla.com.
WEBSOCKET_ENABLED=true + IP_HEADER=X-Forwarded-For (detrás de Traefik).
strategy: Recreate (upgrade seguro).
Almacenamiento
- PVC
vaultwarden-data (Longhorn, 2Gi) para /data (attachments, iconos, sends).
- La base de datos vive en el cluster CNPG
vaultwarden-db (Longhorn, replica=2).
Dependencias
- Depende de: k3s, Longhorn, CloudNativePG (
vaultwarden-db), Sealed Secrets,
Traefik, cert-manager, cloudflared (externo).
- Usado por: Vaultwarden Kubernetes Secrets (sync de
Homelab), usuarios.
Backup y recuperación
- La DB (
vaultwarden-db) tiene backup operativo vía CloudNativePG (Barman
Cloud → R2, base diario 02:00 + WAL/PITR, retención 30 días). Ver
docs/runbooks/cnpg-backup-restore.md.
Monitorización
- No expone métricas Prometheus nativas (no se inventa un exporter).
Referencias
- https://github.com/dani-garcia/vaultwarden
- Runbook:
docs/runbooks/vaultwarden.md
Notas / TODO
- Proteger el panel
/admin con Cloudflare Access (opcional).