Eliminar página Standalone y actualizar variables a solo ADMIN_TOKEN
@@ -6,10 +6,10 @@ Una vez desplegado Vaultwarden, sigue estos pasos para configurarlo correctament
|
|||||||
|
|
||||||
Antes de empezar, asegúrate de haber completado:
|
Antes de empezar, asegúrate de haber completado:
|
||||||
|
|
||||||
- ✅ Vaultwarden desplegado con [Traefik](Traefik), [NPM](NPM) o [Standalone](Standalone)
|
- ✅ Vaultwarden desplegado con [Traefik](Traefik) o [NPM](NPM)
|
||||||
- ✅ Acceso a `https://vaultwarden.tudominio.com` (o HTTP en standalone)
|
- ✅ Acceso a `https://vaultwarden.tudominio.com`
|
||||||
- ✅ ADMIN_TOKEN generado y configurado
|
- ✅ ADMIN_TOKEN generado y configurado
|
||||||
- ✅ Certificado SSL válido (si usas Traefik o NPM)
|
- ✅ Certificado SSL válido
|
||||||
|
|
||||||
## 🔐 1. Acceder al Panel de Administración
|
## 🔐 1. Acceder al Panel de Administración
|
||||||
|
|
||||||
@@ -53,13 +53,13 @@ En el panel de administración, ve a **General Settings**.
|
|||||||
**Campo**: `Domain URL`
|
**Campo**: `Domain URL`
|
||||||
**Valor**: `https://vaultwarden.tudominio.com` (tu dominio completo con protocolo)
|
**Valor**: `https://vaultwarden.tudominio.com` (tu dominio completo con protocolo)
|
||||||
|
|
||||||
Este valor **debe coincidir** con la variable `DOMAIN` del docker-compose.
|
Este valor es importante para:
|
||||||
|
|
||||||
⚠️ **Crítico**: Un valor incorrecto causará problemas con:
|
|
||||||
- Links de verificación de email
|
- Links de verificación de email
|
||||||
- Redirecciones después del login
|
- Redirecciones después del login
|
||||||
- Funcionalidades de la API
|
- Funcionalidades de la API
|
||||||
|
|
||||||
|
⚠️ **Nota**: A diferencia de versiones anteriores, ahora se configura únicamente desde el panel de administración, no desde variables de entorno.
|
||||||
|
|
||||||
### Iconos de Servicios
|
### Iconos de Servicios
|
||||||
|
|
||||||
**Campo**: `Icon Download Timeout`
|
**Campo**: `Icon Download Timeout`
|
||||||
|
|||||||
14
Home.md
14
Home.md
@@ -7,7 +7,6 @@ Bienvenido a la wiki de **Vaultwarden**, un gestor de contraseñas autoalojado c
|
|||||||
### Despliegue
|
### Despliegue
|
||||||
- **[Traefik](Traefik)**: Despliegue con Traefik como reverse proxy (recomendado)
|
- **[Traefik](Traefik)**: Despliegue con Traefik como reverse proxy (recomendado)
|
||||||
- **[Nginx Proxy Manager](NPM)**: Despliegue con Nginx Proxy Manager
|
- **[Nginx Proxy Manager](NPM)**: Despliegue con Nginx Proxy Manager
|
||||||
- **[Standalone](Standalone)**: Despliegue sin proxy (solo testing)
|
|
||||||
|
|
||||||
### Configuración y Mantenimiento
|
### Configuración y Mantenimiento
|
||||||
- **[Configuración Inicial](Configuración-Inicial)**: Primeros pasos tras el despliegue
|
- **[Configuración Inicial](Configuración-Inicial)**: Primeros pasos tras el despliegue
|
||||||
@@ -51,17 +50,14 @@ openssl rand -base64 48
|
|||||||
| Modo | Recomendado | Requisitos | Características |
|
| Modo | Recomendado | Requisitos | Características |
|
||||||
|------|-------------|------------|-----------------|
|
|------|-------------|------------|-----------------|
|
||||||
| **Traefik** | ✅ Sí | Red `proxy`, Traefik con Let's Encrypt | SSL automático, WebSocket integrado |
|
| **Traefik** | ✅ Sí | Red `proxy`, Traefik con Let's Encrypt | SSL automático, WebSocket integrado |
|
||||||
| **NPM** | ⚠️ Aceptable | Red `proxy`, NPM configurado | Requiere activar WebSocket manualmente |
|
| **NPM** | ✅ Sí | Red `proxy`, NPM configurado | Requiere activar WebSocket manualmente |
|
||||||
| **Standalone** | ❌ No | Solo Docker | Solo para testing local, sin HTTPS |
|
|
||||||
|
|
||||||
### Variables de Entorno Comunes
|
### Variables de Entorno
|
||||||
|
|
||||||
Todas las configuraciones requieren estas variables:
|
Todas las configuraciones requieren:
|
||||||
|
|
||||||
```env
|
```env
|
||||||
DOMAIN=https://vaultwarden.tudominio.com # Con protocolo en Traefik/NPM
|
ADMIN_TOKEN=tu_token_generado_con_openssl # Obligatorio
|
||||||
ADMIN_TOKEN=tu_token_generado_con_openssl
|
|
||||||
SIGNUPS_ALLOWED=false # Desactiva registros públicos
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Para Traefik** necesitas también:
|
**Para Traefik** necesitas también:
|
||||||
@@ -69,6 +65,8 @@ SIGNUPS_ALLOWED=false # Desactiva registros públicos
|
|||||||
DOMAIN_HOST=vaultwarden.tudominio.com # Sin protocolo
|
DOMAIN_HOST=vaultwarden.tudominio.com # Sin protocolo
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Nota**: Otras opciones (DOMAIN, SIGNUPS_ALLOWED, SMTP, etc.) se configuran desde el panel de administración `/admin` después del despliegue.
|
||||||
|
|
||||||
## 📚 Recursos Adicionales
|
## 📚 Recursos Adicionales
|
||||||
|
|
||||||
- [README del repositorio](https://git.ictiberia.com/groales/vaultwarden)
|
- [README del repositorio](https://git.ictiberia.com/groales/vaultwarden)
|
||||||
|
|||||||
11
NPM.md
11
NPM.md
@@ -54,12 +54,10 @@ Esta opción mantiene tu stack actualizado con el repositorio Git.
|
|||||||
5. En **Environment variables**, añade:
|
5. En **Environment variables**, añade:
|
||||||
|
|
||||||
```env
|
```env
|
||||||
DOMAIN=https://vaultwarden.tudominio.com
|
|
||||||
ADMIN_TOKEN=tu_token_generado_anteriormente
|
ADMIN_TOKEN=tu_token_generado_anteriormente
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
```
|
||||||
|
|
||||||
⚠️ **Nota**: A diferencia de Traefik, aquí NO necesitas `DOMAIN_HOST` separado.
|
⚠️ **Nota**: Otras opciones (DOMAIN, registros, SMTP) se configuran desde el panel `/admin`.
|
||||||
|
|
||||||
6. Haz clic en **Deploy the stack**
|
6. Haz clic en **Deploy the stack**
|
||||||
|
|
||||||
@@ -79,12 +77,7 @@ services:
|
|||||||
image: vaultwarden/server:latest
|
image: vaultwarden/server:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
DOMAIN: ${DOMAIN}
|
|
||||||
SIGNUPS_ALLOWED: ${SIGNUPS_ALLOWED:-false}
|
|
||||||
ADMIN_TOKEN: ${ADMIN_TOKEN}
|
ADMIN_TOKEN: ${ADMIN_TOKEN}
|
||||||
WEBSOCKET_ENABLED: true
|
|
||||||
LOG_FILE: /data/vaultwarden.log
|
|
||||||
LOG_LEVEL: warn
|
|
||||||
TZ: Europe/Madrid
|
TZ: Europe/Madrid
|
||||||
volumes:
|
volumes:
|
||||||
- vaultwarden_data:/data
|
- vaultwarden_data:/data
|
||||||
@@ -124,9 +117,7 @@ cp docker-compose.override.npm.yml.example docker-compose.override.yml
|
|||||||
Crea un archivo `.env` con el siguiente contenido:
|
Crea un archivo `.env` con el siguiente contenido:
|
||||||
|
|
||||||
```env
|
```env
|
||||||
DOMAIN=https://vaultwarden.tudominio.com
|
|
||||||
ADMIN_TOKEN=tu_token_generado_anteriormente
|
ADMIN_TOKEN=tu_token_generado_anteriormente
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Iniciar el servicio
|
### 4. Iniciar el servicio
|
||||||
|
|||||||
@@ -382,53 +382,28 @@ WEBSOCKET_PORT=3012
|
|||||||
```
|
```
|
||||||
|
|
||||||
Si cambias esto, actualiza también:
|
Si cambias esto, actualiza también:
|
||||||
- Labels de Traefik
|
- Labels de Traefik (loadbalancer.server.port)
|
||||||
- Configuración de NPM
|
- Configuración de NPM
|
||||||
- Puerto publicado en Standalone
|
|
||||||
|
|
||||||
## 📝 Ejemplo de Configuración Completa
|
## 📝 Ejemplo de Configuración
|
||||||
|
|
||||||
Un archivo `.env` típico para producción:
|
Un archivo `.env` mínimo para producción:
|
||||||
|
|
||||||
```env
|
```env
|
||||||
# Dominio
|
# Obligatorio
|
||||||
DOMAIN=https://vaultwarden.empresa.com
|
|
||||||
DOMAIN_HOST=vaultwarden.empresa.com
|
|
||||||
|
|
||||||
# Seguridad
|
|
||||||
ADMIN_TOKEN=token_generado_con_openssl_rand_base64_48
|
ADMIN_TOKEN=token_generado_con_openssl_rand_base64_48
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
INVITATIONS_ALLOWED=true
|
|
||||||
SIGNUPS_VERIFY=true
|
|
||||||
|
|
||||||
# SMTP
|
# Para Traefik
|
||||||
SMTP_HOST=smtp.office365.com
|
DOMAIN_HOST=vaultwarden.empresa.com
|
||||||
SMTP_FROM=noreply@empresa.com
|
|
||||||
SMTP_PORT=587
|
|
||||||
SMTP_SECURITY=starttls
|
|
||||||
SMTP_USERNAME=noreply@empresa.com
|
|
||||||
SMTP_PASSWORD=password_seguro
|
|
||||||
|
|
||||||
# Límites
|
|
||||||
USER_LIMIT=100
|
|
||||||
ATTACHMENT_LIMIT=10240
|
|
||||||
USER_ATTACHMENT_LIMIT=102400
|
|
||||||
|
|
||||||
# Restricciones
|
|
||||||
SIGNUPS_DOMAINS_WHITELIST=empresa.com
|
|
||||||
ORG_CREATION_USERS=admin@empresa.com
|
|
||||||
|
|
||||||
# Personalización
|
|
||||||
ORG_NAME=Empresa S.L.
|
|
||||||
|
|
||||||
# Sistema
|
|
||||||
TZ=Europe/Madrid
|
|
||||||
LOG_LEVEL=warn
|
|
||||||
|
|
||||||
# WebSocket
|
|
||||||
WEBSOCKET_ENABLED=true
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Nota**: El resto de opciones (SMTP, límites, restricciones, etc.) se configuran desde el panel de administración `/admin` después del despliegue. Esto permite:
|
||||||
|
- ✅ Cambios sin redesplegar contenedores
|
||||||
|
- ✅ Configuración más intuitiva desde GUI
|
||||||
|
- ✅ Menos variables de entorno que gestionar
|
||||||
|
|
||||||
|
Para opciones avanzadas que SÍ requieren variables de entorno, consulta las secciones específicas de esta página.
|
||||||
|
|
||||||
## 🔄 Aplicar Cambios
|
## 🔄 Aplicar Cambios
|
||||||
|
|
||||||
Después de cambiar variables de entorno:
|
Después de cambiar variables de entorno:
|
||||||
|
|||||||
@@ -63,9 +63,8 @@ ADMIN_TOKEN=tu_token_aqui
|
|||||||
# Identificar qué usa el puerto (ej: 8080)
|
# Identificar qué usa el puerto (ej: 8080)
|
||||||
netstat -tuln | grep 8080
|
netstat -tuln | grep 8080
|
||||||
|
|
||||||
# Cambiar puerto en override standalone
|
# Si necesitas cambiar puertos, usa Traefik o NPM
|
||||||
ports:
|
# Vaultwarden no expone puertos directamente
|
||||||
- "8081:80" # Usa 8081 en lugar de 8080
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3. Volumen Corrupto
|
#### 3. Volumen Corrupto
|
||||||
@@ -290,23 +289,6 @@ Si falta:
|
|||||||
|
|
||||||
**Problema más común**: WebSocket Support no activado
|
**Problema más común**: WebSocket Support no activado
|
||||||
|
|
||||||
**Solución**:
|
|
||||||
1. NPM → **Proxy Hosts**
|
|
||||||
2. Editar proxy de Vaultwarden
|
|
||||||
3. **Advanced** → ✅ Activar **Websockets Support**
|
|
||||||
4. Save
|
|
||||||
|
|
||||||
#### Con Standalone
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Verificar que puerto 3012 está expuesto
|
|
||||||
docker compose port vaultwarden 3012
|
|
||||||
|
|
||||||
# Si no responde, verificar override
|
|
||||||
cat docker-compose.override.yml
|
|
||||||
# Debe incluir: "3012:3012"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Probar WebSocket
|
### Probar WebSocket
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
402
Standalone.md
402
Standalone.md
@@ -1,402 +0,0 @@
|
|||||||
# Despliegue Standalone
|
|
||||||
|
|
||||||
Esta guía explica cómo desplegar Vaultwarden **sin reverse proxy**, accediendo directamente mediante IP y puerto.
|
|
||||||
|
|
||||||
## ⚠️ ADVERTENCIA IMPORTANTE
|
|
||||||
|
|
||||||
**NO RECOMENDADO PARA PRODUCCIÓN**
|
|
||||||
|
|
||||||
Vaultwarden en modo standalone tiene limitaciones críticas:
|
|
||||||
|
|
||||||
- ❌ **Sin HTTPS**: Los clientes de Bitwarden **requieren** HTTPS para funcionar correctamente
|
|
||||||
- ❌ **Sin certificados SSL**: Conexión no segura
|
|
||||||
- ❌ **Funcionalidad limitada**: Muchas características de los clientes no funcionarán
|
|
||||||
- ❌ **Solo para testing**: Usar únicamente para pruebas locales temporales
|
|
||||||
|
|
||||||
**Este modo solo es apropiado para**:
|
|
||||||
- ✅ Testing local en entorno de desarrollo
|
|
||||||
- ✅ Pruebas de concepto antes de configurar proxy
|
|
||||||
- ✅ Debugging de problemas
|
|
||||||
|
|
||||||
Para producción, usa **[Traefik](Traefik)** o **[NPM](NPM)**.
|
|
||||||
|
|
||||||
## 📋 Requisitos Previos
|
|
||||||
|
|
||||||
- ✅ Docker Engine instalado
|
|
||||||
- ✅ Portainer (opcional, recomendado)
|
|
||||||
- ✅ ADMIN_TOKEN generado
|
|
||||||
- ✅ Puertos 8080 y 3012 disponibles
|
|
||||||
|
|
||||||
### Generar ADMIN_TOKEN
|
|
||||||
|
|
||||||
```bash
|
|
||||||
openssl rand -base64 48
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🚀 Despliegue desde Portainer
|
|
||||||
|
|
||||||
### Opción A: Git Repository
|
|
||||||
|
|
||||||
1. En Portainer, ve a **Stacks** → **Add stack**
|
|
||||||
2. Nombre del stack: `vaultwarden`
|
|
||||||
3. Selecciona **Git Repository**
|
|
||||||
4. Configura el repositorio:
|
|
||||||
- **Repository URL**: `https://git.ictiberia.com/groales/vaultwarden`
|
|
||||||
- **Repository reference**: `refs/heads/main`
|
|
||||||
- **Compose path**: `docker-compose.yml`
|
|
||||||
- **Additional paths**: `docker-compose.override.standalone.yml.example`
|
|
||||||
|
|
||||||
5. En **Environment variables**, añade:
|
|
||||||
|
|
||||||
```env
|
|
||||||
DOMAIN=http://IP-DEL-SERVIDOR:8080
|
|
||||||
ADMIN_TOKEN=tu_token_generado_anteriormente
|
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
|
||||||
|
|
||||||
⚠️ **Importante**:
|
|
||||||
- Reemplaza `IP-DEL-SERVIDOR` con la IP real de tu servidor
|
|
||||||
- El `DOMAIN` debe incluir `http://` (no https)
|
|
||||||
- El puerto debe coincidir con el publicado (8080)
|
|
||||||
|
|
||||||
6. Haz clic en **Deploy the stack**
|
|
||||||
|
|
||||||
### Opción B: Web Editor
|
|
||||||
|
|
||||||
1. En Portainer, ve a **Stacks** → **Add stack**
|
|
||||||
2. Nombre del stack: `vaultwarden`
|
|
||||||
3. Selecciona **Web editor**
|
|
||||||
4. Copia y pega este contenido:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
vaultwarden:
|
|
||||||
container_name: vaultwarden
|
|
||||||
image: vaultwarden/server:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
DOMAIN: ${DOMAIN}
|
|
||||||
SIGNUPS_ALLOWED: ${SIGNUPS_ALLOWED:-false}
|
|
||||||
ADMIN_TOKEN: ${ADMIN_TOKEN}
|
|
||||||
WEBSOCKET_ENABLED: true
|
|
||||||
LOG_FILE: /data/vaultwarden.log
|
|
||||||
LOG_LEVEL: warn
|
|
||||||
TZ: Europe/Madrid
|
|
||||||
volumes:
|
|
||||||
- vaultwarden_data:/data
|
|
||||||
ports:
|
|
||||||
- "8080:80"
|
|
||||||
- "3012:3012"
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
vaultwarden_data:
|
|
||||||
driver: local
|
|
||||||
```
|
|
||||||
|
|
||||||
5. En **Environment variables**, añade:
|
|
||||||
|
|
||||||
```env
|
|
||||||
DOMAIN=http://IP-DEL-SERVIDOR:8080
|
|
||||||
ADMIN_TOKEN=tu_token_generado_anteriormente
|
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
|
||||||
|
|
||||||
6. Haz clic en **Deploy the stack**
|
|
||||||
|
|
||||||
## 🖥️ Despliegue desde CLI
|
|
||||||
|
|
||||||
### 1. Clonar el repositorio
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://git.ictiberia.com/groales/vaultwarden.git
|
|
||||||
cd vaultwarden
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Copiar el archivo override
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cp docker-compose.override.standalone.yml.example docker-compose.override.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Crear archivo .env
|
|
||||||
|
|
||||||
Crea un archivo `.env` con el siguiente contenido:
|
|
||||||
|
|
||||||
```env
|
|
||||||
DOMAIN=http://192.168.1.100:8080 # Cambia por tu IP
|
|
||||||
ADMIN_TOKEN=tu_token_generado_anteriormente
|
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Iniciar el servicio
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
### 5. Verificar el despliegue
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Ver logs
|
|
||||||
docker compose logs -f vaultwarden
|
|
||||||
|
|
||||||
# Verificar que el contenedor está corriendo
|
|
||||||
docker compose ps
|
|
||||||
|
|
||||||
# Verificar puertos expuestos
|
|
||||||
docker compose port vaultwarden 80
|
|
||||||
docker compose port vaultwarden 3012
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔌 Puertos Expuestos
|
|
||||||
|
|
||||||
El modo standalone expone dos puertos:
|
|
||||||
|
|
||||||
| Puerto Host | Puerto Contenedor | Propósito |
|
|
||||||
|-------------|-------------------|-----------|
|
|
||||||
| **8080** | 80 | Interfaz web HTTP principal |
|
|
||||||
| **3012** | 3012 | WebSocket para sincronización en tiempo real |
|
|
||||||
|
|
||||||
### Verificar Puertos
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Ver puertos en uso
|
|
||||||
netstat -tuln | grep -E '8080|3012'
|
|
||||||
|
|
||||||
# Desde otro equipo en la red
|
|
||||||
curl http://IP-DEL-SERVIDOR:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
## ✅ Verificación del Despliegue
|
|
||||||
|
|
||||||
### 1. Verificar Acceso Web
|
|
||||||
|
|
||||||
Abre tu navegador y ve a: `http://IP-DEL-SERVIDOR:8080`
|
|
||||||
|
|
||||||
⚠️ **Esperado**: El navegador mostrará advertencia de "conexión no segura". Es normal en modo standalone.
|
|
||||||
|
|
||||||
### 2. Verificar WebSocket
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker compose logs vaultwarden | grep -i websocket
|
|
||||||
```
|
|
||||||
|
|
||||||
Deberías ver:
|
|
||||||
```
|
|
||||||
[INFO] WebSocket server listening on 0.0.0.0:3012
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Verificar Panel de Administración
|
|
||||||
|
|
||||||
Ve a: `http://IP-DEL-SERVIDOR:8080/admin`
|
|
||||||
|
|
||||||
Introduce tu `ADMIN_TOKEN`. Si puedes acceder, la configuración básica es correcta.
|
|
||||||
|
|
||||||
### 4. Verificar Conectividad de Red
|
|
||||||
|
|
||||||
Desde otro dispositivo en la misma red:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Ping al servidor
|
|
||||||
ping IP-DEL-SERVIDOR
|
|
||||||
|
|
||||||
# Probar acceso HTTP
|
|
||||||
curl http://IP-DEL-SERVIDOR:8080
|
|
||||||
|
|
||||||
# Verificar puerto WebSocket
|
|
||||||
nc -zv IP-DEL-SERVIDOR 3012
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🛠️ Configuración de Clientes
|
|
||||||
|
|
||||||
### Configurar Cliente de Bitwarden
|
|
||||||
|
|
||||||
⚠️ **LIMITACIÓN**: Muchos clientes de Bitwarden **no funcionarán** correctamente sin HTTPS.
|
|
||||||
|
|
||||||
#### Extensión de Navegador (Limitado)
|
|
||||||
|
|
||||||
Algunas versiones antiguas pueden funcionar:
|
|
||||||
|
|
||||||
1. Abre la extensión de Bitwarden
|
|
||||||
2. Haz clic en ⚙️ (configuración)
|
|
||||||
3. En **Server URL** introduce: `http://IP-DEL-SERVIDOR:8080`
|
|
||||||
4. Intenta iniciar sesión
|
|
||||||
|
|
||||||
**Resultado esperado**: Muchas versiones modernas **rechazarán** la conexión HTTP.
|
|
||||||
|
|
||||||
#### CLI de Bitwarden
|
|
||||||
|
|
||||||
La CLI es más permisiva con HTTP:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Instalar CLI
|
|
||||||
npm install -g @bitwarden/cli
|
|
||||||
|
|
||||||
# Configurar servidor
|
|
||||||
bw config server http://IP-DEL-SERVIDOR:8080
|
|
||||||
|
|
||||||
# Login (puede requerir --nointeraction)
|
|
||||||
bw login usuario@email.com
|
|
||||||
```
|
|
||||||
|
|
||||||
#### App Móvil
|
|
||||||
|
|
||||||
⚠️ Las apps móviles de Bitwarden **requieren HTTPS**. No funcionarán en modo standalone.
|
|
||||||
|
|
||||||
## 🔧 Configuración Avanzada
|
|
||||||
|
|
||||||
### Cambiar Puerto HTTP
|
|
||||||
|
|
||||||
Si el puerto 8080 está ocupado, cámbialo en el override:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
ports:
|
|
||||||
- "9090:80" # Cambia 9090 por el puerto que prefieras
|
|
||||||
- "3012:3012"
|
|
||||||
```
|
|
||||||
|
|
||||||
Y actualiza la variable `DOMAIN`:
|
|
||||||
```env
|
|
||||||
DOMAIN=http://IP-DEL-SERVIDOR:9090
|
|
||||||
```
|
|
||||||
|
|
||||||
### Acceso desde Internet (NO RECOMENDADO)
|
|
||||||
|
|
||||||
Si **absolutamente** necesitas exponer Vaultwarden sin proxy:
|
|
||||||
|
|
||||||
1. **NO LO HAGAS** en producción
|
|
||||||
2. Si insistes, abre los puertos en el router:
|
|
||||||
- Puerto 8080 → IP-DEL-SERVIDOR:8080
|
|
||||||
- Puerto 3012 → IP-DEL-SERVIDOR:3012
|
|
||||||
3. Usa tu IP pública en `DOMAIN`
|
|
||||||
4. **Ten en cuenta**: Tus contraseñas viajarán sin cifrar por internet
|
|
||||||
|
|
||||||
**Mejor solución**: Configura [Traefik](Traefik) o [NPM](NPM) con Let's Encrypt.
|
|
||||||
|
|
||||||
### Logs Detallados para Debugging
|
|
||||||
|
|
||||||
Si necesitas logs más verbosos:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
environment:
|
|
||||||
LOG_LEVEL: debug # Cambia de 'warn' a 'debug'
|
|
||||||
```
|
|
||||||
|
|
||||||
Luego:
|
|
||||||
```bash
|
|
||||||
docker compose up -d
|
|
||||||
docker compose logs -f vaultwarden
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🔄 Migración a Modo Proxy
|
|
||||||
|
|
||||||
Cuando estés listo para producción, migra fácilmente:
|
|
||||||
|
|
||||||
### 1. Detener el Stack
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker compose down
|
|
||||||
# NO uses -v, queremos conservar los datos
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Cambiar al Override de Traefik o NPM
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Para Traefik
|
|
||||||
cp docker-compose.override.traefik.yml.example docker-compose.override.yml
|
|
||||||
|
|
||||||
# Para NPM
|
|
||||||
cp docker-compose.override.npm.yml.example docker-compose.override.yml
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Actualizar Variables de Entorno
|
|
||||||
|
|
||||||
Edita `.env`:
|
|
||||||
|
|
||||||
**Para Traefik**:
|
|
||||||
```env
|
|
||||||
DOMAIN=https://vaultwarden.tudominio.com
|
|
||||||
DOMAIN_HOST=vaultwarden.tudominio.com
|
|
||||||
ADMIN_TOKEN=tu_token_existente
|
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
|
||||||
|
|
||||||
**Para NPM**:
|
|
||||||
```env
|
|
||||||
DOMAIN=https://vaultwarden.tudominio.com
|
|
||||||
ADMIN_TOKEN=tu_token_existente
|
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Redesplegar
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
**Resultado**: Tus datos (contraseñas, usuarios, configuración) se conservan automáticamente gracias al volumen `vaultwarden_data`.
|
|
||||||
|
|
||||||
## 📖 Siguientes Pasos
|
|
||||||
|
|
||||||
Una vez que has probado Vaultwarden en modo standalone:
|
|
||||||
|
|
||||||
1. **Migra a un proxy**: [Traefik](Traefik) o [NPM](NPM)
|
|
||||||
2. Configura tu dominio con DNS
|
|
||||||
3. Habilita HTTPS con Let's Encrypt
|
|
||||||
4. Lee **[Configuración Inicial](Configuración-Inicial)** para el setup del admin
|
|
||||||
5. Configura **[Backup y Restauración](Backup-y-Restauración)** (crítico)
|
|
||||||
|
|
||||||
## 🆘 Solución de Problemas
|
|
||||||
|
|
||||||
### No puedo acceder desde otro equipo
|
|
||||||
|
|
||||||
**Síntoma**: `http://IP:8080` no responde desde otro PC
|
|
||||||
|
|
||||||
**Solución**:
|
|
||||||
1. Verifica el firewall del servidor:
|
|
||||||
```bash
|
|
||||||
# Windows
|
|
||||||
netsh advfirewall firewall add rule name="Vaultwarden" dir=in action=allow protocol=TCP localport=8080,3012
|
|
||||||
|
|
||||||
# Linux
|
|
||||||
sudo ufw allow 8080/tcp
|
|
||||||
sudo ufw allow 3012/tcp
|
|
||||||
```
|
|
||||||
2. Comprueba que el contenedor escucha en 0.0.0.0, no en 127.0.0.1
|
|
||||||
3. Verifica que usas la IP correcta (no localhost)
|
|
||||||
|
|
||||||
### Los clientes no se conectan
|
|
||||||
|
|
||||||
**Síntoma**: Error en app o extensión de Bitwarden
|
|
||||||
|
|
||||||
**Esperado**: Es normal, la mayoría de clientes **requieren HTTPS**.
|
|
||||||
|
|
||||||
**Solución**: Migra a [Traefik](Traefik) o [NPM](NPM).
|
|
||||||
|
|
||||||
### WebSocket no funciona
|
|
||||||
|
|
||||||
**Síntoma**: Sincronización muy lenta
|
|
||||||
|
|
||||||
**Solución**:
|
|
||||||
1. Verifica puerto 3012: `netstat -tuln | grep 3012`
|
|
||||||
2. Revisa logs: `docker compose logs vaultwarden | grep websocket`
|
|
||||||
3. Prueba conectividad: `nc -zv IP-DEL-SERVIDOR 3012`
|
|
||||||
|
|
||||||
### Puerto 8080 ya en uso
|
|
||||||
|
|
||||||
**Síntoma**: Error al iniciar el contenedor
|
|
||||||
|
|
||||||
**Solución**:
|
|
||||||
1. Identifica qué usa el puerto:
|
|
||||||
```bash
|
|
||||||
# Windows
|
|
||||||
netstat -ano | findstr :8080
|
|
||||||
|
|
||||||
# Linux
|
|
||||||
sudo lsof -i :8080
|
|
||||||
```
|
|
||||||
2. Cambia el puerto en el override como se explicó arriba
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Última actualización**: Diciembre 2025
|
|
||||||
13
Traefik.md
13
Traefik.md
@@ -58,16 +58,14 @@ Esta opción mantiene tu stack actualizado con el repositorio Git.
|
|||||||
5. En **Environment variables**, añade:
|
5. En **Environment variables**, añade:
|
||||||
|
|
||||||
```env
|
```env
|
||||||
DOMAIN=https://vaultwarden.tudominio.com
|
|
||||||
DOMAIN_HOST=vaultwarden.tudominio.com
|
DOMAIN_HOST=vaultwarden.tudominio.com
|
||||||
ADMIN_TOKEN=tu_token_generado_anteriormente
|
ADMIN_TOKEN=tu_token_generado_anteriormente
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
```
|
||||||
|
|
||||||
⚠️ **Importante**:
|
⚠️ **Importante**:
|
||||||
- `DOMAIN` incluye el protocolo (`https://`)
|
- `DOMAIN_HOST` es el dominio sin protocolo
|
||||||
- `DOMAIN_HOST` es solo el dominio sin protocolo
|
|
||||||
- Reemplaza `vaultwarden.tudominio.com` con tu dominio real
|
- Reemplaza `vaultwarden.tudominio.com` con tu dominio real
|
||||||
|
- Otras opciones se configuran desde el panel `/admin`
|
||||||
|
|
||||||
6. Haz clic en **Deploy the stack**
|
6. Haz clic en **Deploy the stack**
|
||||||
|
|
||||||
@@ -87,12 +85,7 @@ services:
|
|||||||
image: vaultwarden/server:latest
|
image: vaultwarden/server:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
DOMAIN: ${DOMAIN}
|
|
||||||
SIGNUPS_ALLOWED: ${SIGNUPS_ALLOWED:-false}
|
|
||||||
ADMIN_TOKEN: ${ADMIN_TOKEN}
|
ADMIN_TOKEN: ${ADMIN_TOKEN}
|
||||||
WEBSOCKET_ENABLED: true
|
|
||||||
LOG_FILE: /data/vaultwarden.log
|
|
||||||
LOG_LEVEL: warn
|
|
||||||
TZ: Europe/Madrid
|
TZ: Europe/Madrid
|
||||||
volumes:
|
volumes:
|
||||||
- vaultwarden_data:/data
|
- vaultwarden_data:/data
|
||||||
@@ -158,10 +151,8 @@ cp docker-compose.override.traefik.yml.example docker-compose.override.yml
|
|||||||
Crea un archivo `.env` con el siguiente contenido:
|
Crea un archivo `.env` con el siguiente contenido:
|
||||||
|
|
||||||
```env
|
```env
|
||||||
DOMAIN=https://vaultwarden.tudominio.com
|
|
||||||
DOMAIN_HOST=vaultwarden.tudominio.com
|
DOMAIN_HOST=vaultwarden.tudominio.com
|
||||||
ADMIN_TOKEN=tu_token_generado_anteriormente
|
ADMIN_TOKEN=tu_token_generado_anteriormente
|
||||||
SIGNUPS_ALLOWED=false
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Iniciar el servicio
|
### 4. Iniciar el servicio
|
||||||
|
|||||||
Reference in New Issue
Block a user