Skip to content

Instantly share code, notes, and snippets.

@bst27
Created August 18, 2020 07:15
Show Gist options
  • Save bst27/1bf1590c5ec0b8b1c331d2a03e237894 to your computer and use it in GitHub Desktop.
Save bst27/1bf1590c5ec0b8b1c331d2a03e237894 to your computer and use it in GitHub Desktop.
A Gitea backup script for Docker: It creates a .zip backup of Gitea running inside Docker and moves the backup file to the current working directory.
#!/bin/bash
# This script creates a .zip backup of gitea running inside docker and copies the backup file to the current working directory
echo "Creating gitea backup inside docker containter ..."
docker exec -u git -it -w /tmp $(docker ps -qf "name=gitea_server_1") bash -c '/app/gitea/gitea dump -c /data/gitea/conf/app.ini --file /tmp/gitea-dump.zip'
echo "Copying backup file from the container to the host machine ..."
docker cp $(docker ps -qf "name=gitea_server_1"):/tmp/gitea-dump.zip /tmp
echo "Removing backup file in container ..."
docker exec -u git -it -w /tmp $(docker ps -qf "name=gitea_server_1") bash -c 'rm /tmp/gitea-dump.zip'
echo "Renaming backup file ..."
BACKUPFILE=gitea-dump-$(date +"%Y%m%d%H%M").zip
mv /tmp/gitea-dump.zip $BACKUPFILE
echo "Backup file is available: "$BACKUPFILE
echo "Done."
@cairoapcampos
Copy link

@umer936
Copy link

umer936 commented Nov 16, 2022

@thelittlefox
Copy link

Since we are using docker, how about backup the top gitea folder of host wich contains docker-compose.yml using tar -cvfp and restore using tar -pzxvf?
With -p parameter we can keep permission of files.

host file tree is:

$ sudo tree -L 4
.
└── gitea
    ├── docker-compose.yml
    └── gitea
        ├── git
        │   ├── lfs
        │   └── repositories
        ├── gitea
        │   ├── attachments
        │   ├── avatars
        │   ├── conf
        │   ├── gitea.db
        │   ├── home
        │   ├── indexers
        │   ├── jwt
        │   ├── log
        │   ├── packages
        │   ├── queues
        │   ├── repo-archive
        │   ├── repo-avatars
        │   ├── sessions
        │   └── tmp
        └── ssh
            ├── ssh_host_dsa_key
            ├── ssh_host_dsa_key.pub
            ├── ssh_host_ecdsa_key
            ├── ssh_host_ecdsa_key.pub
            ├── ssh_host_ed25519_key
            ├── ssh_host_ed25519_key.pub
            ├── ssh_host_rsa_key
            └── ssh_host_rsa_key.pub

@marshyon
Copy link

marshyon commented Sep 5, 2023

nice one, this was very usefull, thanks for posting

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment