
Ferramenta automatizada de backup do cofre Bitwarden com criptografia AES-256, derivação de chave Argon2, suporte para upload em múltiplas nuvens e notificações em tempo real via Discord, Telegram e Slack.
Lazywarden é uma ferramenta de automação em Python projetada para fazer Backup e Restaurar dados do seu cofre, incluindo anexos do Bitwarden. Ela permite fazer upload de backups para vários serviços de armazenamento em nuvem e receber notificações em múltiplas plataformas. Também oferece backups criptografados com AES e usa derivação de chave com Argon2, garantindo máxima segurança para seus dados.
Funcionalidades
Compatibilidade de Plataforma

Requisitos do Sistema Sistema Operacional: Compatível com as principais distribuições Linux
Instalação git clone https://github.com/querylab/lazywarden.git
cd lazywarden
.env baseado no arquivo de exemplo .env.sample e preencha as variáveis necessárias.#---------------------------------------------------------------------------------------
# Estas são as 6 variáveis obrigatórias para o 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 para Aegis, Authy, Ente, GoogleAuth (Opcional)
BW_TOTP_SECRET=
# Credenciais pCloud (Opcional)
PCLOUD_USERNAME=
PCLOUD_PASSWORD=
# Credenciais Mega (Opcional)
MEGA_EMAIL=
MEGA_PASSWORD=
# Credenciais Dropbox (Opcional)
DROPBOX_ACCESS_TOKEN=
DROPBOX_REFRESH_TOKEN=
DROPBOX_APP_KEY=
DROPBOX_APP_SECRET=
# Credenciais Todoist (Opcional)
TODOIST_TOKEN=
# Credenciais CalDAV (Opcional)
CALDAV_URL=
CALDAV_USERNAME=
CALDAV_PASSWORD=
# Credenciais Nextcloud (Opcional)
NEXTCLOUD_URL=
NEXTCLOUD_USERNAME=
NEXTCLOUD_PASSWORD=
# Credenciais Seafile (Opcional)
SEAFILE_SERVER_URL=
SEAFILE_USERNAME=
SEAFILE_PASSWORD=
# Credenciais Filebase (Opcional)
FILEBASE_ACCESS_KEY=
FILEBASE_SECRET_KEY=
# Senha KeePass (Opcional)
KEEPASS_PASSWORD=
# Credenciais Storj (Opcional)
STORJ_ACCESS_KEY=
STORJ_SECRET_KEY=
STORJ_ENDPOINT=
# Credenciais R2 (Opcional)
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_ENDPOINT_URL=
# Credenciais Vikunja (Opcional)
VIKUNJA_API_TOKEN=
VIKUNJA_URL=
# Credenciais Backblaze B2 (Opcional)
B2_APP_KEY_ID=
B2_APP_KEY=
# Configurações do Google Drive
GOOGLE_SERVICE_ACCOUNT_FILE=/root/lazywarden/config/bitwarden-drive-backup-google.json
GOOGLE_FOLDER_ID=
# Configurações de Backup
BACKUP_DIR=/root/lazywarden/backup-drive/
CRON_SCHEDULE="0 0 23 * *"
TIMEZONE=America/New_York
TIMESTAMP=2024_10_31_13_03_29
# URLs da API do Bitwarden
API_URL=https://vault.bitwarden.com/api
IDENTITY_URL=https://vault.bitwarden.com/identity
# ID da Organização
ORGANIZATION_ID=
# Token de Acesso para Autenticação Bitwarden
ACCESS_TOKEN=
# Notificações e Alertas (Opcional)
TELEGRAM_TOKEN=
TELEGRAM_CHAT_ID=
DISCORD_WEBHOOK_URL=
SLACK_WEBHOOK_URL=
NTFY_URL=
# Configuração SMTP para Notificações por E-mail (Opcional)
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 as dependências da CLI:python3 scripts/bitwarden-cli-install.py
Região/Cidade pelo fuso horário desejado (ex: America/New_York):timedatectl set-timezone Region/City
America/New_York, execute:timedatectl set-timezone America/New_York
app/ e execute main.py:cd app
python3 main.py
main.py, pode estar relacionado a bibliotecas ausentes ou desatualizadas. Para corrigir, recomendo executar o seguinte comando para instalar todas as dependências necessárias: 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 as dependências da CLI:python3 scripts/bitwarden-cli-install.py
Região/Cidade pelo fuso horário desejado (ex: America/New_York):timedatectl set-timezone Region/City
America/New_York, execute:timedatectl set-timezone America/New_York
app/ e execute main.py:cd app
python3 main.py
main.py, pode estar relacionado a bibliotecas ausentes ou desatualizadas. Para corrigir, recomendo executar o seguinte comando para instalar todas as dependências necessárias: pip install -r requirements.txt
lazywarden/
├── app/ # Este diretório contém o código principal da aplicação
│ ├── backup.py # Funções de backup
│ ├── bitwarden_client.py # Cliente para interagir com o Bitwarden
│ ├── config.py # Configurações gerais da aplicação
│ ├── imports.py # Gerencia importações comuns
│ ├── main.py # Ponto de entrada principal da aplicação
│ ├── notifications.py # Gerencia notificações
│ ├── secrets_manager.py # Gerencia segredos
│ ├── import_to_bitwarden.py # Importa seu cofre Bitwarden
│ ├── import_to_keepass.py # Cria banco de dados kdbx
│ ├── schedule_backup.py # Para criar backups agendados
├── config/ # Diretório para arquivos de configuração
│ ├── bitwarden-drive-backup-google.json # Configuração para Google Drive
├── scripts/ # Diretório para scripts de instalação e configuração
│ ├── bitwarden-cli-install.py # Script para instalar o Bitwarden CLI
│ ├── docker-debian.sh # Script de configuração para Debian com Docker
│ ├── docker-ubuntu.sh # Script de configuração para Ubuntu com Docker
│ ├── setup-debian-env.sh # Configuração de ambiente para Debian
│ ├── setup-ubuntu-env.sh # Configuração de ambiente para Ubuntu
│ ├── alldecrypt-zip.py # Descriptografa todos os arquivos zip
│ ├── json-only-decrypt.py # Descriptografa apenas arquivos json (opcional)
├── backup-drive/
│ ├── (Aqui serão armazenados localmente os backups gerados)
├── .env # Arquivo para variáveis de ambiente
├── Dockerfile # Arquivo de configuração Docker para criar uma imagem da aplicação
├── docker-compose.yml # Configuração Docker Compose
├── entrypoint.sh # Script de ponto de entrada para Docker
└── requirements.txt # Arquivo que lista as dependências Python do projeto
O contêiner Docker executará o script main.py a cada 24 horas para fazer backup do Bitwarden e enviá-lo para os serviços em nuvem configurados. Notificações serão enviadas para os serviços especificados em caso de sucesso ou falha. Você pode modificar a frequência do backup conforme suas necessidades, como mensal, diário ou por 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 o ambiente, instala dependências e copia os arquivos necessários para o contêiner.docker-compose.yml define o serviço lazywarden e configura variáveis de ambiente e volumes para armazenamento persistente.bw logout antes de fazer login em uma nova conta.Criei o Lazywarden para automatizar backups do Bitwarden sem esforço manual ou expor dados sensíveis. Depois de lutar com ferramentas complexas, aproveitei o Bitwarden Secret Manager para gerenciar segredos com segurança. O Lazywarden automatiza backups e os envia para vários serviços em nuvem (Google Drive, Dropbox, pCloud, MEGA, Seafile, Nextcloud, Filebase, Storj, Cloudflare R2, Backblaze B2) e integra-se com Telegram, Discord, Ntfy, Slack, Todoist, Vikunja e CalDAV para notificações e rastreamento. Seu recurso de destaque é a capacidade de restaurar backups criptografados de volta ao Bitwarden, tornando o gerenciamento de backup simples, seguro e eficiente.
Se você gostou deste projeto, por favor, considere dar uma ⭐