Example Configuration

    Below is an example configuration in toml format which can be used as a base for setting up a new norg backup.
    This configuration file can be downloaded here.

    
    # Defines what folders you would like to back up
    source_directories = [
      "/home/me",
      "/opt/other_things"
    ]
    
    # Defines your backup repository/repositories
    [[repositories]]
    label = "LocalBorgBackup"
    path = "/path/to/backup"
    # You can define to backup tool here, default is "borg"
    tool = "borg"
    
    # You can add more repositories of varying types.
    # When defining multiple repositories, a new backup will run for each repository 
    # defined.
    [[repositories]]
    label = "RemoteBorgBase"
    path = "ssh://1234abcd@1234abcd.repo.borgbase.com/./repo"
    tool = "borg"
    
    [[repositories]]
    label = "LocalResticBackup
    path = "/path/to/another/backup"
    
    # You can define restic as a backup tool
    tool = "restic"
    
    # if a repository is append-only, you can tell norg not to try and prune it
    # Note: This does not set the actual repository as append-only, only informs Norg
    # so the prune step does not run which can cause failed notifications with restic
    append_only = true
    
    # Defines encryption information i.e. backup encryption passphrase
    # If a passphrase is not set or is incorrect, borg/restic will prompt you for one 
    # which is likely to cause your backups to not run.
    [encryption]
    # Set a string variable for the passphrase
    encryption_passphrase = "MyVeryS3curePassphrase!"
    
    # Get the passphrase from the result of a command
    # encryption_passcommand = "cat my_passphrase.txt"
    
    # These actions can be configured to run scripts (i.e. back up a database) 
    # at various times throughout the running process
    [actions]
    # "everything" means before or after every possible option for all repositories
    before_everything = ["echo before everything"]
    after_everything = ["echo after everything"]
    # "actions" means before any action, per repository
    before_actions = ["echo before actions"]
    after_actions = ["echo after actions"]
    # before or after the backup process per repository
    before_backup = ["echo before backup"]
    after_backup = ["echo after backup"]
    # before or after the extract process per repository
    before_extract = ["echo before extract"]
    after_extract = ["echo after extract"]
    # before or after the prune process per repository
    before_prune = ["echo before prune"]
    after_prune = ["echo after prune"]
    # before or after the compact process per respository
    before_compact = ["echo before compact"]
    after_compact = ["echo after compact"]
    # before or after the check processs per repository
    before_check = ["echo before check"]
    after_check = ["echo after check"]
    
    # Send a status update to Uptime Kuma
    # more status monitor tools are planned to be supported in the future
    [uptimekuma]
    # The base/push url of your Uptime Kuma monitor - without the query string.
    # The query string will be generated at run time and will change dependant on the state of your backup.
    base_url = "https://uptime.kuma.url/api/push/1234abcd"
    
    # what backup states you wish to send an alert for, defaults to Success, Failure and Running
    states = ["Success","Failure", "Running"]
    
    # Set locations of the borg or restic binaries if you need to.
    # Norg will check some common locations and use the first one it finds, but 
    # if you have them installed in a non-standard location, set that location here
    [binaries]
    borg_bin = "/usr/local/bin/borg"
    restic_bin = "/usr/local/bin/restic"
    
    # Logging configuration - will output to console
    [logging]
    # Log level options are below, each option includes the logs from the one before it
    # "notice", "info", "warn", "error", "fatal", "debug"
    log_level = "info"
    
    # Exclude (or include) files/folders based on filenames or patterns.
    [exclusions]
    # Exclude files or folders matching paths
    excludes = [
      "/etc/file_i_dont_want",
      "/folder_i_dont_want"
    ]
    
    # Put all your exlusions in a plain text file and they can be linked to here
    exclude_file = "/home/me/exclusions.txt"
    
    # Include or Exclude based on patterns (Borg Only)
    # is a direct reference to borg-patterns: https://manpages.debian.org/testing/borgbackup/borg-patterns.1.en.html
    patterns = [
      "/home/*/junk"
    ]
    
    # Or use a patterns file (Borg Only)
    patterns_file = "/home/me/patterns.lst"
    
    
    
    
    

    Help us improve this documentation.

    If you find an error, or think something could be explained better, raise an issue to send your feedback.