Skip to content

Releases: LunarPy-Labs/LunarDump

v0.4.0

Choose a tag to compare

@indhifarhandika indhifarhandika released this 15 Aug 06:19

🌖 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 s3

2. 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_PASS

3. 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 AM
  • day-14.5 / day-14:30: Daily at 14:30
  • week-14.5: Weekly on Sunday at 14:30
  • week-mon-14.5: Weekly on Monday at 14:30
  • month-1-2: 1st of every month at 02:00 AM
  • every-15m: Every 15 minutes
  • 0 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 $O(1)$ memory footprint)
Python Allocator pymalloc

🔐 Security & Schema Enhancements

  • Added GOOGLE_APPLICATION_CREDENTIALS support in generated .env and config.example.yaml for Google Cloud Storage.
  • Updated Pydantic v2 configuration schema to make storage optional 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

Choose a tag to compare

@indhifarhandika indhifarhandika released this 01 Aug 22:46

🌖 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, and mongodump installed—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 lunardump

Via uv:

uv tool install lunardump --force

Via Docker:

docker pull indhifarhandika/lunardump:v0.3.0

🤝 Community & Support

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@indhifarhandika indhifarhandika released this 31 Jul 00:20

🚀 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 --verify

Verification 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.0 to core package dependencies.
  • Added automatic .env initialization 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

📝 Enhanced Configuration & Guidance

  • Updated config.example.yaml and README.md with explicit comments for storage: 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 --verify flag to restore command for integrity and checksum verification.
  • feat(cli): Added --remote-key and --config support to restore for direct cloud storage verification.
  • feat(security): Added verify_stream method in StreamCipher calculating SHA-256 & MD5 checksums.
  • fix(deps): Moved python-dotenv into core dependencies array in pyproject.toml.
  • docs: Added CONTRIBUTING.md, SECURITY.md, and updated config.example.yaml comments.

⚙️ Installation & Upgrade

Via pip:

pip install --upgrade lunardump

Via uv:

uv tool install --upgrade lunardump

Full Commit History & Repository: github.com/indhifarhandika/LunarDump

v0.1.2

Choose a tag to compare

@indhifarhandika indhifarhandika released this 29 Jul 14:34

add python-dotenv and fixing load env

v0.1.1

Choose a tag to compare

@indhifarhandika indhifarhandika released this 29 Jul 13:54
391521b

Fixing load env

v0.1.0

v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@indhifarhandika indhifarhandika released this 29 Jul 04:51

🌖 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_dump with native streaming support to handle multi-gigabyte databases without memory spikes.

  • On-The-Fly Compression: Automatic compression of raw database dumps into .tar.gz archive streams prior to encryption.

🔐 Zero-Trust Security

  • AES-256-GCM Encryption: Local end-to-end symmetric encryption powered by the cryptography library. Data is encrypted before it leaves your server environment.

  • Zero-Leak Credentials: Safe environment variable loading via Pydantic v2 to 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 --help documentation.

  • Configuration Validation: Added lunardump config check command 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

  1. Generate your initial configuration file or copy config.example.yaml:
lunardump config check --config config.yaml
  1. 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.