fix uninstall
This commit is contained in:
@@ -17,6 +17,20 @@ need_root() {
|
|||||||
[[ $EUID -eq 0 ]] || die "Запускать только от root"
|
[[ $EUID -eq 0 ]] || die "Запускать только от root"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resolve_compose_cmd() {
|
||||||
|
if docker compose version >/dev/null 2>&1; then
|
||||||
|
COMPOSE_CMD=("docker" "compose")
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v docker-compose >/dev/null 2>&1; then
|
||||||
|
COMPOSE_CMD=("docker-compose")
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
echo "Перед удалением самостоятельно удалите подписки в 3DP-MANAGER, чтобы инбунды удалились в панели 3x-ui"
|
echo "Перед удалением самостоятельно удалите подписки в 3DP-MANAGER, чтобы инбунды удалились в панели 3x-ui"
|
||||||
read -r -p "Вы уверены, что хотите удалить? (y/n): " answer
|
read -r -p "Вы уверены, что хотите удалить? (y/n): " answer
|
||||||
|
|
||||||
@@ -39,42 +53,54 @@ PROJECT_DIR="/opt/3dp-manager"
|
|||||||
|
|
||||||
log "Начинаем удаление 3dp-manager"
|
log "Начинаем удаление 3dp-manager"
|
||||||
|
|
||||||
if [[ ! -d "$PROJECT_DIR" ]]; then
|
if [[ -d "$PROJECT_DIR" ]]; then
|
||||||
warn "Директория $PROJECT_DIR не найдена — удалять нечего"
|
cd "$PROJECT_DIR"
|
||||||
exit 0
|
else
|
||||||
|
warn "Директория $PROJECT_DIR не найдена — проверяем Docker-ресурсы по известным именам"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "$PROJECT_DIR"
|
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# DOCKER COMPOSE DOWN
|
# DOCKER COMPOSE DOWN
|
||||||
#################################
|
#################################
|
||||||
if command -v docker >/dev/null 2>&1 && docker compose version >/dev/null 2>&1; then
|
if command -v docker >/dev/null 2>&1; then
|
||||||
if [[ -f docker-compose.yml ]]; then
|
if [[ -d "$PROJECT_DIR" && -f docker-compose.yml ]] && resolve_compose_cmd; then
|
||||||
log "Останавливаем контейнеры 3dp-manager"
|
log "Останавливаем контейнеры 3dp-manager"
|
||||||
docker compose down --volumes --remove-orphans || warn "Ошибка при docker compose down"
|
"${COMPOSE_CMD[@]}" down --volumes --remove-orphans || warn "Ошибка при docker compose down"
|
||||||
else
|
else
|
||||||
warn "docker-compose.yml не найден"
|
warn "docker-compose.yml или Docker Compose не найден — удаляем контейнеры и volumes по известным именам"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
docker rm -f 3dp-postgres 3dp-backend 3dp-frontend >/dev/null 2>&1 || true
|
||||||
|
|
||||||
|
for volume in 3dp-manager_pg_data 3dpmanager_pg_data; do
|
||||||
|
if docker volume inspect "$volume" >/dev/null 2>&1; then
|
||||||
|
log "Удаляем volume $volume"
|
||||||
|
docker volume rm "$volume" >/dev/null 2>&1 || warn "Не удалось удалить volume $volume"
|
||||||
|
fi
|
||||||
|
done
|
||||||
else
|
else
|
||||||
warn "Docker или docker compose не установлен — пропуск"
|
warn "Docker не установлен — пропуск удаления Docker-ресурсов"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# CLEAN IMAGES
|
# CLEAN IMAGES
|
||||||
#################################
|
#################################
|
||||||
log "Удаляем образы 3dp-manager (если есть)"
|
if command -v docker >/dev/null 2>&1; then
|
||||||
|
log "Удаляем образы 3dp-manager (если есть)"
|
||||||
|
|
||||||
docker images --format '{{.Repository}} {{.ID}}' \
|
docker images --format '{{.Repository}} {{.ID}}' \
|
||||||
| grep 3dp-manager \
|
| grep 3dp-manager \
|
||||||
| awk '{print $2}' \
|
| awk '{print $2}' \
|
||||||
| xargs -r docker rmi -f || true
|
| xargs -r docker rmi -f || true
|
||||||
|
fi
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# REMOVE DIRECTORY
|
# REMOVE DIRECTORY
|
||||||
#################################
|
#################################
|
||||||
log "Удаляем $PROJECT_DIR"
|
if [[ -d "$PROJECT_DIR" ]]; then
|
||||||
rm -rf "$PROJECT_DIR"
|
log "Удаляем $PROJECT_DIR"
|
||||||
|
rm -rf "$PROJECT_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# DONE
|
# DONE
|
||||||
|
|||||||
+12
-5
@@ -104,9 +104,10 @@ cleanup_previous_install_data() {
|
|||||||
"${COMPOSE_CMD[@]}" down --volumes --remove-orphans || true
|
"${COMPOSE_CMD[@]}" down --volumes --remove-orphans || true
|
||||||
else
|
else
|
||||||
warn "docker-compose.yml not found. Removing known 3dp-manager containers if they still exist."
|
warn "docker-compose.yml not found. Removing known 3dp-manager containers if they still exist."
|
||||||
docker rm -f 3dp-postgres 3dp-backend 3dp-frontend >/dev/null 2>&1 || true
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
docker rm -f 3dp-postgres 3dp-backend 3dp-frontend >/dev/null 2>&1 || true
|
||||||
|
|
||||||
for volume in 3dp-manager_pg_data 3dpmanager_pg_data; do
|
for volume in 3dp-manager_pg_data 3dpmanager_pg_data; do
|
||||||
if docker volume inspect "$volume" >/dev/null 2>&1; then
|
if docker volume inspect "$volume" >/dev/null 2>&1; then
|
||||||
warn "Removing stale Postgres volume: $volume"
|
warn "Removing stale Postgres volume: $volume"
|
||||||
@@ -323,13 +324,19 @@ case "$ssl_choice" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
3)
|
3)
|
||||||
|
read -rp "Введите домен для панели (например panel.example.com; Enter — использовать IP): " INPUT_HOST
|
||||||
read -rp "Путь к fullchain.pem: " user_cert
|
read -rp "Путь к fullchain.pem: " user_cert
|
||||||
read -rp "Путь к privkey.pem: " user_key
|
read -rp "Путь к privkey.pem: " user_key
|
||||||
if [[ -f "$user_cert" && -f "$user_key" ]]; then
|
if [[ -f "$user_cert" && -f "$user_key" ]]; then
|
||||||
USE_SSL=true
|
USE_SSL=true
|
||||||
CERT_PATH="$user_cert"
|
CERT_PATH="$user_cert"
|
||||||
KEY_PATH="$user_key"
|
KEY_PATH="$user_key"
|
||||||
|
if [ -n "$INPUT_HOST" ]; then
|
||||||
|
UI_HOST="$INPUT_HOST"
|
||||||
|
else
|
||||||
UI_HOST=$(hostname -I | awk '{print $1}')
|
UI_HOST=$(hostname -I | awk '{print $1}')
|
||||||
|
warn "Домен не указан. В итоговом URL будет использован IP: $UI_HOST"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
warn "Файлы не найдены. Переключение на HTTP."
|
warn "Файлы не найдены. Переключение на HTTP."
|
||||||
fi
|
fi
|
||||||
@@ -359,11 +366,11 @@ ADMIN_USER=$(openssl rand -base64 8)
|
|||||||
ADMIN_PASS=$(openssl rand -base64 12)
|
ADMIN_PASS=$(openssl rand -base64 12)
|
||||||
# Определяем ALLOWED_ORIGINS из домена или IP
|
# Определяем ALLOWED_ORIGINS из домена или IP
|
||||||
if [[ -n "${UI_HOST:-}" ]]; then
|
if [[ -n "${UI_HOST:-}" ]]; then
|
||||||
if [[ "$UI_HOST" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
URL_SCHEME="http"
|
||||||
ALLOWED_ORIGINS="http://${UI_HOST}"
|
if [[ "$USE_SSL" == "true" ]]; then
|
||||||
else
|
URL_SCHEME="https"
|
||||||
ALLOWED_ORIGINS="https://${UI_HOST}"
|
|
||||||
fi
|
fi
|
||||||
|
ALLOWED_ORIGINS="${URL_SCHEME}://${UI_HOST}"
|
||||||
else
|
else
|
||||||
ALLOWED_ORIGINS=""
|
ALLOWED_ORIGINS=""
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user