Saltar a contenido

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

Campo Valor
Service vaultwarden (ClusterIP)
URL interna https://passwords.local.gorkarevilla.com
URL externa https://passwords.gorkarevilla.com
TLS interno: cert-manager wildcard *.local.gorkarevilla.com; externo: Cloudflare edge

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