#!/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}"