DockUp is a Ruby dockerized backup solution that supports different backends like: S3, Azure blob storage, Google cloud storage, local filesystem, etc.
Currently DockUp is supporting backups to:
Soon and incrementally we will be adding other backends like Azure blob storage, Google cloud storage and other backends. Feel free to contribute to DockUp and add more backends.
Examples here are for AWS S3 backend, other examples for different backends could be found in these links:
docker run \
-e "AWS_ACCESS_KEY_ID=your_aws_key_id" \
-e "AWS_SECRET_ACCESS_KEY=your_aws_secret_key" \
-e "AWS_REGION=eu-west-1" \
-e "AWS_BUCKET=some-bucket-name" \ # this should be unique and valid (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)
-e "DockUpBackend=s3" \
-e "DockUpSrc=/backup" \
-v some_local_path_to_backup:/backup \ # some_local_path_to_backup could be a folder or file
tareksamni/dockup:latest
version: '3'
services:
backup:
image: tareksamni/dockup:latest
environment:
- AWS_ACCESS_KEY_ID=your_aws_key_id
- AWS_SECRET_ACCESS_KEY=your_aws_secret_key
- AWS_REGION=eu-west-1
- AWS_BUCKET=some-bucket-name # this should be unique and valid (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.ht
- DockUpBackend=s3
- DockUpSrc=/backup
volumes:
- some_local_path_to_backup:/backup # some_local_path_to_backup could be a folder or file
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: backup
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: backup
image: tareksamni/dockup:tareksamni
volumeMounts:
- name: shared-data
mountPath: /backup
env:
- name: AWS_ACCESS_KEY_ID
value: "your_aws_key_id"
- name: AWS_SECRET_ACCESS_KEY
value: "your_aws_secret_key"
- name: AWS_REGION
value: "eu-west-1"
- name: AWS_BUCKET
value: "some-bucket-name" # this should be unique and valid(https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.ht
- name: DockUpBackend
value: "s3"
- name: DockUpSrc
value: "/backup"
restartPolicy: OnFailure
We encourage you to contribute to DockUp! Below you can find our guideline on how to contribute to DockUp. Join us!
Trying to report a possible security vulnerability in DockUp? Please reach out to tarek.samni before you submit the vulnerability publicly. At DockUp we are committed to do the same with any security vulnerabilities detected in other open source projects during the development of DockUp.
- Make sure you are not breaking current test suite!
- Each contribution should include its tests, no code is merged without tests to cover it.
- Keep contributions as small as possible in terms of code change. Open multiple contributions for different parts of DockUp.
- Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback.
- Check issues before you start working on a new feature or a bug to make sure you are not wasting your time/effort on a duplicate contribution.
- Make sure that you contribution works out of the box in a docker environment. Contribute to the docker setup if needed to accommodate your change/contribution.
Follow the dev environment setup and contribution guidelines here.
You can find DockUp's code of conduct here.
DockUp is released under the MIT License.