gitea-install/reinstall.sh

58 lines
1.6 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
source "$(dirname "$0")/lib/common.sh"
init_script_dir
check_dependencies
PURGE=false
usage() {
cat <<'EOF'
Использование: ./reinstall.sh [--purge]
Переустановка: остановка, обновление образов, повторный запуск.
--purge Удалить данные перед переустановкой (чистая установка)
EOF
}
while [[ $# -gt 0 ]]; do
case "$1" in
--purge) PURGE=true; shift ;;
-h|--help) usage; exit 0 ;;
*) err "Неизвестный аргумент: $1"; usage; exit 1 ;;
esac
done
if [[ "$PURGE" == true ]]; then
warn "Данные будут удалены. Gitea будет установлена заново."
confirm_or_exit "Продолжить?"
docker compose down -v 2>/dev/null || docker compose down
read -r -a volumes <<< "$(get_volume_names)"
for vol in "${volumes[@]}"; do
docker volume rm "$vol" 2>/dev/null || true
done
else
warn "Контейнеры будут пересозданы. Данные сохранятся."
confirm_or_exit "Продолжить?"
docker compose down
fi
ensure_env
log "Загрузка образов..."
docker compose pull
log "Запуск Gitea..."
docker compose up -d --force-recreate
sleep 5
docker compose ps
# shellcheck disable=SC1091
source .env
log "Переустановка завершена."
log " Web: http://${GITEA_DOMAIN:-localhost}:${GITEA_HTTP_PORT:-3000}"
log " SSH: ssh://git@${GITEA_DOMAIN:-localhost}:${GITEA_SSH_PORT:-2222}"