mirror of
https://git.reisber.space/Reisber/Personal
synced 2026-04-03 15:38:38 +00:00
297 lines
5.6 KiB
Markdown
297 lines
5.6 KiB
Markdown
# 🚀 RemnaNode Setup Guide
|
||
|
||
> Полное руководство по установке и настройке ноды RemnaNode с использованием Docker
|
||
> Минимум боли — максимум эстетики ✨
|
||
|
||
---
|
||
|
||
## 📦 Установка Docker
|
||
|
||
Если Docker ещё не установлен — выполни:
|
||
|
||
```bash
|
||
sudo curl -fsSL https://get.docker.com | sh
|
||
```
|
||
|
||
---
|
||
|
||
## 📁 Шаг 1 — Создание директории проекта
|
||
|
||
```bash
|
||
mkdir /opt/remnanode && cd /opt/remnanode
|
||
```
|
||
|
||
---
|
||
|
||
## ➕ Шаг 2 — Добавление Node
|
||
|
||
1. Перейди в:
|
||
```
|
||
Nodes → Management
|
||
```
|
||
2. Нажми кнопку **➕ Add Node**
|
||
3. Заполни форму
|
||
|
||
### ⚠️ Важно
|
||
|
||
- Поле **Node Port** используется **только** для внутренних API-запросов между Panel и Node
|
||
- Этот порт **не используется** нигде больше
|
||
|
||
После заполнения:
|
||
- Нажми **Copy docker-compose.yml**
|
||
|
||
---
|
||
|
||
## 🧾 Шаг 3 — Создание `docker-compose.yml`
|
||
|
||
```bash
|
||
cd /opt/remnanode && nano docker-compose.yml
|
||
```
|
||
|
||
Вставь скопированную конфигурацию и сохрани файл.
|
||
|
||
---
|
||
|
||
## ▶️ Шаг 4 — Запуск контейнеров
|
||
|
||
```bash
|
||
docker compose up -d && docker compose logs -f -t
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Шаг 5 — Завершение настройки
|
||
|
||
1. Вернись в панель
|
||
2. Нажми **Next**
|
||
3. Выбери нужный **Config Profile**
|
||
4. Нажми **Create**
|
||
|
||
---
|
||
|
||
## 🔒 Важно
|
||
|
||
> Обязательно закрой `NODE_PORT` в firewall
|
||
> Разреши доступ **только для IP панели**
|
||
|
||
---
|
||
|
||
# ⚙️ Advanced Usage
|
||
|
||
---
|
||
|
||
## 🌐 Кастомные GeoSite и GeoIP
|
||
|
||
### ⚠️ Важно
|
||
|
||
- Названия `*-zapret.dat` — **пример**
|
||
- Категория `:zapret` — **пример**
|
||
- Реальные значения могут отличаться
|
||
|
||
### Серверный routing
|
||
|
||
- Влияет **только на сервер**
|
||
- **Не влияет** на DIRECT подключения клиентов
|
||
|
||
---
|
||
|
||
## 📂 Подключение файлов
|
||
|
||
Монтируй файлы в контейнер:
|
||
|
||
```yaml
|
||
services:
|
||
remnanode:
|
||
container_name: remnanode
|
||
hostname: remnanode
|
||
image: remnawave/node:latest
|
||
restart: always
|
||
network_mode: host
|
||
environment:
|
||
- NODE_PORT=2222
|
||
- SECRET_KEY="supersecretkey"
|
||
volumes:
|
||
- './geo-zapret.dat:/usr/local/share/xray/geo-zapret.dat'
|
||
- './ip-zapret.dat:/usr/local/share/xray/ip-zapret.dat'
|
||
```
|
||
|
||
### ⚠️ Осторожно
|
||
|
||
- **Не** монтируй всю директорию
|
||
- Монтируй **только отдельные файлы**
|
||
|
||
---
|
||
|
||
## 🧠 Использование в Xray config
|
||
|
||
```json
|
||
"routing": {
|
||
"rules": [
|
||
{
|
||
"type": "field",
|
||
"domain": [
|
||
"ext:geo-zapret.dat:zapret"
|
||
],
|
||
"inboundTag": [
|
||
"VLESS_TCP_REALITY"
|
||
],
|
||
"outboundTag": "NOT_RU_OUTBOUND"
|
||
},
|
||
{
|
||
"type": "field",
|
||
"ip": [
|
||
"ext:ip-zapret.dat:zapret"
|
||
],
|
||
"inboundTag": [
|
||
"VLESS_TCP_REALITY"
|
||
],
|
||
"outboundTag": "NOT_RU_OUTBOUND"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
# 📜 Логи Node
|
||
|
||
## 📁 Подключение логов
|
||
|
||
```yaml
|
||
services:
|
||
remnanode:
|
||
container_name: remnanode
|
||
hostname: remnanode
|
||
image: remnawave/node:latest
|
||
restart: always
|
||
network_mode: host
|
||
environment:
|
||
- NODE_PORT=2222
|
||
- SECRET_KEY="supersecretkey"
|
||
volumes:
|
||
- '/var/log/remnanode:/var/log/remnanode'
|
||
```
|
||
|
||
---
|
||
|
||
## 🧠 Конфиг Xray
|
||
|
||
```json
|
||
"log": {
|
||
"error": "/var/log/remnanode/error.log",
|
||
"access": "/var/log/remnanode/access.log",
|
||
"loglevel": "warning"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 📂 Создание директории
|
||
|
||
```bash
|
||
mkdir -p /var/log/remnanode
|
||
```
|
||
|
||
---
|
||
|
||
## 🔄 Logrotate
|
||
|
||
### Установка
|
||
|
||
```bash
|
||
sudo apt update && sudo apt install logrotate
|
||
```
|
||
|
||
### Конфиг
|
||
|
||
```bash
|
||
nano /etc/logrotate.d/remnanode
|
||
```
|
||
|
||
Вставь:
|
||
|
||
```conf
|
||
/var/log/remnanode/*.log {
|
||
size 50M
|
||
rotate 5
|
||
compress
|
||
missingok
|
||
notifempty
|
||
copytruncate
|
||
}
|
||
```
|
||
|
||
### Проверка
|
||
|
||
```bash
|
||
logrotate -vf /etc/logrotate.d/remnanode
|
||
```
|
||
|
||
---
|
||
|
||
# 🔐 SSL сертификаты для Xray
|
||
|
||
## ⚠️ Внимание
|
||
|
||
> Это нужно **только если используешь TLS**
|
||
> Например: `VLESS-Vision-TLS`
|
||
> Для Reality — **не требуется**
|
||
|
||
---
|
||
|
||
## 📂 Монтирование сертификатов
|
||
|
||
```yaml
|
||
remnawave:
|
||
image: remnawave/backend:latest
|
||
container_name: 'remnawave'
|
||
hostname: remnawave
|
||
restart: always
|
||
ports:
|
||
- '127.0.0.1:3000:3000'
|
||
env_file:
|
||
- .env
|
||
networks:
|
||
- remnawave-network
|
||
volumes:
|
||
- '/opt/remnawave/nginx:/var/lib/remnawave/configs/xray/ssl'
|
||
depends_on:
|
||
remnawave-db:
|
||
condition: service_healthy
|
||
remnawave-redis:
|
||
condition: service_healthy
|
||
```
|
||
|
||
---
|
||
|
||
## ℹ️ Как это работает
|
||
|
||
- Panel автоматически читает файлы
|
||
- Отправляет сертификаты на Node
|
||
- Используется директория:
|
||
|
||
```
|
||
/var/lib/remnawave/configs/xray/ssl/
|
||
```
|
||
|
||
---
|
||
|
||
## 🧠 Использование в Xray
|
||
|
||
```json
|
||
"certificates": [
|
||
{
|
||
"keyFile": "/var/lib/remnawave/configs/xray/ssl/privkey.key",
|
||
"certificateFile": "/var/lib/remnawave/configs/xray/ssl/fullchain.pem"
|
||
}
|
||
]
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ Важно
|
||
|
||
- `.key` — приватный ключ
|
||
- `.pem` — сертификат
|
||
|
||
👉 Не перепутай расширения 🚀 |