165
remna.md
165
remna.md
@@ -1,66 +1,127 @@
|
|||||||
# Установка ремны на основную ноду и дальнейшая настройка её агентов
|
# 🖥 Установка Remna на основную ноду и настройка агентов
|
||||||
## Установка панели на сервер
|
|
||||||
### Установка докер
|
---
|
||||||
```
|
|
||||||
|
## 🟢 Установка панели на сервер
|
||||||
|
|
||||||
|
### 1️⃣ Установка Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
sudo curl -fsSL https://get.docker.com | sh
|
sudo curl -fsSL https://get.docker.com | sh
|
||||||
```
|
```
|
||||||
### Установка обязательных файлов
|
|
||||||
Создадим директорию проекта
|
---
|
||||||
```
|
|
||||||
|
### 2️⃣ Установка обязательных файлов
|
||||||
|
|
||||||
|
Создаем директорию проекта:
|
||||||
|
|
||||||
|
```bash
|
||||||
mkdir /opt/remnawave && cd /opt/remnawave
|
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
|
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
|
Рекомендуется изменить пароль PostgreSQL:
|
||||||
```
|
|
||||||
Так-же рекомендуется изменить дефолтный Postgress пароль
|
```bash
|
||||||
```
|
pw=$(openssl rand -hex 24) \
|
||||||
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
|
&& sed -i "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$pw/" .env \
|
||||||
```
|
&& sed -i "s|^\(DATABASE_URL=\"postgresql://postgres:\)[^\@]*\(@.*\)|\1$pw\2|" .env
|
||||||
После этого необходимо открыть .env файл и отредактировать следующие переменные
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Открой `.env` и отредактируй:
|
||||||
|
|
||||||
|
```text
|
||||||
FRONT_END_DOMAIN
|
FRONT_END_DOMAIN
|
||||||
SUB_PUBLIC_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.
|
- **FRONT_END_DOMAIN** — домен панели, например: `panel.yourdomain.com`
|
||||||
Example: `panel.yourdomain.com/api/sub.`
|
- **SUB_PUBLIC_DOMAIN** — обычно тот же домен + `/api/sub`, например: `panel.yourdomain.com/api/sub`
|
||||||
(скорее всего файл находится `cd /opt/remnawave && nano .env`)
|
|
||||||
### Дальше запускаем контейнеры
|
Файл находится здесь:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /opt/remnawave && nano .env
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4️⃣ Запуск контейнеров
|
||||||
|
|
||||||
|
```bash
|
||||||
docker compose up -d && docker compose logs -f -t
|
docker compose up -d && docker compose logs -f -t
|
||||||
```
|
```
|
||||||
## После этого необходимо настроить reverse=proxy
|
|
||||||
### Я выбираю Nginx, но в оффициальной доке много других вариантов
|
---
|
||||||
Установим необходимые зависимости
|
|
||||||
```
|
## 🔄 Настройка Reverse Proxy
|
||||||
|
|
||||||
|
### 1️⃣ Установка зависимостей
|
||||||
|
|
||||||
|
```bash
|
||||||
apt-get install cron socat
|
apt-get install cron socat
|
||||||
```
|
```
|
||||||
Потом установим acme.sh
|
|
||||||
```
|
Установка acme.sh:
|
||||||
|
|
||||||
|
```bash
|
||||||
curl https://get.acme.sh | sh -s email=EMAIL && source ~/.bashrc
|
curl https://get.acme.sh | sh -s email=EMAIL && source ~/.bashrc
|
||||||
```
|
```
|
||||||
(можно использовать любую почту, но лучше использовать валидную)
|
|
||||||
|
|
||||||
### Далее создадим папку для сертов
|
> Используй валидный email.
|
||||||
`mkdir -p /opt/remnawave/nginx && cd /opt/remnawave/nginx`
|
|
||||||
И выпускаем сертификат (НЕ ИСПОЛЬЗУЙТЕ ДОМЕННЫЕ ЗОНЫ .ru .su .рф)
|
---
|
||||||
|
|
||||||
|
### 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
|
|
||||||
```
|
Выпуск сертификата (не используйте `.ru`, `.su`, `.рф`):
|
||||||
Тут, вообще, я-бы даже рекомендовал вам попробовать сделать это через Nginx proxy manager (на случай если вы будете разворачивать другие сервисы на сервере)
|
|
||||||
Так или иначе, конфигурим nginx
|
```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
|
cd /opt/remnawave/nginx && nano nginx.conf
|
||||||
```
|
```
|
||||||
И суём туда следующий конфиг
|
|
||||||
```
|
Вставляем следующий конфиг:
|
||||||
|
|
||||||
|
```nginx
|
||||||
upstream remnawave {
|
upstream remnawave {
|
||||||
server remnawave:3000;
|
server remnawave:3000;
|
||||||
}
|
}
|
||||||
@@ -81,7 +142,7 @@ server {
|
|||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
# SSL Configuration (Mozilla Intermediate Guidelines)
|
# SSL Configuration
|
||||||
ssl_protocols TLSv1.2 TLSv1.3;
|
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_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;
|
||||||
|
|
||||||
@@ -135,12 +196,18 @@ server {
|
|||||||
ssl_reject_handshake on;
|
ssl_reject_handshake on;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
После чего создаём docker-compose файл
|
|
||||||
```
|
---
|
||||||
|
|
||||||
|
### 4️⃣ Создание Docker Compose для Nginx
|
||||||
|
|
||||||
|
```bash
|
||||||
cd /opt/remnawave/nginx && nano docker-compose.yml
|
cd /opt/remnawave/nginx && nano docker-compose.yml
|
||||||
```
|
```
|
||||||
И пихаем туда следующее
|
|
||||||
```
|
Вставляем:
|
||||||
|
|
||||||
|
```yaml
|
||||||
services:
|
services:
|
||||||
remnawave-nginx:
|
remnawave-nginx:
|
||||||
image: nginx:1.28
|
image: nginx:1.28
|
||||||
@@ -162,7 +229,11 @@ networks:
|
|||||||
driver: bridge
|
driver: bridge
|
||||||
external: true
|
external: true
|
||||||
```
|
```
|
||||||
Запускаем контейнеры и идём на наш домен в браузере
|
|
||||||
```
|
---
|
||||||
|
|
||||||
|
### 5️⃣ Запуск Nginx контейнера
|
||||||
|
|
||||||
|
```bash
|
||||||
docker compose up -d && docker compose logs -f -t
|
docker compose up -d && docker compose logs -f -t
|
||||||
```
|
```
|
||||||
Reference in New Issue
Block a user