58 lines
1.6 KiB
Bash
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}"
|