
Automatisiertes Bitwarden-Vault-Backup-Tool mit AES-256-Verschlüsselung, Argon2-Schlüsselableitung, Multi-Cloud-Upload-Unterstützung und Echtzeit-Benachrichtigungen über Discord, Telegram und Slack.
Lazywarden ist ein Python-Automatisierungstool, das entwickelt wurde, um Daten aus Ihrem Tresor zu sichern und wiederherzustellen, einschließlich Bitwarden-Anhängen. Es ermöglicht Ihnen, Backups auf mehrere Cloud-Speicherdienste hochzuladen und Benachrichtigungen über mehrere Plattformen zu erhalten. Es bietet auch AES-verschlüsselte Backups und verwendet Schlüsselableitung mit Argon2, um maximale Sicherheit Ihrer Daten zu gewährleisten.
Funktionen
Plattformkompatibilität

Systemanforderungen Betriebssystem: Kompatibel mit den gängigsten Linux-Distributionen
Installation git clone https://github.com/querylab/lazywarden.git
cd lazywarden
.env-Datei basierend auf der .env.sample-Beispieldatei und füllen Sie die erforderlichen Variablen aus.#---------------------------------------------------------------------------------------
# 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/ befinden:cd ..
source venv/bin/activate
bitwarden-cli-install.py, das alle CLI-Abhängigkeiten installiert:python3 scripts/bitwarden-cli-install.py
Region/City durch die gewünschte Zeitzone (z.B. America/New_York):timedatectl set-timezone Region/City
America/New_York zu setzen, führen Sie Folgendes aus:timedatectl set-timezone America/New_York
app/-Ordner und führen Sie main.py aus:cd app
python3 main.py
main.py ein Fehler auftritt, kann dies an fehlenden oder veralteten Bibliotheken liegen. Um dies zu beheben, empfehle ich, den folgenden Befehl auszuführen, um alle erforderlichen Abhängigkeiten zu installieren: 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/ befinden:cd ..
source venv/bin/activate
bitwarden-cli-install.py, das alle CLI-Abhängigkeiten installiert:python3 scripts/bitwarden-cli-install.py
Region/City durch die gewünschte Zeitzone (z.B. America/New_York):timedatectl set-timezone Region/City
America/New_York zu setzen, führen Sie Folgendes aus:timedatectl set-timezone America/New_York
app/-Ordner und führen Sie main.py aus:cd app
python3 main.py
main.py ein Fehler auftritt, kann dies an fehlenden oder veralteten Bibliotheken liegen. Um dies zu beheben, empfehle ich, den folgenden Befehl auszuführen, um alle erforderlichen Abhängigkeiten zu installieren: 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
Der Docker-Container führt das Skript main.py alle 24 Stunden aus, um Bitwarden zu sichern und in die konfigurierten Cloud-Dienste hochzuladen. Bei Erfolg oder Misserfolg werden Benachrichtigungen an die angegebenen Dienste gesendet. Sie können die Backup-Häufigkeit nach Ihren Bedürfnissen anpassen, z.B. monatlich, täglich oder stündlich.
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 richtet die Umgebung ein, installiert Abhängigkeiten und kopiert notwendige Dateien in den Container.docker-compose.yml definiert den lazywarden-Dienst und richtet Umgebungsvariablen und Volumes für persistenten Speicher ein.bw logout aus, bevor Sie sich in einem neuen Konto anmelden.Ich habe Lazywarden entwickelt, um Bitwarden-Backups ohne manuellen Aufwand oder Offenlegung sensibler Daten zu automatisieren. Nachdem ich mit komplexen Tools gekämpft hatte, nutzte ich den Bitwarden Secret Manager, um Geheimnisse sicher zu verwalten. Lazywarden automatisiert Backups und lädt sie auf mehrere Cloud-Dienste hoch (Google Drive, Dropbox, pCloud, MEGA, Seafile, Nextcloud, Filebase, Storj, Cloudflare R2, Backblaze B2) und integriert sich mit Telegram, Discord, Ntfy, Slack, Todoist, Vikunja und CalDAV für Benachrichtigungen und Nachverfolgung. Die herausragende Funktion ist die Möglichkeit, verschlüsselte Backups wieder in Bitwarden zu importieren, was die Backup-Verwaltung einfach, sicher und effizient macht.
Wenn Ihnen dieses Projekt gefällt, erwägen Sie bitte, ihm einen ⭐ zu geben.