A central configuration for commands, especially backup commands. https://backy.cybershell.xyz/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Andrew 1c7515a633
fix: gitea url
1 year ago
.vscode add module 2 years ago
cmd A runnable command 1 year ago
examples A runnable command 1 year ago
pkg small changes, added goreleaser 1 year ago
.gitignore small changes, added goreleaser 1 year ago
.goreleaser.yaml fix: gitea url 1 year ago
License A runnable command 1 year ago
Makefile small changes, added goreleaser 1 year ago
PLAN.md first commit 2 years ago
README.md updated install command 1 year ago
backy.go A runnable command 1 year ago
go.mod fixes 1 year ago
go.sum fixes 1 year ago

README.md

Backy - an application to manage backups

This app is in development, and is currently not stable. Expect core functionality to possiblly break.

Installing

To install:

go install git.andrewnw.xyz/CyberShell/backy@master

This assumes you already have a working Go environment, if not please see this page first.

To run a config:

backy backup

Or to use a specific file: backy backup -c /path/to/file

If you leave the config path blank, the following paths will be searched in order:

  • ./backy.yaml
  • ~/.config/backy.yaml

Create a file at ~/.config/backy.yaml:

commands:
  stop-docker-container:
    cmd: docker
    cmdArgs:
      - compose
      - -f /some/path/to/docker-compose.yaml
      - down
    # if host is not defined, 
    host: some-host 
    env: ~/path/to/env/file
  backup-docker-container-script:
    cmd: /path/to/script
    host: some-host
    env: ~/path/to/env/file
  shell-cmd:
    cmd: rsync
    shell: bash
    cmdArgs:
      - -av some-host:/path/to/data ~/Docker/Backups/docker-data
  hostname:
    cmd: hostname

cmd-configs:
  # this can be any name you want
  cmds-to-run: 
    # all commands have to be defined
    order:
      - stop-docker-container
      - backup-docker-container-script
      - shell-cmd
      - hostname
    notifications:
      - matrix
  hostname:
    order:
      - hostname
    notifications:
      - prod-email

hosts:
  some-host:
    config:
      usefile: true
      user: root
      private-key-path:

logging:
  verbose: true
  file: /path/to/logs/commands.log


notifications:
  prod-email:
    id: prod-email
    type: mail
    host: yourhost.tld
    port: 587
    senderAddress: email@domain.tld
    to:
      - admin@domain.tld
    username: smtp-username@domain.tld
    password: your-password-here
  matrix:
    id: matrix
    type: matrix
    homeserver: your-home-server.tld
    room-id: room-id
    access-token: your-access-token
    user-id: your-user-id

Note, let me know if a path lookup fails due to using Go's STDLib os