165
remna.md
165
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,7 +142,7 @@ server {
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
# SSL Configuration (Mozilla Intermediate Guidelines)
|
||||
# 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;
|
||||
|
||||
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user