
أداة نسخ احتياطي تلقائي لخزنة Bitwarden مع تشفير AES-256، اشتقاق مفاتيح Argon2، دعم التحميل إلى سحابات متعددة، وإشعارات فورية عبر Discord وTelegram وSlack.
Lazywarden هي أداة أتمتة بلغة Python مصممة لعمل نسخ احتياطي واستعادة البيانات من خزنتك، بما في ذلك المرفقات في Bitwarden. تتيح لك رفع النسخ الاحتياطية إلى خدمات تخزين سحابية متعددة واستقبال الإشعارات عبر منصات متعددة. كما توفر نسخًا احتياطية مشفرة بتشفير AES وتستخدم اشتقاق المفاتيح باستخدام Argon2، مما يضمن أقصى درجات الأمان لبياناتك.
المميزات
توافق المنصات

متطلبات النظام نظام التشغيل: متوافق مع توزيعات لينكس الرئيسية
التثبيت git clone https://github.com/querylab/lazywarden.git
cd lazywarden
.env بناءً على ملف المثال .env.sample واملأ المتغيرات اللازمة.#---------------------------------------------------------------------------------------
# هذه هي المتغيرات الستة المطلوبة إلزاميًا لـ 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 لـ Aegis, Authy, Ente, GoogleAuth (اختياري)
BW_TOTP_SECRET=
# بيانات اعتماد pCloud (اختياري)
PCLOUD_USERNAME=
PCLOUD_PASSWORD=
# بيانات اعتماد Mega (اختياري)
MEGA_EMAIL=
MEGA_PASSWORD=
# بيانات اعتماد Dropbox (اختياري)
DROPBOX_ACCESS_TOKEN=
DROPBOX_REFRESH_TOKEN=
DROPBOX_APP_KEY=
DROPBOX_APP_SECRET=
# بيانات اعتماد Todoist (اختياري)
TODOIST_TOKEN=
# بيانات اعتماد CalDAV (اختياري)
CALDAV_URL=
CALDAV_USERNAME=
CALDAV_PASSWORD=
# بيانات اعتماد Nextcloud (اختياري)
NEXTCLOUD_URL=
NEXTCLOUD_USERNAME=
NEXTCLOUD_PASSWORD=
# بيانات اعتماد Seafile (اختياري)
SEAFILE_SERVER_URL=
SEAFILE_USERNAME=
SEAFILE_PASSWORD=
# بيانات اعتماد Filebase (اختياري)
FILEBASE_ACCESS_KEY=
FILEBASE_SECRET_KEY=
# كلمة مرور KeePass (اختياري)
KEEPASS_PASSWORD=
# بيانات اعتماد Storj (اختياري)
STORJ_ACCESS_KEY=
STORJ_SECRET_KEY=
STORJ_ENDPOINT=
# بيانات اعتماد R2 (اختياري)
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_ENDPOINT_URL=
# بيانات اعتماد Vikunja (اختياري)
VIKUNJA_API_TOKEN=
VIKUNJA_URL=
# بيانات اعتماد Backblaze B2 (اختياري)
B2_APP_KEY_ID=
B2_APP_KEY=
# إعدادات Google Drive
GOOGLE_SERVICE_ACCOUNT_FILE=/root/lazywarden/config/bitwarden-drive-backup-google.json
GOOGLE_FOLDER_ID=
# إعدادات النسخ الاحتياطي
BACKUP_DIR=/root/lazywarden/backup-drive/
CRON_SCHEDULE="0 0 23 * *"
TIMEZONE=America/New_York
TIMESTAMP=2024_10_31_13_03_29
# عناوين URL لواجهة برمجة التطبيقات لـ Bitwarden
API_URL=https://vault.bitwarden.com/api
IDENTITY_URL=https://vault.bitwarden.com/identity
# معرف المؤسسة
ORGANIZATION_ID=
# رمز الوصول لمصادقة Bitwarden
ACCESS_TOKEN=
# الإشعارات والتنبيهات (اختياري)
TELEGRAM_TOKEN=
TELEGRAM_CHAT_ID=
DISCORD_WEBHOOK_URL=
SLACK_WEBHOOK_URL=
NTFY_URL=
# إعدادات SMTP لإشعارات البريد الإلكتروني (اختياري)
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، والذي سيقوم بتثبيت جميع تبعيات 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، والذي سيقوم بتثبيت جميع تبعيات 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/ # هذا الدليل يحتوي على كود التطبيق الرئيسي
│ ├── backup.py # وظائف النسخ الاحتياطي
│ ├── bitwarden_client.py # عميل للتفاعل مع Bitwarden
│ ├── config.py # إعدادات التطبيق العامة
│ ├── imports.py # يعالج الاستيرادات الشائعة
│ ├── main.py # نقطة الدخول الرئيسية للتطبيق
│ ├── notifications.py # يعالج الإشعارات
│ ├── secrets_manager.py # يدير الأسرار
│ ├── import_to_bitwarden.py # استيراد خزنة Bitwarden الخاصة بك
│ ├── import_to_keepass.py # إنشاء قاعدة بيانات kdbx
│ ├── schedule_backup.py # لإنشاء نسخة احتياطية مجدولة
├── config/ # دليل لملفات الإعدادات
│ ├── bitwarden-drive-backup-google.json # إعدادات Google Drive
├── scripts/ # دليل لبرامج التثبيت والإعداد النصية
│ ├── bitwarden-cli-install.py # برنامج نصي لتثبيت واجهة سطر أوامر Bitwarden
│ ├── docker-debian.sh # برنامج إعداد لـ Debian مع Docker
│ ├── docker-ubuntu.sh # برنامج إعداد لـ Ubuntu مع Docker
│ ├── setup-debian-env.sh # إعداد البيئة لـ Debian
│ ├── setup-ubuntu-env.sh # إعداد البيئة لـ Ubuntu
│ ├── alldecrypt-zip.py # فك تشفير جميع ملفات zip
│ ├── json-only-decrypt.py # فك تشفير ملفات json فقط (اختياري)
├── backup-drive/
│ ├── (هنا سيتم تخزين النسخ الاحتياطية المولدة محليًا)
├── .env # ملف متغيرات البيئة
├── Dockerfile # ملف إعداد Docker لإنشاء صورة التطبيق
├── docker-compose.yml # إعداد Docker Compose
├── entrypoint.sh # برنامج نقطة الدخول لـ Docker
└── requirements.txt # ملف يسرد تبعيات Python الخاصة بالمشروع
سيقوم حاوية Docker بتشغيل البرنامج النصي main.py كل 24 ساعة لعمل نسخة احتياطية من 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 قبل تسجيل الدخول إلى حساب جديد.