Skip to content

A tool for performing scheduled database backups and transferring encrypted data to secure clouds, for home labs, hobby projects, etc., in environments such as k8s, docker, vms.

License

rafsaf/ogion

Repository files navigation

License Python 3.12 Ruff Tests Type check Dev build Release build Update of db versions

Ogion

A tool for performing scheduled database backups and transferring encrypted data to secure public clouds, for home labs, hobby projects, etc., in environments such as k8s, docker, vms.

Backups are in zip format using 7-zip, with strong AES-256 encryption under the hood.

Documentation

Supported backup targets

Supported upload providers

  • Google Cloud Storage bucket
  • AWS S3 bucket
  • Azure Blob Storage
  • Debug (local)

Notifications

  • Discord
  • Email (SMTP)
  • Slack

Deployment strategies

Using docker image: rafsaf/ogion:latest, see all tags on dockerhub

  • docker (docker compose) container
  • kubernetes deployment

Architectures

  • linux/amd64
  • linux/arm64

Example

Everyday 5am backup of PostgreSQL database defined in the same file and running in docker container.

# docker-compose.yml

services:
  db:
    image: postgres:16
    environment:
      - POSTGRES_PASSWORD=pwd
  ogion:
    image: rafsaf/ogion:latest
    environment:
      - POSTGRESQL_PG16=host=db password=pwd cron_rule=0 0 5 * * port=5432
      - ZIP_ARCHIVE_PASSWORD=change_me
      - BACKUP_PROVIDER=name=debug

(NOTE this will use provider debug that store backups locally in the container).

Real world usage

The author actively uses ogion (with GCS) for one production project plemiona-planer.pl postgres database (both PRD and STG) and for bunch of homelab projects including self hosted Firefly III mariadb, Grafana postgres, KeyCloak postgres, Nextcloud postgres and configuration file, Minecraft server files, and two other postgres dbs for some demo projects.

See how it looks for ~2GB size database:

ogion_gcp_example_twp-min.jpg