A central configuration for commands, especially backup commands. https://backy.cybershell.xyz/
Go to file
Andrew e2f4553303 A runnable command
- Added backup sub-command
- Added better parsing for config file
- Basis for notifications, no running after a command yet
- Updated docs and added License
2023-01-17 00:55:28 -06:00
.vscode add module 2022-10-13 12:07:16 -05:00
cmd A runnable command 2023-01-17 00:55:28 -06:00
examples A runnable command 2023-01-17 00:55:28 -06:00
pkg A runnable command 2023-01-17 00:55:28 -06:00
backy.go A runnable command 2023-01-17 00:55:28 -06:00
go.mod A runnable command 2023-01-17 00:55:28 -06:00
go.sum A runnable command 2023-01-17 00:55:28 -06:00
License A runnable command 2023-01-17 00:55:28 -06:00
PLAN.md first commit 2022-10-13 12:03:36 -05:00
README.md A runnable command 2023-01-17 00:55:28 -06:00

Backy - an application to manage backups

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

To install: go install git.andrewnw.xyz/CyberShell/backy

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

To run a config: backy backup

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

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