From d2d3c9174e663864542dc75450d7f5c9c6ca4e61 Mon Sep 17 00:00:00 2001 From: deadcxap Date: Wed, 18 Mar 2026 00:03:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BC=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=8D=D1=85?= =?UTF-8?q?=D0=BE=20=D0=B2=20=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BA=D1=83=20?= =?UTF-8?q?=D0=B8=D0=BD=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- node/remnawave/init.sh | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/node/remnawave/init.sh b/node/remnawave/init.sh index a6d9e4c..f60f772 100644 --- a/node/remnawave/init.sh +++ b/node/remnawave/init.sh @@ -12,38 +12,60 @@ set -euo pipefail +echo "======== переменные =============" SELF_PATH="$(readlink -f "$0" 2>/dev/null || realpath "$0" 2>/dev/null || printf '%s\n' "$0")" - +echo "SELF_PATH = $SELF_PATH" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +echo "SCRIPT_DIR = $SCRIPT_DIR" COMPOSE_FILE="$SCRIPT_DIR/docker-compose.yml" +echo "COMPOSE_FILE = $COMPOSE_FILE" SITE_DIR="$SCRIPT_DIR/site" +echo "SITE_DIR = $SITE_DIR" SITE_BAC_DIR="$SCRIPT_DIR/site_bac" +echo "SITE_BAC_DIR = $SITE_BAC_DIR" CERT_DIR="$SITE_DIR/certs" +echo "CERT_DIR = $CERT_DIR" CERT_FILE="$CERT_DIR/certchain.pem" +echo "CERT_FILE = $CERT_FILE" KEY_FILE="$CERT_DIR/key.pem" +echo "KEY_FILE = $KEY_FILE" ENV_FILE="$SCRIPT_DIR/.env-node" +echo "ENV_FILE = $ENV_FILE" NGINX_TEMPLATE="$SCRIPT_DIR/nginx.conf.template" +echo "NGINX_TEMPLATE = $NGINX_TEMPLATE" NGINX_CONF="$SCRIPT_DIR/nginx.conf" +echo "NGINX_CONF = $NGINX_CONF" LOG_DIR="$SCRIPT_DIR/logs" +echo "LOG_DIR = $LOG_DIR" LOGROTATE_DIR="/etc/logrotate.d" +echo "LOGROTATE_DIR = $LOGROTATE_DIR" LOGROTATE_CONF="$LOGROTATE_DIR/remnanode" +echo "LOGROTATE_CONF = $LOGROTATE_CONF" +echo "=====================" # --- Шаг 1: загрузка случайного шаблона сайта --- TMP_DIR=$(mktemp -d) +echo "TMP_DIR создан = $TMP_DIR" trap 'rm -rf "$TMP_DIR"' EXIT git clone --depth 1 https://github.com/distillium/sni-templates "$TMP_DIR" >/dev/null 2>&1 TEMPLATE_DIR=$(find "$TMP_DIR" -mindepth 1 -maxdepth 1 -type d ! -name '.git' | shuf -n 1) +echo "TEMPLATE_DIR выбран = $TEMPLATE_DIR" +echo "======== копируем сайт =============" if [ -d $SITE_DIR ] && [ "$(ls -A $SITE_DIR 2>/dev/null)" ]; then rm -rf $SITE_BAC_DIR + echo "удалена $SITE_BAC_DIR" mv $SITE_DIR $SITE_BAC_DIR else rm -rf $SITE_DIR + echo "удалена $SITE_BAC_DIR" fi mkdir -p $SITE_DIR cp -R "$TEMPLATE_DIR"/. $SITE_DIR rm -rf $SITE_DIR/.git - +echo "==== ls site dir ====" +ls -alh $SITE_DIR +echo "=====================" # --- Шаг 2: создание докер-сети --- # N=$(awk '/^networks:/,/^[^[:space:]]/{if($1=="name:"){print $2; exit}}' "$COMPOSE_FILE"); N=${N:-proxy} # docker network inspect "$N" >/dev/null 2>&1 || docker network create --driver bridge --attachable "$N" @@ -78,11 +100,14 @@ sed \ "$NGINX_TEMPLATE" > "$NGINX_CONF" # --- Шаг 4: открытие порта только для центрального сервера --- +echo "============ открываем ufw =================" read -rp "IP или домен центрального сервера: " CENTRAL_HOST CENTRAL_IP=$(getent ahosts "$CENTRAL_HOST" | awk '{print $1; exit}') if [ -n "$CENTRAL_IP" ]; then sudo ufw allow from "$CENTRAL_IP" to any port "$NODE_PORT" proto tcp comment "PANEL" && ufw reload fi +echo "=============================" + # --- Шаг 5: запуск docker compose --- docker compose -f "$COMPOSE_FILE" up -d certwardenclient