Simple Digital Ocean Volume Backup Service using Snapshots
This Service is supposed to be run as a CronJob every x hours, The recommended way is using the Docker image from topgg/digitaloceansnapshotter
.
It requires following enviroment variables to be set:
DO_TOKEN
- Digital Ocean Access token
DO_VOLUMES
- List of Digital Ocean volume ids seperated by a comma
DO_SNAPSHOT_COUNT
- Amount of snapshots to keep for each volume
Go 1.15
This was designed for usage in Kubernetes but it can technically be run anywhere, an example Kubernetes CronJob manifest running every day could look like this
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: DigitalOceanSnapshotter
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: DigitalOceanSnapshotter
image: topgg/digitaloceansnapshotter
envFrom:
- configMapRef:
name: your-config-map-name
restartPolicy: OnFailure
Note that this uses the latest image which you shouldn't do in prod, use a tag version or commit hash instead
- Godo - DigitalOcean V2 API client library
- Logrus - Logging framework used
- Slack-Go - Slack API client library
We use SemVer for versioning. For the versions available, see the tags on this repository.
- DevYukine @ Top.gg - Initial work - DevYukine
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details