.github/workflows | ||
cmd/DigitalOceanSnapshotter | ||
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE.md | ||
README.md |
DigitalOceanSnapshotter
Simple Digital Ocean Volumes Backup Service using Snapshots
Getting Started
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
Prerequisites
Go 1.15
Deployment
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
Built With
- Godo - DigitalOcean V2 API client library
- Logrus - Logging framework used
- Slack-Go - Slack API client library
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- DevYukine @ Top.gg - Initial work - DevYukine
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details