💽 backman
a backup-manager app for Cloud Foundry
Supported databases
- MariaDB / MySQL
- PostgreSQL
- MongoDB
- Elasticsearch
Usage
- pick a Cloud Foundry provider
I'd suggest the Swisscom AppCloud
- create a service instance of an S3-compatible object storage
- modify the provided
manifest.yml
, specify your service instance(s)
- configure backman, either through the provided
config.json
or by the environment variable BACKMAN_CONFIG
(see manifest.yml
)
- deploy the app
- enjoy!
Configuration
backman can be configured via JSON configuration, either with a file config.json
in it's root directory, or by the environment variable BACKMAN_CONFIG
.
Values configured in BACKMAN_CONFIG
take precedence over config.json
.
By default backman will assume useful values for all services/backups unless configured otherwise.
These here are the default values backman will use if not configured via JSON:
{
"log_level": "info",
"logging_timestamp": false,
"s3": {
"service_label": "dynstrg",
},
"services": {
...
"<service-instance-name>": {
"schedule": "<random-second> <random-minute> <random-hour> * * *",
"timeout": "1h",
"retention": {
"days": 31,
"files": 100
}
}
...
}
}
backman can be secured through HTTP basic auth, with username and password provided either in the JSON configuration
{
"username": "http_basic_auth_user_abc",
"password": "http_basic_auth_password_xyz"
}
or through the specific environment variables BACKMAN_USERNAME
and BACKMAN_PASSWORD
(see manifest.yml
)
Possible JSON properties:
log_level
: optional, specifies log output level, can be info, warn, debug, error
logging_timestamp
: optional, enable timestamping log output, not needed when deployed on Cloud Foundry
username
: optional, HTTP basic auth username
password
: optional, HTTP basic auth password
s3.service_label
: optional, defines which service label backman will look for to find the S3-compatible object storage
s3.bucket_name
: optional, bucket to use on S3 storage, backman will use service-instance/binding-name if not configured
services.<service-instance>.schedule
: optional, defines cron schedule for running backups
services.<service-instance>.timeout
: optional, backman will abort a running backup/restore if timeout is exceeded
services.<service-instance>.retention.days
: optional, specifies how long backman will keep backups on S3 at maximum for this service instance
services.<service-instance>.retention.files
: optional, specifies how maximum number of files backman will keep on S3 for this service instance
Screenshots
- shows all bound service instances
- display service, trigger backups/restores