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 "============================================================"