39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Usage: sudo ./restore.sh gitea_dump_*.sql gitea_data_*.tar.gz
|
|
set -euo pipefail
|
|
|
|
SQL_DUMP="${1:?provide the .sql dump as first argument}"
|
|
DATA_ARCHIVE="${2:?provide the data .tar.gz as second argument}"
|
|
|
|
GITEA_HOME="/var/lib/gitea"
|
|
GITEA_USER="gitea"
|
|
DB_NAME="gitea"
|
|
DB_USER="gitea"
|
|
|
|
echo "[1/5] Stopping gitea..."
|
|
systemctl stop gitea
|
|
|
|
echo "[2/5] Waiting for postgres..."
|
|
until sudo -u postgres psql -c '\q' 2>/dev/null; do sleep 1; done
|
|
|
|
echo "[3/5] Restoring database..."
|
|
sudo -u postgres psql -c "DROP DATABASE IF EXISTS ${DB_NAME};"
|
|
sudo -u postgres psql -c "CREATE DATABASE ${DB_NAME} OWNER ${DB_USER};"
|
|
sudo -u postgres psql -d "$DB_NAME" < "$SQL_DUMP"
|
|
echo " done."
|
|
|
|
echo "[4/5] Restoring gitea data..."
|
|
# data/gitea from the docker volume -> /var/lib/gitea
|
|
tar xzf "$DATA_ARCHIVE" --strip-components=2 -C "$GITEA_HOME" ./data/gitea
|
|
|
|
# ssh host keys -> /var/lib/gitea/ssh
|
|
mkdir -p "$GITEA_HOME/ssh"
|
|
tar xzf "$DATA_ARCHIVE" --strip-components=1 -C "$GITEA_HOME/ssh" ./ssh
|
|
|
|
chown -R "$GITEA_USER":"$GITEA_USER" "$GITEA_HOME"
|
|
echo " done."
|
|
|
|
echo "[5/5] Starting gitea..."
|
|
systemctl start gitea
|
|
systemctl status gitea --no-pager
|