Contraseñas · sin KYC
Aloja Vaultwarden en un VPS offshore
Ejecuta tu propio vault de contraseñas compatible con Bitwarden en un hardware que tú controlas, en una jurisdicción favorable a la privacidad, pagado en cripto sin vincular tu identidad.
Qué es
Vaultwarden es un servidor Bitwarden ligero y no oficial, escrito en Rust, que habla la misma API que Bitwarden, por lo que todos los clientes oficiales de Bitwarden (extensiones de navegador, escritorio, iOS/Android, CLI) se sincronizan con él. Almacena vaults cifrados de contraseñas, passkeys, semillas TOTP, tarjetas y notas seguras, con organizaciones, adjuntos y controles de administración, usando apenas una fracción de la RAM del stack oficial.
Por qué alojarlo offshore
Tu vault de contraseñas es el activo más sensible que posees, así que quién aloja el servidor y bajo qué legislación importa tanto como el propio cifrado. Un VPS no-KYC, pagado en cripto, en una ubicación de privacidad (NL/CH/RO/IS) significa que el servidor donde se almacenan tus vaults cifrados no está vinculado a tu identidad legal, no está sujeto a una citación judicial de EE. UU./Reino Unido, y no puede quedar bloqueado si un proveedor de pagos decide cancelarte la cuenta.
El despliegue
Una configuración de referencia funcional
Copia esto en una nueva instancia de ChainVPS. Sustituye los marcadores de posición y ponlo en marcha.
# 1) DNS: apunta vault.example.com -> tu IP de ChainVPS (registro A/AAAA)
# 2) Genera un ADMIN_TOKEN en Argon2 (NO uses una cadena en texto plano):
# docker run --rm -it vaultwarden/server /vaultwarden hash
# pega la cadena resultante '$argon2id$...' como ADMIN_TOKEN abajo (entre comillas simples en .env)
# 3) Guarda como docker-compose.yml, crea el Caddyfile que se muestra, y luego: docker compose up -d
services:
vaultwarden:
image: vaultwarden/server:1.32.7
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com" # debe coincidir exactamente con la URL pública
SIGNUPS_ALLOWED: "false" # crea tu cuenta y luego deja esto en false
INVITATIONS_ALLOWED: "true"
ADMIN_TOKEN: "${ADMIN_TOKEN}" # hash Argon2 del paso 2, guardado en .env
WEBSOCKET_ENABLED: "true" # sincronización en vivo (servida en el puerto principal)
SENDS_ALLOWED: "true"
ROCKET_PORT: "80"
volumes:
- ./vw-data:/data # vaults, adjuntos, base de datos sqlite, claves
networks: [vw]
# no se publica ningún puerto del host: solo Caddy habla con él a través de la red interna
caddy:
image: caddy:2
container_name: vaultwarden-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp" # HTTP/3
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
networks: [vw]
depends_on: [vaultwarden]
networks:
vw:
# ---- Caddyfile (mismo directorio) ----
# vault.example.com {
# encode gzip
# reverse_proxy vaultwarden:80
# }
# Caddy obtiene y renueva un certificado Let's Encrypt automáticamente; HTTPS es obligatorio
# porque los clientes de Bitwarden usan WebCrypto, que solo funciona en un origen seguro.
Firewall
Puertos que debes abrir
| Puerto | Protocolo | Propósito |
|---|---|---|
| 443 | TCP | Vault HTTPS + sincronización de clientes + WebSocket (a través de Caddy); el único puerto que debe ser público |
| 80 | TCP | Redirección de HTTP a HTTPS y emisión de certificados ACME/Let's Encrypt |
| 443 | UDP | HTTP/3 (QUIC) opcional para una sincronización de clientes más rápida |
Dimensionamiento adecuado
Qué plan necesitas
VPS Nano/Small (1 vCPU, 1-2 GB RAM)
Vaultwarden consume entre 15 y 30 MB de RAM en reposo con SQLite; un Nano resulta cómodo. El almacenamiento es mínimo salvo que guardes adjuntos grandes.
VPS Pro (2 vCPU, 4 GB RAM)
Margen suficiente para sincronizaciones simultáneas, adjuntos, y para ejecutar Caddy junto con fail2ban/backups en la misma máquina.
VPS Pro (gama alta) o Dedicado de entrada
Pasa de SQLite a Postgres/MySQL y coloca los adjuntos en un plan de Storage o en un disco más grande; una CPU dedicada mantiene la latencia de sincronización estable bajo carga.
Mejores ubicaciones: Elige una ubicación de privacidad de ChainVPS para tu vault: Suiza (CH) e Islandia (IS) tienen una sólida tradición de protección de datos y privacidad, los Países Bajos (NL) ofrecen excelente conectividad bajo la ley de privacidad de la UE, y Rumanía (RO) o Moldavia (MD) quedan fuera de los bloques de intercambio de vigilancia más estrictos. Elige la ubicación geográficamente más cercana a ti y a tus usuarios para minimizar la latencia, ya que el vault se cifra en el cliente en cualquier caso.
Blíndalo
Lista de verificación de hardening
- Mantén SIGNUPS_ALLOWED=false después de crear tu cuenta y usa INVITATIONS para añadir usuarios; un endpoint de registro abierto en un vault público es un imán para los abusos.
- Configura siempre ADMIN_TOKEN con un hash Argon2 generado con 'vaultwarden hash' (nunca con una cadena en texto plano), o desactiva por completo el panel /admin dejando ADMIN_TOKEN sin definir una vez configurado. Considera restringir /admin mediante firewall solo a tu IP.
- Exige HTTPS exclusivamente y deja que Caddy gestione los certificados Let's Encrypt; los clientes de Bitwarden se niegan a ejecutar cifrado sobre HTTP plano, y un certificado válido evita ataques de downgrade/MITM durante la sincronización.
- Haz copias de seguridad programadas del directorio ./vw-data (especialmente rsa_key.pem, config.json, db.sqlite3 y los adjuntos) hacia una ubicación externa, como un plan de Storage de ChainVPS; perder rsa_key.pem invalida todas las sesiones/tokens existentes.
- Ejecuta fail2ban sobre el log de Vaultwarden (LOG_FILE + LOG_LEVEL) para bloquear intentos de inicio de sesión por fuerza bruta, y exige a todos los usuarios que activen 2FA; expón solo los puertos 80/443 mediante ufw/nftables y bloquea todo lo demás.
Despliégalo en
El producto ChainVPS adecuado
Preguntas
Hosting Vaultwarden — Preguntas frecuentes
¿Vaultwarden es lo mismo que Bitwarden?
Es una implementación de servidor independiente y ligera de la API de Bitwarden. No está desarrollado por Bitwarden Inc., pero las aplicaciones y extensiones oficiales de Bitwarden funcionan perfectamente con él, y admite vaults, organizaciones, adjuntos, Sends y passkeys. Es ideal para particulares y equipos pequeños que quieren autoalojamiento sin el consumo de recursos del stack oficial.
¿Mis datos están seguros si el servidor es incautado o el proveedor se ve comprometido?
Los vaults se cifran y descifran en el cliente con una clave derivada de tu contraseña maestra, por lo que el servidor solo almacena texto cifrado en ningún momento. Alojar el servicio en una máquina no-KYC en una jurisdicción favorable a la privacidad reduce quién puede exigir el acceso, pero aun así debes usar una contraseña maestra fuerte, activar 2FA y mantener DOMAIN en HTTPS para proteger el propio flujo de inicio de sesión.
¿Necesito HTTPS, o puedo usar una IP simple?
Necesitas HTTPS con un certificado válido y un nombre de dominio. Los clientes de Bitwarden usan la API WebCrypto del navegador, que solo funciona en un origen seguro, por lo que una configuración con http:// simple o con una IP directa no logrará sincronizar. El servicio Caddy incluido emite y renueva automáticamente un certificado Let's Encrypt gratuito.
¿SQLite o MySQL/Postgres?
SQLite (la opción por defecto) es perfectamente adecuado y el más rápido para uso personal y equipos pequeños de hasta unas pocas decenas de usuarios. Cambia a MySQL o PostgreSQL solo para despliegues grandes con múltiples organizaciones o cuando quieras copias de seguridad y replicación centralizadas de la base de datos; configura DATABASE_URL en consecuencia.
¿Cómo añado usuarios sin abrir el registro público?
Mantén SIGNUPS_ALLOWED=false e INVITATIONS_ALLOWED=true, y luego invita a los usuarios desde una organización (o mediante el panel /admin). Los usuarios invitados reciben una invitación y pueden registrarse aunque el registro público esté cerrado, lo que evita que se abuse del endpoint.
¿Puedo pagar el VPS sin dar mi identificación?
Sí. ChainVPS es no-KYC y acepta criptomonedas, por lo que el servidor que aloja tus vaults cifrados no está vinculado a tu identidad legal ni a un procesador de tarjetas que pudiera congelar la cuenta.
Más para autoalojar
Otros stacks de un clic
Desplegar Vaultwarden
en los próximos 60 segundos.
Ancho de banda ilimitado · DDoS incluido · 21 criptomonedas · sin KYC.