Sign inSign up

bertrandmartel/gitlab-backup

By bertrandmartel

•Updated almost 8 years ago

Backup script for Gitlab with CRON and docker support

Image
0

282

bertrandmartel/gitlab-backup repository overview

⁠Gitlab Backup script

Build Status

A dockerized Gitlab backup script to :

  • retrieve all projects for a specific user in a CRON every day
  • backup it
  • remove too old backup (> retaining time)

⁠Configuration

Edit vars-template (environment variables) :

Variable namedescriptiondefault value
KEY_SSH_RSASSH RSA key
KEY_ECDSASSH ECDSA key
KEY_ED25519SSH ED25519 key
PRIVATE_TOKENtoken used to call Gitlab API (personnal access token)
GITLAB_USERNAMEgitlab username for retrieving individual repository
GITLAB_PASSWORDgitlab password for retrieving individual repository
GITLAB_DOMAINGitlab server domain namegitlab.com
GITLAB_PORTport to be used for Gitlab API443
GITLAB_SSH_PORTssh port22
PROJECT_MAX_NUMBERmax number of repos to be backed up300
BACKUP_DIRdirectory when backup projects are transfered/home/backup
RETAIN_TIMEretaining time in days30

KEY_SSH_RSA,KEY_ECDSA and KEY_ED25519 should be specified to prevent man-in-the-middle attack, you can get those with :

ssh-keyscan -p $GITLAB_SSH_PORT $GITLAB_DOMAIN

PRIVATE_TOKEN is a personnal access token

⁠Standalone script

source vars-template
./backup.sh

⁠Docker

docker run -e "GITLAB_DOMAIN=my.gitlab.com" \
           -e "KEY_SSH_RSA=ssh-rsa XXXXXXX" \
           -e "KEY_ECDSA=ecdsa-sha2-nistp256 XXXXXX" \
           -e "KEY_ED25519=ssh-ed25519 XXXXXXXXXXXXXXx" \
           -e "PRIVATE_TOKEN=xZqsf-azsdllqmoaze" \
           -e "GITLAB_USERNAME=john" \
           -e "GITLAB_PASSWORD=changeme" \
           -v /home/user/backup:/home/backup bertrandmartel/gitlab-backup

⁠Docker-compose

source vars-template
envsubst < docker-compose-template.yml > docker-compose.yml
docker-compose up

⁠Docker-cloud

source vars-template
envsubst < stackfile-template.yml > stackfile.yml
  • create stack
docker-cloud stack crate --name gitlab-backup -f stackfile.yml

Tag summary

Content type

Image

Digest

Size

84.4 MB

Last updated

almost 8 years ago

docker pull bertrandmartel/gitlab-backup