Repository navigation
Releases: LunarPy-Labs/LunarDump
Release list
v0.4.0
🌖 LunarDump Release Notes
[v0.4.0] - 2026-08-15
We are excited to announce LunarDump v0.4.0, a major release bringing instant template generation, live zero-disk database migration, human-friendly daemon scheduling, a zero-config command-driven Web UI with live interactive terminal streaming, and extensive real-world performance benchmarks!
🚀 Highlights & New Features
1. Instant Template Generator (lunardump config generate)
No more writing configuration files or environment variables manually. With a single command, LunarDump generates three production-ready files pre-populated with a cryptographically secure 256-bit AES key:
config.yaml: Pre-configured backup pipeline template.migration.yaml: Live database-to-database migration profile..env: Environment file containing passwords, cloud credentials, and an auto-generated AES-256 secret key.
# Generate default PostgreSQL + S3 templates
lunardump config generate
# Or specify database engine and cloud storage target
lunardump config generate --db-type mysql --storage s32. Live Database Migration (lunardump migrate) & Focused Web UI
Perform direct, real-time database-to-database migration from Server A (Source DB) to Server B (Target DB) with Zero-Disk Pipe Streaming (0 bytes disk space used).
- Supports PostgreSQL, MySQL, MariaDB, and MongoDB.
- Includes optional In-Flight AES-256-GCM Encryption for safe migration over untrusted public networks.
- Dedicated Web UI view focused on Live Migration execution and parameter input.
# Migration using YAML configuration file
lunardump migrate --config migration.yaml
# Or direct migration via CLI flags with environment variables for passwords
export SOURCE_DB_PASS="password_server_a"
export TARGET_DB_PASS="password_server_b"
lunardump migrate \
--source-type postgres --source-host 192.168.1.10 --source-name db_prod --source-password-env SOURCE_DB_PASS \
--target-type postgres --target-host 192.168.1.20 --target-name db_dest --target-password-env TARGET_DB_PASS3. Embedded Command-Driven Web Control Panel & Live Terminal (lunardump ui)
Launch an interactive, real-time web dashboard directly in your browser with a single CLI command:
- Zero-Config Direct Parameter Execution: Input database connection parameters (Engine, Host, Port, Database Name, Username, Password) directly in the UI without requiring pre-existing config files on disk.
- Embedded Interactive Live Terminal Stream (
#migration-terminal): Real-time terminal output window displaying step-by-step progress, timestamps, and live WebSocket log streaming (/ws/logs). - 🧪 Test Dry-Run Parameters: 1-click dry-run testing tool to validate client binaries (
pg_dump,mysqldump,mongodump,pg_restore,mysql) and TCP host connectivity before initiating live migration.
lunardump ui [--port 8080] [--host 127.0.0.1]4. Human-Friendly Daemon & Schedule Runner (--cron)
Automate continuous background backups using human-friendly schedule expressions or standard 5-field cron syntax:
day-2: Daily at 02:00 AMday-14.5/day-14:30: Daily at 14:30week-14.5: Weekly on Sunday at 14:30week-mon-14.5: Weekly on Monday at 14:30month-1-2: 1st of every month at 02:00 AMevery-15m: Every 15 minutes0 2 * * *: Standard cron expression
lunardump run --config config.yaml --cron "day-2"5. Direct Cloud Restore & Injection (lunardump restore)
Stream-decrypt encrypted .enc backup archives directly from cloud storage (S3 / GCS) and inject payload into a target database engine without writing unencrypted files to disk.
⚡ Memory & Performance Benchmark (Memray Profile)
Real-world production benchmark profiling an 8 GB Database Dump over 1+ hour continuous execution using Bloomberg's Memray profiler:
| Metric | Result |
|---|---|
| Database Payload Size | 8 GB Data |
| Execution Duration | 1 Hour 1 Minute 57 Seconds |
| Total Memory Allocations | 5,941,989 allocations |
| Peak RAM Usage |
119.1 MB RAM (Constant |
| Python Allocator | pymalloc |
🔐 Security & Schema Enhancements
- Added
GOOGLE_APPLICATION_CREDENTIALSsupport in generated.envandconfig.example.yamlfor Google Cloud Storage. - Updated Pydantic v2 configuration schema to make
storageoptional for live migration profiles. - Enforced 0600 permission controls on generated encryption key secret files.
🧪 Quality Assurance & Test Coverage
- 68/68 Pytest Unit Tests Passing with 83% Code Coverage.
- Fully updated documentation suite at docs.lunardump.io.
v0.3.0
🌖 LunarDump v0.3.0 Release Notes
We are excited to announce LunarDump v0.3.0! This major update brings official multi-architecture Docker containerization, a revamped Rich terminal user interface, comprehensive Read the Docs documentation, and enhanced zero-trust database backup capabilities.
🌟 What's New in v0.3.0
🐳 Official Multi-Architecture Docker Images
LunarDump is now officially available as a lightweight Docker container supporting both linux/amd64 and linux/arm64 (Apple Silicon & AWS Graviton):
- Docker Hub:
indhifarhandika/lunardump:v0.3.0 - GitHub Container Registry:
ghcr.io/indhifarhandika/lunardump:v0.3.0 - Pre-packaged Client Binaries: Comes out-of-the-box with
pg_dump,mysqldump, andmongodumpinstalled—no native host setup required!
docker run --rm \
-v $(pwd)/config.yaml:/app/config.yaml:ro \
-v $(pwd)/.env:/app/.env:ro \
indhifarhandika/lunardump:latest run --config /app/config.yaml✨ Revamped Rich Terminal UI & ASCII Banner
- Added a crisp, illuminated cyan Rich ASCII Art Banner wrapped in a bordered Panel for CLI invocations.
- High-contrast block formatting ensures 100% readability across all terminal sizes and theme modes.
📚 Complete Read the Docs Suite
- Deployed full, production-grade documentation to https://lunardump.readthedocs.io.
- Included in-depth guides for Zero-Disk Streaming Architecture, Backup Integrity Verification (
--verify), Automated Lifecycle Retention, and Docker Deployment. - Highlights native inclusion in HackTrack OS (pre-installed under System Menu -> Extra Tools).
📦 Installation & Upgrade
Via pip:
pip install --upgrade lunardumpVia uv:
uv tool install lunardump --forceVia Docker:
docker pull indhifarhandika/lunardump:v0.3.0🤝 Community & Support
- 💬 Telegram Community: t.me/lunardump
- 📖 Documentation: lunardump.readthedocs.io
- 🐛 Report Issues: GitHub Issues
Full Changelog: v0.2.0...v0.3.0
v0.2.0
🚀 LunarDump v0.2.0 Release Notes
We are excited to announce LunarDump v0.2.0! This release introduces a major new disaster recovery feature: Stream Integrity & Checksum Verification (lunardump restore --verify), along with seamless environment variable loading, uv package manager support, and improved configuration guidance.
🌟 What's New in v0.2.0
🛡️ Backup Integrity & Checksum Verification (--verify)
Ensuring that your encrypted database backups are uncorrupted, authentic, and decryptable before a real disaster strikes is crucial. With lunardump restore --verify, you can now validate your backup archives on-the-fly without restoring them to a live database or writing unencrypted data to disk.
- AES-256-GCM Stream Validation: Authenticates header signatures (
LUNARDUMP_V1), salt, nonces, and cryptographic authentication tags across every chunk. - Cryptographic Checksums: Generates instant SHA-256 and MD5 checksums of the unencrypted payload.
- Zero-Disk Overhead: Performs verification entirely in memory (64KB chunks).
- Direct Cloud Storage Verification: Verify remote backup archives stored in AWS S3, Google Cloud Storage, MinIO, or Cloudflare R2 without manual downloading.
Command Examples:
# 1. Verify local encrypted backup file
lunardump restore --file backup_20260730.enc --key secret.key --verify
# 2. Download and verify directly from Cloud Storage (S3 / GCS)
lunardump restore --config config.yaml --remote-key daily/mysql/backup_20260730.enc --verifyVerification Terminal Report:
LunarDump Backup Integrity & Verification Report
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric ┃ Details ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Backup Source │ s3://company-db-backups/daily/mysql/backup_20260730.enc │
│ Integrity Status │ PASSED (AES-256-GCM Authenticated) │
│ Decrypted Size │ 14.28 MB (14,972,812 bytes) │
│ SHA-256 Checksum │ a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8 │
│ MD5 Checksum │ c4ca4238a0b923820dcc509a6f75849b │
│ Validated Chunks │ 228 chunk(s) │
└━━━━━━━━━━━━━━━━━━━━━━━━━━┴━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┘
✓ Backup file is authentic, uncorrupted, and ready for disaster recovery.
⚡ Improvements & Fixes
📦 Automatic .env Loading Across All Terminals
- Added
python-dotenv>=1.0.0to core package dependencies. - Added automatic
.envinitialization at CLI entrypoint (lunardump/main.py), resolving environment variables seamlessly out-of-the-box.
⚡ Package Manager Support (uv & uvx)
- Full support and documentation for installing LunarDump via
uv:- Global CLI installation:
uv tool install lunardump - One-off instant execution:
uvx lunardump run --config config.yaml
- Global CLI installation:
📝 Enhanced Configuration & Guidance
- Updated
config.example.yamlandREADME.mdwith explicit comments forstorage:provider options (S3, GCS, MinIO, R2, Local). - Added explanatory notes for
notifications:channels (requires at least 1 channel, supports multi-channel notification setups).
📄 Full Changelog
feat(cli): Added--verifyflag torestorecommand for integrity and checksum verification.feat(cli): Added--remote-keyand--configsupport torestorefor direct cloud storage verification.feat(security): Addedverify_streammethod inStreamCiphercalculating SHA-256 & MD5 checksums.fix(deps): Movedpython-dotenvinto core dependencies array inpyproject.toml.docs: AddedCONTRIBUTING.md,SECURITY.md, and updatedconfig.example.yamlcomments.
⚙️ Installation & Upgrade
Via pip:
pip install --upgrade lunardumpVia uv:
uv tool install --upgrade lunardumpFull Commit History & Repository: github.com/indhifarhandika/LunarDump
v0.1.2
add python-dotenv and fixing load env
v0.1.1
v0.1.0
🌖 LunarDump v0.1.0 — Initial Release
We are thrilled to announce the official initial release of LunarDump (v0.1.0)! 🎉
LunarDump is a lightweight, zero-trust CLI tool built in Python designed to automate, encrypt, and stream database backups directly to multi-cloud storage. This inaugural version lays down the core pipeline for secure, memory-efficient, and configuration-driven database disaster recovery.
✨ What's Included in v0.1.0
🗄️ Core Backup Engine & Driver
-
PostgreSQL Engine Support: Initial driver implementation using
pg_dumpwith native streaming support to handle multi-gigabyte databases without memory spikes. -
On-The-Fly Compression: Automatic compression of raw database dumps into
.tar.gzarchive streams prior to encryption.
🔐 Zero-Trust Security
-
AES-256-GCM Encryption: Local end-to-end symmetric encryption powered by the
cryptographylibrary. Data is encrypted before it leaves your server environment. -
Zero-Leak Credentials: Safe environment variable loading via
Pydantic v2to ensure database passwords and API tokens are never leaked into logs or config files.
☁️ Cloud Storage Integration
-
AWS S3 & S3-Compatible Storage: Direct upload engine supporting AWS S3, Cloudflare R2, and local MinIO instances with multipart transfer callbacks.
-
Automated Retention Cleaner: Set custom retention policies (e.g., retain backups for 30 days) to automatically purge expired archives from cloud buckets.
🖥️ CLI UX & Telemetry
-
Modern CLI Built with Typer & Rich: Clean commands with interactive progress bars, formatted tables, and intuitive
--helpdocumentation. -
Configuration Validation: Added
lunardump config checkcommand to test connectivity to your database, cloud storage, and webhooks prior to executing backups. -
Telegram Webhook Alerts: Real-time event telemetry that posts success or failure notifications directly to your Telegram channel.
🚀 Quick Start
Installation
pip install lunardump
Usage
- Generate your initial configuration file or copy
config.example.yaml:
lunardump config check --config config.yaml
- Execute the full backup pipeline:
lunardump run --config config.yaml
🛠️ Configuration Example (config.yaml)
version: "1.0"
backup:
name: "prod-db-daily"
database:
type: "postgres"
host: "localhost"
port: 5432
name: "production_db"
user: "postgres"
password_env: "DB_PASSWORD"
security:
encrypt: true
algorithm: "aes-256-gcm"
key_env: "LUNARDUMP_ENCRYPTION_KEY"
storage:
provider: "s3"
bucket: "my-lunardump-backups"
region: "ap-southeast-1"
path: "daily/postgres/"
retention_days: 30
notifications:
on_success: true
on_failure: true
channels:
- type: "telegram"
bot_token_env: "TELEGRAM_BOT_TOKEN"
chat_id: "-100123456789"
❤️ Contributors & Feedback
Thank you to everyone testing and contributing to LunarDump! If you encounter any bugs or have feature requests, please open an issue on our [GitHub Issues](https://github.com/LunarDump/lunardump/issues) page.