@gerblins/hobgerblin v0.1.3
Hobgerblin
Hobgerblin is a server for easing automated backups across multiple server.
Config
Configs are specified in YAML. There are 3 primary components to any config: storage, backups, and server.
Keys
storage
The storage config contains all the possible storage backends that can be backed up to.
backups
The backups config contains all the information required for a backup including the file name and storage backend. The storage key should correspond to a storage config. You can either specify filename or defaultFilename. defaultFilename allows you to specify the filename when you POST the file to the server.
server
The server config has the configuration for the HTTP/HTTPS servers
Example
storage:
test-s3:
backend: "s3"
config:
endpoint: "s3.us-west-001.backblazeb2.com"
credentials:
accessKeyId: "accessKeyId"
secretAccessKey: "secretAccessKey"
bucket: "bucket-name"
test-fs:
backend: "fs"
baseDir: "/tmp"
backups:
tests3:
filename: "test_{{date}}_{{time}}.jpg"
storage: "test-s3"
testfs:
defaultFilename: "test_{{date}}_{{time}}.jpg"
storage: "test-fs"
server:
http:
port: 5000
https:
port: 8443
options:
key: ssl/key.pem
cert: ssl/cert.pemSending files
To backup a file simply POST a file to http(s)://{{server_name}}/backup/{{key}} or http(s)://{{server_name}}/backup/{{key}}/{{filename}} if you've set a defaultFilename for this backup. The key is the key of the backups config e.g. testfs would be http://localhost:5000/backup/testfs/filename.tar.
Example script
#!/bin/sh
curl -X POST --data-binary @backup.tar https://localhost:8443/backup/testfs/backup.tar