From 1e5d9d2777788714611e5b498098b3db92fbd4a4 Mon Sep 17 00:00:00 2001 From: Reisber Date: Wed, 1 Apr 2026 23:41:31 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20remna.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Reisber --- remna.md | 177 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 124 insertions(+), 53 deletions(-) diff --git a/remna.md b/remna.md index cb89fe3..7e2fa10 100644 --- a/remna.md +++ b/remna.md @@ -1,66 +1,127 @@ -# Установка ремны на основную ноду и дальнейшая настройка её агентов -## Установка панели на сервер -### Установка докер -``` +# 🖥 Установка Remna на основную ноду и настройка агентов + +--- + +## 🟢 Установка панели на сервер + +### 1️⃣ Установка Docker + +```bash sudo curl -fsSL https://get.docker.com | sh ``` -### Установка обязательных файлов -Создадим директорию проекта -``` + +--- + +### 2️⃣ Установка обязательных файлов + +Создаем директорию проекта: + +```bash mkdir /opt/remnawave && cd /opt/remnawave ``` -Закурлим необходимые файлы -``` + +Скачиваем необходимые файлы: + +```bash curl -o docker-compose.yml https://raw.githubusercontent.com/remnawave/backend/refs/heads/main/docker-compose-prod.yml ``` -###После чего на конфигурим .env файл -Создадим секретные ключи используя и пароли используя + +--- + +### 3️⃣ Настройка `.env` файла + +Создаем секретные ключи и пароли: + +```bash +sed -i "s/^JWT_AUTH_SECRET=.*/JWT_AUTH_SECRET=$(openssl rand -hex 64)/" .env \ + && sed -i "s/^JWT_API_TOKENS_SECRET=.*/JWT_API_TOKENS_SECRET=$(openssl rand -hex 64)/" .env + +sed -i "s/^METRICS_PASS=.*/METRICS_PASS=$(openssl rand -hex 64)/" .env \ + && sed -i "s/^WEBHOOK_SECRET_HEADER=.*/WEBHOOK_SECRET_HEADER=$(openssl rand -hex 64)/" .env ``` -sed -i "s/^JWT_AUTH_SECRET=.*/JWT_AUTH_SECRET=$(openssl rand -hex 64)/" .env && sed -i "s/^JWT_API_TOKENS_SECRET=.*/JWT_API_TOKENS_SECRET=$(openssl rand -hex 64)/" .env -sed -i "s/^METRICS_PASS=.*/METRICS_PASS=$(openssl rand -hex 64)/" .env && sed -i "s/^WEBHOOK_SECRET_HEADER=.*/WEBHOOK_SECRET_HEADER=$(openssl rand -hex 64)/" .env -``` -Так-же рекомендуется изменить дефолтный Postgress пароль -``` -pw=$(openssl rand -hex 24) && sed -i "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$pw/" .env && sed -i "s|^\(DATABASE_URL=\"postgresql://postgres:\)[^\@]*\(@.*\)|\1$pw\2|" .env -``` -После этого необходимо открыть .env файл и отредактировать следующие переменные + +Рекомендуется изменить пароль PostgreSQL: + +```bash +pw=$(openssl rand -hex 24) \ + && sed -i "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$pw/" .env \ + && sed -i "s|^\(DATABASE_URL=\"postgresql://postgres:\)[^\@]*\(@.*\)|\1$pw\2|" .env ``` + +Открой `.env` и отредактируй: + +```text FRONT_END_DOMAIN SUB_PUBLIC_DOMAIN ``` -**FRONT_END_DOMAIN** is the domain name where the panel will be accessible. Enter your domain name here. Example: `panel.yourdomain.com.` -**SUB_PUBLIC_DOMAIN** – for now, just enter your panel domain and add /api/sub to the end. -Example: `panel.yourdomain.com/api/sub.` -(скорее всего файл находится `cd /opt/remnawave && nano .env`) -### Дальше запускаем контейнеры + +- **FRONT_END_DOMAIN** — домен панели, например: `panel.yourdomain.com` +- **SUB_PUBLIC_DOMAIN** — обычно тот же домен + `/api/sub`, например: `panel.yourdomain.com/api/sub` + +Файл находится здесь: + +```bash +cd /opt/remnawave && nano .env ``` + +--- + +### 4️⃣ Запуск контейнеров + +```bash docker compose up -d && docker compose logs -f -t ``` -## После этого необходимо настроить reverse=proxy -### Я выбираю Nginx, но в оффициальной доке много других вариантов -Установим необходимые зависимости -``` + +--- + +## 🔄 Настройка Reverse Proxy + +### 1️⃣ Установка зависимостей + +```bash apt-get install cron socat ``` -Потом установим acme.sh -``` + +Установка acme.sh: + +```bash curl https://get.acme.sh | sh -s email=EMAIL && source ~/.bashrc ``` -(можно использовать любую почту, но лучше использовать валидную) -### Далее создадим папку для сертов -`mkdir -p /opt/remnawave/nginx && cd /opt/remnawave/nginx` -И выпускаем сертификат (НЕ ИСПОЛЬЗУЙТЕ ДОМЕННЫЕ ЗОНЫ .ru .su .рф) +> Используй валидный email. + +--- + +### 2️⃣ Создание папки для сертификатов + +```bash +mkdir -p /opt/remnawave/nginx && cd /opt/remnawave/nginx ``` -acme.sh --issue --standalone -d 'DOMAIN' --key-file /opt/remnawave/nginx/privkey.key --fullchain-file /opt/remnawave/nginx/fullchain.pem --alpn --tlsport 8443 -``` -Тут, вообще, я-бы даже рекомендовал вам попробовать сделать это через Nginx proxy manager (на случай если вы будете разворачивать другие сервисы на сервере) -Так или иначе, конфигурим nginx + +Выпуск сертификата (не используйте `.ru`, `.su`, `.рф`): + +```bash +acme.sh --issue --standalone -d 'DOMAIN' \ + --key-file /opt/remnawave/nginx/privkey.key \ + --fullchain-file /opt/remnawave/nginx/fullchain.pem \ + --alpn --tlsport 8443 ``` + +> Можно использовать Nginx Proxy Manager для других сервисов. + +--- + +### 3️⃣ Конфигурация Nginx + +Открываем файл: + +```bash cd /opt/remnawave/nginx && nano nginx.conf ``` -И суём туда следующий конфиг -``` + +Вставляем следующий конфиг: + +```nginx upstream remnawave { server remnawave:3000; } @@ -81,21 +142,21 @@ server { proxy_set_header X-Forwarded-Proto $scheme; } - # SSL Configuration (Mozilla Intermediate Guidelines) - ssl_protocols TLSv1.2 TLSv1.3; + # SSL Configuration + ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; - ssl_session_tickets off; + ssl_session_tickets off; ssl_certificate "/etc/nginx/ssl/fullchain.pem"; ssl_certificate_key "/etc/nginx/ssl/privkey.key"; ssl_trusted_certificate "/etc/nginx/ssl/fullchain.pem"; - ssl_stapling on; - ssl_stapling_verify on; - resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s; - resolver_timeout 2s; + ssl_stapling on; + ssl_stapling_verify on; + resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s; + resolver_timeout 2s; # Gzip Compression gzip on; @@ -135,12 +196,18 @@ server { ssl_reject_handshake on; } ``` -После чего создаём docker-compose файл -``` + +--- + +### 4️⃣ Создание Docker Compose для Nginx + +```bash cd /opt/remnawave/nginx && nano docker-compose.yml ``` -И пихаем туда следующее -``` + +Вставляем: + +```yaml services: remnawave-nginx: image: nginx:1.28 @@ -162,7 +229,11 @@ networks: driver: bridge external: true ``` -Запускаем контейнеры и идём на наш домен в браузере -``` + +--- + +### 5️⃣ Запуск Nginx контейнера + +```bash docker compose up -d && docker compose logs -f -t ``` \ No newline at end of file