
자동화된 Bitwarden 자격 증명 모음 백업 도구로, AES-256 암호화, Argon2 키 파생, 멀티 클라우드 업로드 지원, Discord, Telegram, Slack을 통한 실시간 알림 기능을 제공합니다.
Lazywarden은 Bitwarden 첨부 파일을 포함하여 볼트의 데이터를 백업하고 복원하도록 설계된 Python 자동화 도구입니다. 여러 클라우드 스토리지 서비스에 백업을 업로드하고 여러 플랫폼에서 알림을 받을 수 있습니다. 또한 AES 암호화 백업과 Argon2 키 유도 방식을 제공하여 데이터의 최대 보안을 보장합니다.
기능
플랫폼 호환성

시스템 요구 사항 운영 체제: 주요 Linux 배포판과 호환
설치 git clone https://github.com/querylab/lazywarden.git
cd lazywarden
.env.sample 예제 파일을 기반으로 .env 파일을 생성하고 필요한 변수를 입력하세요.#---------------------------------------------------------------------------------------
# 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 스크립트를 사용하여 Bitwarden CLI를 설치합니다. 이 스크립트는 모든 CLI 종속성을 설치합니다.python3 scripts/bitwarden-cli-install.py
Region/City를 원하는 시간대로 바꾸세요 (예: America/New_York).timedatectl set-timezone Region/City
America/New_York로 설정하려면 다음을 실행하세요.timedatectl set-timezone America/New_York
app/ 폴더로 이동하여 main.py를 실행합니다.cd app
python3 main.py
main.py 실행 시 오류가 발생하면 누락되거나 오래된 라이브러리 때문일 수 있습니다. 이를 수정하려면 다음 명령을 실행하여 필요한 모든 종속성을 설치하는 것을 권장합니다. 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 스크립트를 사용하여 Bitwarden CLI를 설치합니다. 이 스크립트는 모든 CLI 종속성을 설치합니다.python3 scripts/bitwarden-cli-install.py
Region/City를 원하는 시간대로 바꾸세요 (예: America/New_York).timedatectl set-timezone Region/City
America/New_York로 설정하려면 다음을 실행하세요.timedatectl set-timezone America/New_York
app/ 폴더로 이동하여 main.py를 실행합니다.cd app
python3 main.py
main.py 실행 시 오류가 발생하면 누락되거나 오래된 라이브러리 때문일 수 있습니다. 이를 수정하려면 다음 명령을 실행하여 필요한 모든 종속성을 설치하는 것을 권장합니다. 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
Docker 컨테이너는 24시간마다 main.py 스크립트를 실행하여 Bitwarden을 백업하고 설정된 클라우드 서비스에 업로드합니다. 성공 또는 실패 시 지정된 서비스로 알림이 전송됩니다. 매월, 매일, 매시간 등 필요에 따라 백업 빈도를 수정할 수 있습니다.
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은 환경을 설정하고 종속성을 설치하며 필요한 파일을 컨테이너에 복사합니다.docker-compose.yml 파일은 lazywarden 서비스를 정의하고 환경 변수와 영구 스토리지를 위한 볼륨을 설정합니다.bw logout 명령을 실행하세요.수동 작업이나 민감한 데이터 노출 없이 Bitwarden 백업을 자동화하기 위해 Lazywarden을 만들었습니다. 복잡한 도구로 어려움을 겪은 후, Bitwarden Secret Manager를 활용하여 비밀을 안전하게 관리했습니다. Lazywarden은 백업을 자동화하고 여러 클라우드 서비스(Google Drive, Dropbox, pCloud, MEGA, Seafile, Nextcloud, Filebase, Storj, Cloudflare R2, Backblaze B2)에 업로드하며, Telegram, Discord, Ntfy, Slack, Todoist, Vikunja, CalDAV와 통합하여 알림 및 추적 기능을 제공합니다. 가장 두드러진 기능은 암호화된 백업을 다시 Bitwarden으로 복원할 수 있다는 점으로, 백업 관리를 간단하고 안전하며 효율적으로 만듭니다.
이 프로젝트가 마음에 드신다면 ⭐를 눌러주시기 바랍니다.