Mirror for Volume backups
Go to file
2021-02-04 03:51:47 +01:00
.github/workflows chore(actions): only run docker-build on code changes 2021-02-04 02:28:20 +01:00
cmd/DigitalOceanSnapshotter fix(main): fix sorting of snapshots 2021-02-04 03:51:47 +01:00
.dockerignore chore(Docker): add docker support 2021-02-04 00:30:37 +01:00
.gitignore Initial commit 2021-02-01 22:37:04 +01:00
Dockerfile chore(Docker): add docker support 2021-02-04 00:30:37 +01:00
go.mod feat: initial commit 2021-02-04 00:25:10 +01:00
go.sum feat: initial commit 2021-02-04 00:25:10 +01:00
LICENSE.md Initial commit 2021-02-01 22:37:04 +01:00
README.md chore(README): improve wording 2021-02-04 02:55:20 +01:00

DigitalOcean Snapshotter

Docker Pulls

Simple Digital Ocean Volume 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