#backup #set #minutes #guardian #setup #postgresql

app pentheus

Your Database Guardian, Set up in Minutes

2 releases

new 0.1.1 Jan 3, 2025
0.1.0 Jan 2, 2025

#123 in Database interfaces

Download history 248/week @ 2024-12-31

248 downloads per month

MIT license

105KB
207 lines

Pentheus

Your Database Guardian, Set up in Minutes.

Pentheus — your go-to command-line buddy for keeping your databases safe and sound! Built with Rust, this nifty tool makes backing up and storing your SQLite, MySQL, and PostgreSQL databases super easy. Let’s make sure your data is always protected!

Features

  • Multi-Database Support: Back up your SQLite, MySQL, and PostgreSQL databases without breaking a sweat.
  • Storage Options Galore: Choose to stash your backups locally or in the cloud (Amazon S3) — your choice!
  • Compression Magic: Want to save some space? Go ahead and compress those backups!
  • Automated Backups: Set up cron jobs to handle backups automatically. Just set it and forget it!
  • Backup Tracking: Keep tabs on your backups with a handy state file—no more guessing!

Usage

First, you’ll want to install pentheus using Cargo. Open your terminal and run:

$ cargo install pentheus

Next, create a TOML config file to tell pentheus how to back up your databases. Here’s a quick example to get you rolling:

# Database backups
[database]
  [database.sqlite_db_01]
  driver = "sqlite"
  path = "/opt/backup/app1-db.sqlite"

  [database.my_mysql_db_01]
  driver = "mysql"
  host = "mysql_host"
  port = 3306
  user = "mysql_user"
  password = "mysql_password"
  database = "my_mysql_db"

  [database.my_postgres_db_01]
  driver = "postgres"
  host = "postgres_host"
  port = 5432
  user = "postgres"
  password = "postgres_password"
  database = "my_postgres_db"

# Backup storage
[storage]
  [storage.local_store]
  driver = "local"
  path = "/path/to/local/backup"
  compress = "zip"

  [storage.s3_store]
  driver = "s3"
  bucket = "my-backup-bucket"
  region = "us-east-1"
  access_key = "my_access_key"
  secret_key = "my_secret_key"
  compress = "none"

# Cron Jobs
[cron]
  [cron.sqlite_db_01_cron]
  schedule = "5 4 * * *"
  database = "sqlite_db_01"
  storage = "local_store"

# Backups state file
[state]
storage = "s3_store"
path = "/state.json"

Versioning

For transparency into our release cycle and in striving to maintain backward compatibility, Pentheus is maintained under the Semantic Versioning guidelines and release process is predictable and business-friendly.

See the Releases section of our GitHub project for changelogs for each release version of Pentheus. It contains summaries of the most noteworthy changes made in each release.

Bug tracker

If you have any suggestions, bug reports, or annoyances please report them to our issue tracker at https://github.com/clivern/pentheus/issues

Security Issues

If you discover a security vulnerability within Pentheus, please send an email to hello@clivern.com

Contributing

We are an open source, community-driven project so please feel free to join us. see the contributing guidelines for more details.

License

© 2025, clivern. Released under MIT License.

Pentheus is authored and maintained by @Clivern.

Dependencies

~6–18MB
~175K SLoC