mirror of
https://codeberg.org/Sevichecc/forgejo-backup-script.git
synced 2025-04-30 05:09:29 +08:00
27 lines
No EOL
790 B
Bash
27 lines
No EOL
790 B
Bash
#!/bin/bash
|
|
set -e
|
|
source ./.env
|
|
|
|
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
|
|
echo "(${TIMESTAMP}) Starting backup process"
|
|
|
|
echo "1. Stopping containers"
|
|
docker compose -f ${FORGEJO_DIR}/docker-compose.yml down
|
|
|
|
echo "2. Backing up configuration and forgejo folder"
|
|
tar -czvf ${BACKUP_DIR}/forgejo-${TIMESTAMP}.tar.gz -C ${FORGEJO_DIR} forgejo docker-compose.yml
|
|
|
|
echo "3. Backing up Postgres database"
|
|
DB_CONTAINER=$(docker ps -aqf "name=forgejo-db-1")
|
|
docker exec -i ${DB_CONTAINER} pg_dump -U forgejo forgejo > ${BACKUP_DIR}/forgejo-${TIMESTAMP}.sql
|
|
|
|
echo "4. Removing old backups"
|
|
find ${BACKUP_DIR} -mtime +7 -exec rm -rf {} \;
|
|
|
|
echo "5. Upload to remote"
|
|
./duplicacy.sh
|
|
|
|
echo "6. Restarting containers"
|
|
docker compose -f ${FORGEJO_DIR}/docker-compose.yml up -d
|
|
|
|
echo "Backup completed!" |