# 🚀 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` — сертификат 👉 Не перепутай расширения 🚀