Vaultwarden

Implementación alternativa de la API del servidor Bitwarden escrita en Rust y compatible con clientes Bitwarden, perfecta para implementaciones autohospedadas donde ejecutar el servicio oficial con muchos recursos puede no ser ideal.
Enlaces
Using Docker Compose · dani-garcia/vaultwarden Wiki · GitHub
Requisitos
- Docker o Podman instalado siguiendo los pasos de instalar
- Portainer configurado siguiendo los pasos de instalar portainer.
- NGINX Proxy manager siguiendo los pasos de instalar NGINX Proxy Manager. (opcional)
- Traefik configurado siguiendo los pasos de instalar Traefik. (opcional)
Imagen
Repositorio de Docker Hub: vaultwarden/server - Docker Image | Docker Hub
Portainer- Nuevo «stack»
Add a new stack – Portainer Documentation
Web editor
En Portainer «Stack» agregamos nuevo usando el editor WEB pegando el contenido del fichero «docker-compose.yml» y el contenido del fichero de variables
Fichero de variables
DOMAIN=https://vaultwarden.yourdomain.com
ADMIN_TOKEN=GeneraUnTokenComplicado # openssl rand -base64 48
SIGNUPS_ALLOWED=true # Cambia a "false" después de crear tu cuenta
Fichero docker-compose
services:
vaultwarden:
image: vaultwarden/server:testing
container_name: vaultwarden
env_file: stack.env
restart: unless-stopped
volumes:
- data:/data
ports:
- 11001:80
networks:
- proxy
volumes:
data:
networks:
proxy:
external: true
Es importante publicar este contenedor detrás de Proxy para configurar SSL y que
Publicando detrás de un proxy
Crear registro DNS
En el proveedor que aloja el servidor DNS público, crear un registro DNS que resuelva la IP pública que llega al Proxy hacia un nombre del estilo "vaultwarden.domain.com"
NGINX proxy
Para publicar el contenedor detrás de NGINX proxy, como el stack está en la red proxy solo deberás crear un nuevo host
Crear un nuevo "proxy host"
Añade un nuevo proxy host con el nombre de dominio creado en el paso anterior redirigido hacia el nombre del contenedor y el puerto que use:

Traefik

Para publicar el contenedor detrás del proxy Traefik, deberás añadir al fichero docker-compose.yaml las siguientes etiquetas al servicio waltwarden
labels:
- traefik.enable=true
- traefik.http.routers.vaultwarden.tls=true
- traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt
- traefik.http.routers.vaultwarden.rule=Host(`vaultwarden.dominio.com`)
- traefik.http.services.vaultwarden.loadbalancer.server.port=80
Configuración
https://vaultwarden.dominio.com/admin para hacer cambios en la configuración. Usa el admin Token
En el primer acceso nos advierte de `ADMIN_TOKEN` inseguro que cambiaremos siguiendo: Enabling admin page · dani-garcia/vaultwarden Wiki · GitHub
Generamos un token mas seguro que el de texto plano generado anteriormente.
echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4
# Output: $argon2id$v=19$m=65540,t=3,p=4$bXBGMENBZUVzT3VUSFErTzQzK25Jck1BN2Z0amFuWjdSdVlIQVZqYzAzYz0$T9m73OdD2mz9+aJKLuOAdbvoARdaKxtOZ+jZcSL9/N0
La salida del comando anterior la copiaremos en el valor de configuración General Admin/token/Argon2 PHC:
Después de guardar podremos acceder a la administración de Vaultwarden con la nueva contraseña "MySecretPassword"
NOTA: La configuración aquí descrita anula las variables de entorno. Una vez guardada, se recomienda eliminar las variables de entorno dejar de usarlas para evitar confusiones.
SSO
SSO solo está disponible en las images :testing. Las versiones estables aún NO lo soportan
Enabling SSO support using OpenId Connect · dani-garcia/vaultwarden Wiki · GitHub



