Vaultwarden es una implementación alternativa de la API de Bitwarden, un gestor de contraseñas de código abierto.
Al estar escrita en Rust, necesita mucho menos recursos que la instalación de Bitwarden en Docker por lo que puede funcionar incluso en una Raspberry Pi 4.
La instalación de Vaultwarden en Docker se realiza usando la imagen vaultwarden/server
.
La forma más sencilla de hacerlo es usando un fichero docker-compose.yml
con el siguiente contenido:
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
environment:
TZ: 'Europe/Madrid'
DOMAIN: 'https://vault.mydomain.com/'
volumes:
- ~/volumes/vaultwarden:/data
restart: unless-stopped
networks:
default:
external: true
name: nginxpm_network
Nota: Nótese que no se expone ningún puerto al Docker host y que se utiliza la misma red que Nginx Proxy Manager.
Para iniciar el contenedor, se puede usar docker-compose up -d
o usar el contenido del fichero anterior en Portainer.
Pre-requisitos
Antes de poder acceder a Vaultwarden para configurarlo es necesario:
- Crear un registro DNS de tipo A en Cloudflare:
vault.mydomain.com
→ 192.168.1.180
- Crear un certificado SSL de Let’s Encrypt para el hostname anterior
- Crear un proxy host para el hostname anterior:
vault.mydomain.com
→http://vaultwarden:80
Configuración
Una vez en marcha, se puede acceder a Vaultwarden a través de HTTPS
usando Nginx Proxy Manager (en este ejemplo https://vault.mydomain.com/
) y comenzar la configuración.
El primer paso consiste en crear una nueva cuenta de usuario para acceder al vault pulsando en el botón Create Account
:
- Email Address:
vaultwarden@mydomain.com
- Name:
Manel
- Master Password:
*********
- Re-type Master Password:
*********
- Master Password Hint (optional):
Pista
Si el usuario se crea correctamente, se podrá iniciar sesión con el mismo y ver la siguiente pantalla:
Nota: Es aconsejable crear todos los usuarios que se necesiten en este momento y así se puede deshabilitar el registro de usuarios para aumentar la seguridad.
Habilitar Admin Panel
Para habilitar la página de administración hay que realizar lo siguiente:
- Ejecutar el comando
openssl rand -base64 48
para generar un token aleatorio:
U543Xx6Bhj+uiv9DhNDcAExM9Cef2C644CC7wwFGUh7Z4I6OvOEaYZaxjnrrKZYX
- Agregar la variable
ADMIN_TOKEN
al ficherodocker-compose.yml
:
environment:
ADMIN_TOKEN: 'U543Xx6Bhj+uiv9DhNDcAExM9Cef2C644CC7wwFGUh7Z4I6OvOEaYZaxjnrrKZYX'
- Acceder al Vaultwarden Admin Panel a través de
https://vault.mydomain.com/admin
:
Nota: La primera vez que se guarde la configuración, se generará el fichero
/data/config.json
. Este fichero tiene preferencia sobre las variables indicadas endocker-compose.yml
.
Nota: También se podría haber activado el Admin Panel creando o modificando el fichero
/data/config.json
añadiendo la variableadmin_token
tal como se muestra a continuación:
{
"admin_token": "U543Xx6Bhj+uiv9DhNDcAExM9Cef2C644CC7wwFGUh7Z4I6OvOEaYZaxjnrrKZYX"
}
Algunos valores interesantes a configurar:
- General settings
- Domain URL:
https://vault.mydomain.com/
- Trash auto-delete days:
90
- Allow new signups:
Disable
- Org creation users:
vaultwarden@mydomain.com
- Allow invitations:
Disable
- Domain URL:
- Advanced settings
- Yubikey settings
- Global Duo settings
- SMTP Email Settings
- Email 2FA Settings
- Read-Only Config
- Backup Database
Nota: Una vez se haya configurado el entorno, es recomendable deshabilitar el Admin Panel. Para ello hay que eliminar la variable de entorno
ADMIN_TOKEN
y asegurarse que no exista la variableadmin_token
en el fichero/data/config.json
.
Actualizar
Si ya se había instalado Vaultwarden anteriormente, se puede actualizar de la siguiente manera:
docker stop vaultwarden
docker rm vaultwarden
docker rmi vaultwarden/server
docker-compose up -d
Soporte
Algunos comandos para gestionar la configuración del contenedor:
# Acceder al shell mientras el contenedor está ejecutándose
docker exec -it vaultwarden /bin/bash
# Monitorizar los logs del contenedor en tiempo real
docker logs -f vaultwarden
# Obtener la versión de Vaultwarden
docker exec vaultwarden /vaultwarden --version
Referencias
- Vaultwarden Wiki
- Self Hosted Password Manager - Your data under your control! @ YouTube “Christian Lempa”
- ¿Y si tú también estás cometiendo estos errores con tus contraseñas? @ YouTube “Un loco y su tecnología”
- Vaultwarden en Unraid @ First Commit
- Bitwarden vs Vaultwarden @ Flopy.es