From d898b262e6e4ac835c1273b16a085aca3fd2e287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Wed, 6 May 2026 19:33:03 +0900 Subject: [PATCH] Add web panel installer --- scripts/install_web_panel.sh | 67 ++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 scripts/install_web_panel.sh diff --git a/scripts/install_web_panel.sh b/scripts/install_web_panel.sh new file mode 100644 index 0000000..76502c2 --- /dev/null +++ b/scripts/install_web_panel.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash +set -euo pipefail + +REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +WEB_DIR="${REPO_DIR}/web" +APP_DIR="/opt/virtuality/web" +VENV_DIR="/opt/virtuality/venv" +SERVICE_FILE="/etc/systemd/system/virtuality-web.service" +PORT="${VIRTUALITY_WEB_PORT:-8088}" + +if [[ "$EUID" -ne 0 ]]; then + echo "Ошибка: запусти через sudo: sudo bash scripts/install_web_panel.sh" + exit 1 +fi + +if [[ ! -d "$WEB_DIR" ]]; then + echo "Ошибка: web directory not found: $WEB_DIR" + exit 1 +fi + +apt update +apt install -y python3 python3-venv python3-pip rsync + +mkdir -p /opt/virtuality +rsync -a --delete "$WEB_DIR/" "$APP_DIR/" + +python3 -m venv "$VENV_DIR" +"$VENV_DIR/bin/pip" install --upgrade pip +"$VENV_DIR/bin/pip" install -r "$APP_DIR/requirements.txt" + +cat > "$SERVICE_FILE" </dev/null 2>&1; then + ufw allow "${PORT}/tcp" || true +fi + +SERVER_IP="$(hostname -I | awk '{print $1}')" + +echo "============================================================" +echo "Virtuality Web Panel installed" +echo "============================================================" +echo "URL: http://${SERVER_IP}:${PORT}" +echo "Service: virtuality-web.service" +echo "Status: systemctl status virtuality-web --no-pager" +echo "Logs: journalctl -u virtuality-web -f" +echo "============================================================"