# Norg A simple, portable, wrapper for the [borg backup utility](https://www.borgbackup.org) written in Nim Inspired by [Borgmatic](https://torsion.org/borgmatic) ## Usage Norg uses a `toml` based config file for configuration. An example configuration would look like this: ```toml source_dirs = [ "/home/me/Music", "/home/me/Pictures" ] encryption_password = "MyReallySecurePassword" [[repositories]] label = "A Repository" path = "/my/backup/location" [[repositories]] label = "Another Respository at BorgBase" path = "ssh://1234abcd@1234abcd.repo.borgbase.com/./repo" [uptimekuma] base_url = "https://uptime.kuma.url/api/push/1234abcd" states = ["Success","Failure", "Running"] ``` You can then run the equivalent `borg` command to init, create, list, mount and extract your backups. ```sh # Init your repository norg -c myconfig.toml init # Backup your data norg -c myconfig.toml create # List Archives norg -c myconfig.toml list # Mount an Archive norg -c myconfig.toml mount pcname-2024-08-18T15:20:17773204 /home/me/mnt # Unmount an Archive norg -c myconfig.toml umount /home/me/mnt # Extract an Archive # You must be in an empty folder for this to work norg -c myconfig.toml extract pcname-2024-08-18T15:20:17773204 # Or You must set the destination to an empty folder norg -c myconfig.toml extract pcname-2024-08-18T15:20:17773204 --destination /tmp/my_extracted_archive ``` ## Work in Progress Norg is still very much a work in progress, so there will be bugs. Please raise and issue, or create a pull request for any issues and resolutions you may have. ## Naming. Why "Norg"? Well, I don't know. I'm a Star Trek fan so obviously I wanted to keep something in line with the [Borg pseudo-species](https://memory-alpha.fandom.com/wiki/Borg) as the borg backup utility does. Also, sometimes I feel my code has elements of inexperience but loads of potential... which reminded me of [Nog](https://memory-alpha.fandom.com/wiki/Nog) So, simply put, `Norg` is an portmanteau of "Borg" and "Nog". ## Why create this when Borgmatic exists? `Borgmatic` is absolutely fantastic, and I love it dearly. I even implemented the `Uptime Kuma` hook that is in it. However, I got a little impatient waiting for the version that included the Uptime Kuma hook to arrive in various distributions package repositories so ended up building it from source on all computers. This was a lengthy process, and borgmatic isn't very portable, so I wanted to make something that had to features I needed, in a single portable binary. Norg was the outcome of this. ## Contact For any issues, please raise an issue here. Otherwise, I can be contacted via the fediverse at [@paul@notnull.space](https://notnull.space/@paul).