Skip to content

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.