
Herramienta automatizada de respaldo de bóveda de Bitwarden con cifrado AES-256, derivación de clave Argon2, soporte de carga multinube y notificaciones en tiempo real a través de Discord, Telegram y Slack.
Lazywarden es una herramienta de automatización en Python diseñada para hacer copias de seguridad y restaurar datos de tu bóveda, incluidos los archivos adjuntos de Bitwarden. Te permite subir las copias de seguridad a múltiples servicios de almacenamiento en la nube y recibir notificaciones en varias plataformas. También ofrece copias de seguridad cifradas con AES y utiliza derivación de clave con Argon2, garantizando la máxima seguridad para tus datos.
Características
Compatibilidad de Plataformas

Requisitos del Sistema Sistema Operativo: Compatible con las principales distribuciones de Linux
Instalación git clone https://github.com/querylab/lazywarden.git
cd lazywarden
.env basado en el archivo de ejemplo .env.sample y completa las variables necesarias.#---------------------------------------------------------------------------------------
# These are the 6 variables that are mandatory requirements for Bitwarden Secret Manager
BW_URL=f22bba66-e55d-1111-9a93-abf0dfad069e
BW_USERNAME=5eb0f2bb-1111-4e42-94f8-9333fda803cf
BW_PASSWORD=ba4dc990-1111-4d18-ae6b-0b899d513759
ENCRYPTION_PASSWORD=103c803c-1111-40d4-8578-8b3134c6e93e
ZIP_PASSWORD=2f9fb3a2-96a3-1111-990d-5d6399153e11
ZIP_ATTACHMENT_PASSWORD=b2abc553-1111-4b49-9172-1a94f9072715
#---------------------------------------------------------------------------------------
# TOTP Seed for Aegis,Authy,Ente,GoogleAuth (Optional)
BW_TOTP_SECRET=
# pCloud Credentials (Optional)
PCLOUD_USERNAME=
PCLOUD_PASSWORD=
# Mega Credentials (Optional)
MEGA_EMAIL=
MEGA_PASSWORD=
# Dropbox Credentials (Optional)
DROPBOX_ACCESS_TOKEN=
DROPBOX_REFRESH_TOKEN=
DROPBOX_APP_KEY=
DROPBOX_APP_SECRET=
# Todoist Credentials (Optional)
TODOIST_TOKEN=
# CalDAV Credentials (Optional)
CALDAV_URL=
CALDAV_USERNAME=
CALDAV_PASSWORD=
# Nextcloud Credentials (Optional)
NEXTCLOUD_URL=
NEXTCLOUD_USERNAME=
NEXTCLOUD_PASSWORD=
# Seafile Credentials (Optional)
SEAFILE_SERVER_URL=
SEAFILE_USERNAME=
SEAFILE_PASSWORD=
# Filebase Credentials (Optional)
FILEBASE_ACCESS_KEY=
FILEBASE_SECRET_KEY=
# KeePass Password (Optional)
KEEPASS_PASSWORD=
# Storj Credentials (Optional)
STORJ_ACCESS_KEY=
STORJ_SECRET_KEY=
STORJ_ENDPOINT=
# R2 Credentials (Optional)
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_ENDPOINT_URL=
# Vikunja Credentials (Optional)
VIKUNJA_API_TOKEN=
VIKUNJA_URL=
# Backblaze B2 Credentials (Optional)
B2_APP_KEY_ID=
B2_APP_KEY=
# Google Drive Settings
GOOGLE_SERVICE_ACCOUNT_FILE=/root/lazywarden/config/bitwarden-drive-backup-google.json
GOOGLE_FOLDER_ID=
# Backup Settings
BACKUP_DIR=/root/lazywarden/backup-drive/
CRON_SCHEDULE="0 0 23 * *"
TIMEZONE=America/New_York
TIMESTAMP=2024_10_31_13_03_29
# API URLs for Bitwarden
API_URL=https://vault.bitwarden.com/api
IDENTITY_URL=https://vault.bitwarden.com/identity
# Organization ID
ORGANIZATION_ID=
# Access Token for Bitwarden Authentication
ACCESS_TOKEN=
# Notifications and Alerts (Optional)
TELEGRAM_TOKEN=
TELEGRAM_CHAT_ID=
DISCORD_WEBHOOK_URL=
SLACK_WEBHOOK_URL=
NTFY_URL=
# SMTP Configuration for Email Notifications (Optional)
SMTP_SERVER=mail.smtp2go.com
SMTP_PORT=8025
SMTP_USERNAME=
SMTP_PASSWORD=
EMAIL_RECIPIENT=
SENDER_EMAIL=
cd lazywarden/scripts
chmod +x setup-ubuntu-env.sh
./setup-ubuntu-env.sh
chmod +x docker-ubuntu.sh
./docker-ubuntu.sh
lazywarden/:cd ..
source venv/bin/activate
bitwarden-cli-install.py, que instalará todas las dependencias de CLI:python3 scripts/bitwarden-cli-install.py
Region/City con la zona horaria deseada (por ejemplo, America/New_York):timedatectl set-timezone Region/City
America/New_York, ejecuta:timedatectl set-timezone America/New_York
app/ y ejecuta main.py:cd app
python3 main.py
main.py, puede deberse a bibliotecas faltantes o desactualizadas. Para solucionarlo, te recomiendo ejecutar el siguiente comando para instalar todas las dependencias necesarias: pip install -r requirements.txt
cd lazywarden/scripts
chmod +x setup-debian-env.sh
./setup-debian-env.sh
chmod +x docker-debian.sh
./docker-debian.sh
lazywarden/:cd ..
source venv/bin/activate
bitwarden-cli-install.py, que instalará todas las dependencias de CLI:python3 scripts/bitwarden-cli-install.py
Region/City con la zona horaria deseada (por ejemplo, America/New_York):timedatectl set-timezone Region/City
America/New_York, ejecuta:timedatectl set-timezone America/New_York
app/ y ejecuta main.py:cd app
python3 main.py
main.py, puede deberse a bibliotecas faltantes o desactualizadas. Para solucionarlo, te recomiendo ejecutar el siguiente comando para instalar todas las dependencias necesarias: pip install -r requirements.txt
lazywarden/
├── app/ # Este directorio contiene el código principal de la aplicación
│ ├── backup.py # Funciones de respaldo
│ ├── bitwarden_client.py # Cliente para interactuar con Bitwarden
│ ├── config.py # Configuraciones generales de la aplicación
│ ├── imports.py # Maneja importaciones comunes
│ ├── main.py # Punto de entrada principal de la aplicación
│ ├── notifications.py # Maneja notificaciones
│ ├── secrets_manager.py # Gestiona secretos
│ ├── import_to_bitwarden.py # Importa tu bóveda de Bitwarden
│ ├── import_to_keepass.py # Crea base de datos kdbx
│ ├── schedule_backup.py # Para crear respaldo programado
├── config/ # Directorio para archivos de configuración
│ ├── bitwarden-drive-backup-google.json # Configuración para Google Drive
├── scripts/ # Directorio para scripts de instalación y configuración
│ ├── bitwarden-cli-install.py # Script para instalar Bitwarden CLI
│ ├── docker-debian.sh # Script de configuración para Debian con Docker
│ ├── docker-ubuntu.sh # Script de configuración para Ubuntu con Docker
│ ├── setup-debian-env.sh # Configuración de entorno para Debian
│ ├── setup-ubuntu-env.sh # Configuración de entorno para Ubuntu
│ ├── alldecrypt-zip.py # Descifra todos los archivos zip
│ ├── json-only-decrypt.py # Descifra solo archivos json (opcional)
├── backup-drive/
│ ├── (Aquí se almacenarán localmente las copias de seguridad generadas)
├── .env # Archivo para variables de entorno
├── Dockerfile # Archivo de configuración de Docker para crear una imagen de la aplicación
├── docker-compose.yml # Configuración de Docker Compose
├── entrypoint.sh # Script de entrada para Docker
└── requirements.txt # Archivo que lista las dependencias de Python del proyecto
El contenedor Docker ejecutará el script main.py cada 24 horas para hacer una copia de seguridad de Bitwarden y subirla a los servicios en la nube configurados. Se enviarán notificaciones a los servicios especificados en caso de éxito o fallo. Puedes modificar la frecuencia de las copias de seguridad según tus necesidades, como mensual, diaria o cada hora.
services:
lazywarden:
container_name: lazywarden
hostname: lazywarden
image: querylab/lazywarden:latest
env_file:
- .env
environment:
UNLOCK_VAULT: "true"
volumes:
- /root/lazywarden/config:/root/lazywarden/config
- /root/lazywarden/backup-drive:/root/lazywarden/backup-drive/
- /root/lazywarden/.env:/app/.env
restart: unless-stopped
docker compose up -d
Dockerfile configura el entorno, instala las dependencias y copia los archivos necesarios dentro del contenedor.docker-compose.yml define el servicio lazywarden y configura las variables de entorno y los volúmenes para almacenamiento persistente.bw logout antes de iniciar sesión en una cuenta nueva.Creé Lazywarden para automatizar las copias de seguridad de Bitwarden sin esfuerzo manual ni exponer datos sensibles. Después de tener dificultades con herramientas complejas, aproveché Bitwarden Secret Manager para gestionar los secretos de forma segura. Lazywarden automatiza las copias de seguridad y las sube a múltiples servicios en la nube (Google Drive, Dropbox, pCloud, MEGA, Seafile, Nextcloud, Filebase, Storj, Cloudflare R2, Backblaze B2), y se integra con Telegram, Discord, Ntfy, Slack, Todoist, Vikunja y CalDAV para notificaciones y seguimiento. Su característica destacada es la capacidad de restaurar copias de seguridad cifradas de vuelta a Bitwarden, haciendo que la gestión de respaldos sea simple, segura y eficiente.
Si te gusta este proyecto, considera darle una estrella ⭐