
Outil de sauvegarde automatisé du coffre Bitwarden avec chiffrement AES-256, dérivation de clé Argon2, support de téléchargement multi-cloud et notifications en temps réel via Discord, Telegram et Slack.
Lazywarden est un outil d'automatisation Python conçu pour sauvegarder et restaurer les données de votre coffre, y compris les pièces jointes Bitwarden. Il vous permet de télécharger les sauvegardes vers plusieurs services de stockage cloud et de recevoir des notifications via plusieurs plateformes. Il offre également des sauvegardes chiffrées AES et utilise une dérivation de clé avec Argon2, garantissant une sécurité maximale pour vos données.
Fonctionnalités
Compatibilité des plateformes

Configuration système requise Système d'exploitation : Compatible avec les principales distributions Linux
Installation git clone https://github.com/querylab/lazywarden.git
cd lazywarden
.env basé sur l'exemple .env.sample et remplissez les variables nécessaires.#---------------------------------------------------------------------------------------
# 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, qui installera toutes les dépendances CLI :python3 scripts/bitwarden-cli-install.py
Region/City par le fuseau horaire souhaité (par exemple, America/New_York) :timedatectl set-timezone Region/City
America/New_York, vous exécuteriez :timedatectl set-timezone America/New_York
app/ et exécutez main.py :cd app
python3 main.py
main.py, cela peut être dû à des bibliothèques manquantes ou obsolètes. Pour résoudre ce problème, je recommande d'exécuter la commande suivante pour installer toutes les dépendances nécessaires : 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, qui installera toutes les dépendances CLI :python3 scripts/bitwarden-cli-install.py
Region/City par le fuseau horaire souhaité (par exemple, America/New_York) :timedatectl set-timezone Region/City
America/New_York, vous exécuteriez :timedatectl set-timezone America/New_York
app/ et exécutez main.py :cd app
python3 main.py
main.py, cela peut être dû à des bibliothèques manquantes ou obsolètes. Pour résoudre ce problème, je recommande d'exécuter la commande suivante pour installer toutes les dépendances nécessaires : pip install -r requirements.txt
lazywarden/
├── app/ # This directory to contain the main application code
│ ├── backup.py # Backup functions
│ ├── bitwarden_client.py # Client to interact with Bitwarden
│ ├── config.py # General application configurations
│ ├── imports.py # Handles common imports
│ ├── main.py # Main entry point of the application
│ ├── notifications.py # Handles notifications
│ ├── secrets_manager.py # Manages secrets
│ ├── import_to_bitwarden.py # Import your bitwarden vault
│ ├── import_to_keepass.py # Create kdbx database
│ ├── schedule_backup.py # For create Schedule Backup
├── config/ # Directory for configuration files
│ ├── bitwarden-drive-backup-google.json # Configuration for Google Drive
├── scripts/ # Directory for installation and setup scripts
│ ├── bitwarden-cli-install.py # Script to install the Bitwarden CLI
│ ├── docker-debian.sh # Setup script for Debian with Docker
│ ├── docker-ubuntu.sh # Setup script for Ubuntu with Docker
│ ├── setup-debian-env.sh # Environment setup for Debian
│ ├── setup-ubuntu-env.sh # Environment setup for Ubuntu
│ ├── alldecrypt-zip.py # Decrypt all zip files
│ ├── json-only-decrypt.py # Decrypt only json files (optional)
├── backup-drive/
│ ├── (This is where the generated backups will be stored local)
├── .env # File for environment variables
├── Dockerfile # Docker configuration file to create an application image
├── docker-compose.yml # Docker Compose Configuration
├── entrypoint.sh # Entrypoint script for Docker
└── requirements.txt # File that lists the project Python dependencies
Le conteneur Docker exécutera le script main.py toutes les 24 heures pour sauvegarder Bitwarden et la téléverser vers les services cloud configurés. Des notifications seront envoyées aux services spécifiés en cas de succès ou d'échec. Vous pouvez modifier la fréquence de sauvegarde selon vos besoins, par exemple mensuelle, quotidienne ou horaire.
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 configure l'environnement, installe les dépendances et copie les fichiers nécessaires dans le conteneur.docker-compose.yml définit le service lazywarden et configure les variables d'environnement et les volumes pour un stockage persistant.bw logout avant de vous connecter à un nouveau compte.J'ai créé Lazywarden pour automatiser les sauvegardes Bitwarden sans effort manuel ni exposition de données sensibles. Après avoir lutté avec des outils complexes, j'ai utilisé Bitwarden Secret Manager pour gérer les secrets en toute sécurité. Lazywarden automatise les sauvegardes et les téléverse vers plusieurs services cloud (Google Drive, Dropbox, pCloud, MEGA, Seafile, Nextcloud, Filebase, Storj, Cloudflare R2, Backblaze B2), et s'intègre avec Telegram, Discord, Ntfy, Slack, Todoist, Vikunja et CalDAV pour les notifications et le suivi. Sa fonctionnalité phare est la capacité de restaurer les sauvegardes chiffrées dans Bitwarden, rendant la gestion des sauvegardes simple, sécurisée et efficace.
Si vous aimez ce projet, pensez à lui donner une ⭐