v0.1.0
Pre-releaseπ 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.