MORAINE(1)

πŸ“¦ version 0.2.2, in ubuntu stonking

✨ MORAINE ✨

okay bestie, gather round, because moraine is about to become your new personality πŸ’– it's a lil command-line baddie that does snapshot backups over SSH/rsync and rclone, and honestly? she ate.


🌸 SYNOPSIS 🌸

moraine [-c CONFIG] COMMAND [OPTIONS]

that's it. that's the whole vibe. one command, a config file, and you're literally preserving your data's whole life story 🫢


πŸ’… DESCRIPTION πŸ’…

so here's the tea, bestie β˜• moraine makes timestamped, hard-linked snapshots of your local files and yeets them onto a remote target. the way each run looks like a complete, full tree? iconic. but files that haven't changed since last time just share disk with the previous snapshot through hard links, so keeping a whole history of your stuff costs almost nothing. it's giving "unlimited storage glitch" but it's real and it's legal πŸ’€βœ¨

and because history isn't just for hoarding, you can also:

  • list your snapshots (so you can gaze upon them like a proud parent),
  • prune them with a GFS retention policy (bye grandpa snapshot, love u, it's time),
  • and restore individual files or whole trees (the unhinged "nvm bring it back" button we all deserve).

two backends are supported, door's open to both:

  • rsync over SSH β€” classic, reliable, we love her πŸ”₯
  • rclone β€” for cloud, SFTP, SMB, WebDAV, S3 and more. she does it all, no cap πŸ‘‘

targets and schedules? those live in a TOML configuration file, because we're organized queens here πŸŽ€


⭐ OPTIONS ⭐

  • -c, --config CONFIG β€” the path to your configuration file, bestie (default: moraine.toml). point her at wherever your config is chilling.
  • -h, --help β€” print help. always a safe first move, no shame 🫢
  • -V, --version β€” print the version, and yes it comes with the git hash and build date, so you know literally exactly which build you're running. receipts, always πŸ’…

🌈 COMMANDS 🌈

  • init β€” writes an example configuration file so you have something to start from. a lil starter pack, a blank canvas, a beginning ✨
  • verify β€” checks the SSH connection, the key, the sources, and confirms the target is actually writable. basically a vibe check for your whole setup before the real thing 🌸
  • run [--dry-run] [--target NAME] β€” runs a backup for all targets, or just one selected one. use --dry-run if you wanna peek without committing (we all do it πŸ™ˆ).
  • list --target NAME β€” lists the snapshots sitting on a target. come admire your collection πŸ‘‘
  • prune [--dry-run] [--target NAME] β€” deletes old snapshots based on the target's retention policy. she's ruthless but the --dry-run flag lets you watch her swing before anything actually gets got πŸ’€

πŸ¦‹ FILES πŸ¦‹

  • moraine.toml β€” the configuration file, and the format is simple fr: one [[target]] block per backup destination. one target, one block, no chaos πŸŽ€

πŸ’œ SEE ALSO πŸ’œ

rsync(1), ssh(1), rclone(1)

(the squad. the founding mothers. go read up iykyk)


🌟 AUTHOR 🌟

Jonaz Thern <info@thern.io>


aaaand that's the whole page bestie!! πŸ’– you just read the docs for moraine version 0.1.0, dated 2026-06-29. now go back up your stuff, main character 🫢✨ periodt.

πŸ“¦ where this page comes from