Установка и обновление
Команды, порядок поднятия, миграции, откаты.
Период 23.08–07.09.2025 — Bedolaga v2.0.x–2.2.x, Remnawave 2.1.x
- Каноничное обновление (до 2.5.x):
docker compose down && docker compose pull && docker compose up -d && docker compose logs -fпруф;.envтолько приdown→upпруф;down -vтрёт базы. - Сборка из исходников:
build: .вместоimage:пруф; автоустановщикinstall_bot.shпруф;git pull origin main && make reloadпруф;make help/up/down/reloadпруф. - Подготовка:
mkdir -p ./logs ./data ./data/backups ./data/referral_qr && chmod -R 755 ./logs ./data && sudo chown -R 1000:1000 ./logs ./dataпруф. - Panel/Node:
bash <(curl -fsSL https://cc.watchcats.ru/install-remnanode.sh)пруф; Ansible iphizic/remna-node пруф; reverse-proxy eGamesAPI/remnawave-reverse-proxy пруф. - Первичная настройка: Админ панель → Подписки → Управление серверами → Синхронизация; затем Remnawave → Синхронизация пруф.
Период 12.11.2025–01.01.2026 — Bedolaga v2.7–2.9.4, Remnawave 2.3–2.4
Remnawave панель
cd /opt/remnawave && docker compose pull remnawave && docker compose down && docker compose up -d && docker compose logs -f
cd /opt/remnanode && docker compose pull remnanode && docker compose down && docker compose up -dпруф Бекап обязателен; 2.3.0 требует ноды 2.3.0. Для нод pull, не build
пруф.
Bedolaga бот — команды
cd /root/remnawave-bedolaga-telegram-bot && git pull origin main && make reload
# или (обязательно --build):
git pull origin main && docker compose down && docker compose up -d --build && docker compose logs -f
# make reload-follow — с логамипруф При Your local changes ... docker-compose.yml → stash/скачать оригинал
пруф; если make нет — docker compose down && docker compose up -d --build
пруф; после правок локалей/лого — ребилд
пруф.
Бот+панель на одном сервере
docker-compose.local.ymlпруф;REMNAWAVE_API_URL=http://remnawave:3000в Docker-сети пруф; вне сети — домен пруф.
docker network create remnawave_network
docker network connect remnawave_network remnawave
docker network connect remnawave_network remnawave_botmkdir -p ./logs ./data ./data/backups ./data/referral_qr
chmod -R 755 ./logs ./data
sudo chown -R 1000:1000 ./logs ./dataАвтоустановщики
DigneZzZ/remnawave-scripts, Capybara-z/RemnaSetup, xxphantom/remnawave-installer, eGamesAPI/remnawave-reverse-proxy (3 мин) пруф, wrx861/bedolaga_auto_install пруф, DonMatteoVPN/Reshala-Remnawave-Bedolaga (оценка ёмкости) пруф.
Миграция/бекап
- distillium/remnawave-backup-restore
пруф; с postgres 18 — вручную
пруф; восстановление «очистить и восстановить» → рестарт
пруф; бэкапы во вкладке «Бэкапы»
пруф;
scp -r <dir> user@ip:<dir>пруф; 3x-ui: «пользователи переносятся, подписки нет» пруф; SFTPpostgres_data+ скрытые.envпри остановленных докерах пруф. - VPS: 4/4/60GB/1Gbit для 100–200 юзеров + 4–5 нод пруф; мин 2/4, идеал 4/8 пруф.
Период 09.02–13.03.2026 — Bedolaga v3.9–3.32, Remnawave 2.6.x, Remnawave-admin 2.x
Bedolaga Bot
cd /opt/remnawave-bedolaga-telegram-bot
git pull origin main
docker compose down
docker compose up -d --build
docker compose logs -fС dev-ветки:
git pull
git fetch origin
git checkout -b dev origin/devпруф. Обратно git checkout main
пруф. Миграции поэтапно: 2.9.3/3.7.0/3.11 → 3.14 → 3.15.1 → ласт
пруф. uv.lock перегенерация:
docker run --rm -it -v "$PWD:/app" -w /app python:3.13-slim sh -lc 'pip install -U uv && uv lock'Бэкап БД:
docker exec remnawave_bot_db pg_dump -Fc -U postgres remnawave_bot > backup_$(date +%Y%m%d_%H%M%S).dump
docker exec -i remnawave_bot_db pg_restore -U postgres -d remnawave_bot --clean --if-exists < backup_XXXXXXXX_XXXXXX.dumpBedolaga Cabinet
cd /opt/bedolaga-cabinet && git pull origin main && docker compose down && docker compose up -d --build && docker compose logs -fdocker pull ghcr.io/bedolaga-dev/bedolaga-cabinet:latest
docker create --name tmp_cabinet ghcr.io/bedolaga-dev/bedolaga-cabinet:latest
docker cp tmp_cabinet:/usr/share/nginx/html ./cabinet-dist
docker rm tmp_cabinetПериод 16.03–06.04.2026 — Remnawave 2.7.x (breaking), Bedolaga v3.33–3.45
- Канон бота:
cd /root/remnawave-bedolaga-telegram-bot; git pull origin main; git fetch --tags && git checkout vX.Y.Z; make reloadпруф;cd /opt/remnawave-bedolaga-telegram-bot && git pull origin main && docker compose down && docker compose up -d --build && docker compose logs -fпруф;docker builder prune -a -f && docker compose down && docker compose build --no-cache && docker compose up -dпруф; откатgit fetch --tags; git checkout v3.45.0; docker compose down && docker compose build --no-cache && docker compose up -dпруф (нужен alembic downgrade пруф). - Порог миграций: <3.15.1 → сначала 3.15.1 (Alembic), потом last пруф; с 2.9.3 → 3.15.1 → last пруф; 2.9→3.0.0→3.10→3.20→main пруф.
- Первый старт:
mkdir -p ./logs ./data ./data/backups ./data/referral_qr; chmod -R 755 ./logs ./data; sudo chown -R 1000:1000 ./logs ./dataпруф. - Кабина:
cd /opt/bedolaga-cabinet && git pull origin main && docker compose down && docker compose up -d --buildпруф; docker-образghcr.io/bedolaga-dev/bedolaga-cabinet:latest→ tmp_cabinet → /srv/cabinet → nginx reload пруф;npm run build && cd /opt/caddy && docker compose down && docker compose up -d --buildпруф; порядок caddy down→bot down→build bot→up bot→caddy пруф. - Порядок/сети: одна docker-сеть, запуск панель→сабка→бот→nginx пруф; кабину вне РФ пруф; 443 панель → 8443 кабина пруф.
- Перенос/бэкап: distillium/remnawave-backup-restore, DigneZzZ/remnawave-scripts
пруф;
pg_dump -Fc -U remnawave_user remnawave_bot > backup.dump; pg_restore -U remnawave_user -d remnawave_bot --clean --if-exists < dumpпруф.
Период 06–25.04.2026 — Bedolaga v3.45–3.52, Remnawave-admin 2.9–2.11
# Бот:
cd /opt/remnawave-bedolaga-telegram-bot && git pull origin main && docker compose down && docker compose up -d --build && docker compose logs -f
# Кабинет:
cd /opt/bedolaga-cabinet && git pull origin main && npm run build && cd /opt/caddy && docker compose down && docker compose up -d --build && docker compose logs -fgit pull && make up # [id=339984](https://t.me/c/2941121338/339984)
git pull && make reload # [id=370102](https://t.me/c/2941121338/370102)
docker compose down && git stash && git pull && make up # [id=391078](https://t.me/c/2941121338/391078)
sudo docker compose down && docker compose up # [id=371578](https://t.me/c/2941121338/371578) не просто restart!# Права для медиа [id=391620|23.04.2026](https://t.me/c/2941121338/391620)
mkdir -p ./logs ./data ./data/backups ./data/referral_qr
chmod -R 755 ./logs ./data
sudo chown -R 1000:1000 ./logs ./data
mkdir -p uploads/images uploads/videos uploads/thumbnails
sudo chown -R 1000:1000 uploads/- Порядок: сначала 3.15.1, потом последняя пруф; бекап 2.9→3.51 — откат на 3.15.1 пруф.
- Автоудаление:
INACTIVE_USER_DELETE_MONTHS(дефолт 3) пруф;REMNAWAVE_USER_DELETE_MODE=disableпруф. - Включить оплату ТГ старс: .env true + docker compose down && up пруф.
Период 25.04–15.05.2026 — Bedolaga v3.49–3.55, Cabinet 1.49–1.52
Минимальный .env бота (Frist) пруф
BOT_TOKEN=
ADMIN_IDS=
REMNAWAVE_API_URL=
REMNAWAVE_API_KEY=
POSTGRES_DB=
POSTGRES_USER=
POSTGRES_PASSWORD=Остальное закомментировать, чтобы править из админки бота пруф. «У тебя енв должен быть строк на 20 в идеале» пруф.
Права на директории Bedolaga пруф
mkdir -p ./logs ./data ./data/backups ./data/referral_qr
chmod -R 755 ./logs ./data
sudo chown -R 1000:1000 ./logs ./data
mkdir -p uploads/images uploads/videos uploads/thumbnails
sudo chown -R 1000:1000 uploads/Установка с нуля — живой разбор пруф (11.05)
make upпадает на старом docker → обновить:sudo curl -fsSL https://get.docker.com | shdocker composeнедоступен на старом compose → использоватьdocker-compose up -d(и НЕ вводить—buildс длинным тире — «No such service: —build»)- pydantic
MULENPAY_SHOP_ID: Input should be a valid integer→ в .env поставить 0 или закомментировать неиспользуемые платёжки; правило: «читай строку в ошибке, ищи её в .env через Ctrl+W, ставь 0 или комментируй» - daemon не запущен →
sudo systemctl start docker(перезагрузка не обязательна) - правильная пересборка:
docker compose down && docker compose up -d --build && docker compose logs -f -t; с чистым кешем:docker builder prune -a -f && docker compose build --no-cache - изменения .env НЕ применяются рестартом ремны — нужна полная пересборка бота (
--build), «бот не увидит изменений в апи панели без полной пересборки» - саблинк: если в ремне SUBDOMAIN без
/api/sub, бот выдаёт/api/sub/...; пусть бот выдаёт голый домен — тоже работает
Обновление бота
Канонически — git pull
пруф: git pull origin main && docker compose up -d --build.
На dev-ветку
пруф (данные БД и .env сохраняются; вернуться — git checkout main):
git pull
git fetch origin
git checkout -b dev origin/devЧерез тег пруф:
git checkout tags/v3.54.0При git pull «3 раза нифига» → checkout на тег
пруф.
Обновление кабинета пруф
git pull origin main # + пересборкаВне докера — «читать доку, качаешь и пересобираешь статику». Для 1.50→1.52 нужно docker compose pull + сборка, иначе last-modified остаётся прежним
пруф. Образ: cabinet-dist
пруф. Обновление: скачать новый образ и закинуть в srv-папку (docker compose up -d --build)
пруф.
Порядок поднятия компонентов (важно!) пруф
cd /opt/remnawave/ && docker compose up -d
cd /opt/remnawave/subscription && docker compose up -d
cd /root/remnawave-bedolaga-telegram-bot && docker compose up -d
cd /root/bedolaga-cabinet && docker compose up -d
cd /opt/remnawave/angie && docker compose up -dОстановка — наоборот (от последнего к первому). Последним всегда ребутать nginx/angie после пересборки бота и обновления.
Remnawave: сброс superadmin пруф
docker exec -it remnawave cli
# enable password authentication → задаём пароль
# затем docker compose down && up -d на серве с ремнойНоды: обновление после 2.7.4 пруф
cd /opt/remnanode
# в docker-compose.yml добавить cap_add: [NET_ADMIN]
cd /opt/remnanode && docker compose pull remnanode && docker compose down && docker compose up -d && docker compose logs -fПотом ребутнуть панель (ноды стартуют через панель).
Установка ноды
- Официально: docs.rw/remnawave-node пруф
- Готовый скрипт: DigneZzZ/remnawave-scripts · README_RU.md пруф
- Case211/remnanode-install пруф
- Токены Node Agent можно сгенерить «на все ноды сразу одним файлом» (fleet), но агент всё равно нужен; есть скрипт автоустановщика агента из админки; Ansible можно пруф
- eGames-скрипт для прода не рекомендуют: «Вот даже сам егеймс пишет, ну не юзайте для прода вы его» пруф; «у меня оригинальный просто правил что надо» пруф; «Установка ремны = ctrl c ctrl v (docker-compose)» пруф
Решала: установка
wget -O install.sh https://raw.githubusercontent.com/DonMatteoVPN/Reshala-Remnawave-Bedolaga/main/install.sh \
&& bash install.sh \
&& reshalaпруф Скрипт продаётся в топике /30933 (платная поддержка).
Прочие команды обслуживания
docker images prune— диск заполняется при каждом обновлении пруф--buildпосле правок env обязателен приdocker compose up -dпруфdocker logs -f remnawave_bot;docker compose logs -f bot(перейти в папку с compose.yml) пруф; имя контейнера может быть простоbot, а неremnawave_botпруф- Алиас обновления пруф:
cat ~/.bashrc | grep bedolaga
echo 'alias bedolaga-update="/opt/bedolaga-scripts/bedolaga-update.sh"' >> ~/.bashrc && source ~/.bashrc- Логи при старте: базовый порядок Redis, DB, Bot; логи через log.rw пруф; ссылка для логов https://log.rw/QgWljylF пруф
- Перенос бота: база + бекап (
remnawave_bot_pg.tar.gz), env перенести пруф; «Сделать бэкапы на старом сервере. Накатить на новом» пруф; проксирование не забыть пруф - Remnawave-monitor обновление пруф:
cd /opt/remnawave-monitor
sudo systemctl stop remnawave-monitor
sudo git pull origin main
sudo npm install --omit=dev
sudo systemctl start remnawave-monitorПериод 16.05–05.06.2026 — Bedolaga v3.56–3.58, Remnawave-admin 2.14
- Обновление бота пруф:
git pull && docker compose down && docker compose build --no-cache && docker compose up -d && docker compose logs -f- Обновление кабинета + бота пруф:
cd /opt/bedolaga-cabinet && git pull origin main && docker compose down && docker compose up -d --build && docker compose logs -f
cd /opt/remnawave-bedolaga-telegram-bot/ && git pull origin main && docker compose down && docker compose up -d --build && docker compose logs -f- Обновление бота
git pull && make reloadпруф. - Обновление 3.53→3.56: ручной бэкап Redis+БД (автобекап tar.zip с паролем, проверить не пустой) пруф пруф.
- Перенос бота на другой сервер: бэкапы .env + БД → залить в новую инсталляцию пруф.
- После изменения .env —
down && up -d, рестарт не подтягивает пруф пруф пруф. - pg_dump ошибка
role "postgres" does not exist— не та роль у бота пруф:
docker exec remnawave_bot_db pg_dump -Fc -U postgres remnawave_bot > backup_$(date +%Y%m%d_%H%M%S).dumpПериод 07–26.06.2026 — Bedolaga 3.60–3.61, Subscription-page 7.2.5/7.2.6
Subscription Page
cd /opt/remnawave/subscription && docker compose pull && docker compose down && docker compose up -d && docker compose logs -fБот
cd remnawave-bedolaga-telegram-bot && docker compose down && git pull origin main && docker compose up -d --buildпруф — после локалей: docker compose build bot && docker compose up -d bot
пруф
Кабинет
cd /opt/bedolaga-cabinet && docker compose pull && docker compose up -dпруф — удалить /srv/cabinet, взять /cabinet-dist из образа, пересоздать пруф
Логи ноды
docker exec -it remnanode tail -f /var/log/supervisor/xray.out.log | grep -- "->"Xray-core ручное обновление
mkdir -p /opt/remnanode/custom-xray && cd /opt/remnanode/custom-xray
apt update && apt install unzip -y
wget https://github.com/XTLS/Xray-core/releases/download/v26.6.1/Xray-linux-64.zip
unzip -o Xray-linux-64.zip
nano /opt/remnanode/docker-compose.yml # volumes: - '/opt/remnanode/custom-xray/xray:/usr/local/bin/xray:ro'
cd /opt/remnanode && docker compose down && docker compose up -dПериод 26.06–08.07.2026 — Remnawave 2.8.0, Bedolaga v3.61–3.62, Cabinet 1.59
- Remnawave панель:
cd /opt/remnawave
docker compose pull
docker compose up -d
docker compose logs -f --tail=100
# вариант с down:
cd /opt/remnawave && docker compose pull && docker compose down && docker compose up -d && docker compose logs -fНе обновляет выше 2.7.4 при
docker compose pullесли основная ветка не переключена пруфПосле обновления 2.8.0: все сервера пропали в Happ — известная проблема пруф; Happ не хочет работать адекватно на 2.8.0 remnanode, в INCY ок пруф
Bedolaga Bot:
cd remnawave-bedolaga-telegram-bot && docker compose down && git pull origin main && docker compose up -d --buildcd /путь/до/бедолаги
git pull --ff-only origin main
make reloadЕсли давно не обновлялся —
git pull --ff-onlyи резервная копия пруфОбновлять панель и бота вместе — одно без другого не работает (2.7→2.8) пруф
Bedolaga Cabinet:
cd /opt/bedolaga-cabinet
docker compose pull
docker compose up -ddocker pull ghcr.io/bedolaga-dev/bedolaga-cabinet:latest
docker rm -f tmp_cabinet 2>/dev/null || true
rm -rf /tmp/cabinet-dist
mkdir -p /tmp/cabinet-dist
docker create --name tmp_cabinet ghcr.io/bedolaga-dev/bedolaga-cabinet:latest
docker cp tmp_cabinet:/usr/share/nginx/html/. /tmp/cabinet-dist/
docker rm tmp_cabinet
sudo rsync -a --delete /tmp/cabinet-dist/ /srv/cabinet/
rm -rf /tmp/cabinet-distПереезд на новый сервер (панель+бот+кабина):
rsync -avr— самый эффективный, 15 минут пруф пруф пруф; ansible пруф пруф; рекомендация: панель и бота на отдельные сервера пруфСкрипты установки:
Период 08–20.07.2026 — Remnawave 2.8.1, Bedolaga v3.62–3.64, Cabinet 1.61
Bedolaga Bot
- Каноническая команда обновления
09.07.26:
cd /путь/к/remnawave-bedolaga-telegram-bot git pull origin main docker compose pull docker compose up -d --build - Если после обновления Remnawave до 2.8 бот «не видит обнову» — обновить бота вручную пруф.
- Тактика: лучше обновляться постепенно от версии к версии (можно попросить нейронку написать скрипт), но иногда прокатывает и сразу 09.07.26. «Обновляться можно сразу до последней; бэкапы наше всё; были версии, которые ломались» 14.07.26.
- Установка бедолаги:
docker compose up -d --build11.07.26. - Ручное редактирование env по SSH:
nano .envв директории бота, путь вида/opt/remnawave-bedolaga-...(зависит от того, куда ставил) 19.07.26. - После правок env — перезапустить контейнер, иначе бот показывает «Бот не настроен» при верных env 13.07.26; там же спрашивали про API на 8080.
- Логи бота:
docker compose logs -f— сервис называется неremnawave_bot, а как вdocker-compose.yml09.07.26. - Перезапуск контейнера при обходе бага бэкапов:
docker restart remnawave_bot11.07.26. - ИИ-помощь: «Кодекс мне за 10 минут обновил все ноды, панель под 2.8.0 прод с дева перенёс и бота обновил»
пруф. Если что-то не взлетело — смотреть документацию Remnawave (очень подробная)
пруф; сама
docs.rwиз РФ без ВПН не открывается 14.07.26.
Caddy / reverse-proxy (для панели и бота)
- Caddy у Bedolaga идёт в докере — перезапускать в докере [id=840807|09.07.2026; тот же блок повторяется как копирайт-гайд
11.07.26]:
cd /opt/reverse-proxy docker compose exec caddy caddy validate --config /etc/caddy/Caddyfile docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile docker compose logs -f caddy - nginx: не держать 80 порт открытым (кроме момента обновления сертификатов) — «80 он нах не нужен» 20.07.26.
- nginx-фикс для xhttp poll-эндпоинта (проброс слэша, без пересборки ядра/клиента)
19.07.26:
location /api/v4/media/session/poll { error_page 418 = @xhttp_poll_legacy; if ($arg_sid = "") { return 418; } rewrite ^/api/v4/media/session/poll$ /api/v4/media/session/poll/ break; proxy_pass http://127.0.0.1:10085; } - Критика типового «блогерского» гайда (certbot + remnanode)
19.07.26: сертификаты в
/opt/certbot/certsвместо стандартного/etc/letsencrypt; крон на renew каждое 28-е число вместо ежедневного запуска (Let's Encrypt рекомендует 1–2 раза в день, запуск каждый час не нагружает сервер); связкаremnanodeчерезdocker compose down/upненадёжна; «скрипт в 90 дней сломается». Крон-строка из гайда (дословно) пруф:0 5 * * 0 ufw allow 80 && /usr/bin/certbot renew --quiet && ufw delete allow 80 && ufw reload && cd /opt/remnanode && docker compose down && docker compose up >> /usr/local/remnawave_reverse/cron_jobs.log 2>&1
Remnawave — операции в панели
- Все конфиги юзеров лежат в панели; нода поднимается за 3 минуты (максимум 5), логи отдельно пруф. Бэкап ноды — только логи: «Все конфиги в панели лежат же» 11.07.26.
- Шаблоны Xray:
Настройки → Шаблоны XRAY— добавить шаблон с конфигом и роутингом, подключить через панель 19.07.26. То же в другой формулировке: «Шаблоны → xray json», там же собирается сводка (JSON-роутинг вместо глючного happ-роутинга) 09.07.26. - happ routing отключается/чистится в панели:
Панель > Настройки > Подписка > happ routing— удалить всё и сохранить 19.07.26. - Подпись под нодой — это поле
descriptionв Remnawave 15.07.26; как поменять надпись внизу кабинета (типа «Основные сервера») — тоже полеdescriptionв настройках хоста 19.07.26; чтобы она отображалась в Happ — нужна платная сабка Happ пруф. - Коэффициент трафика на ноде:
Управление → нода → коэффициент трафика → 0(трафик не считается) — рабочий способ не съедать лимит юзера на не-БС нодах [id=879142, 873704|15.07.2026; пруф. - Массовый перевыпуск подписок при смене домена саб-ссылки: массовые действия → «отозвать подписку» (
POST /api/users/bulk/revoke-subscription), либо попросить юзеров импортировать заново 20.07.26. - Удаление подписки в кабинете отключает юзера в панели — ожидаемое поведение 20.07.26.
- Нельзя отредактировать раздел клиентов в конфиге ноды через панель (например добавить
reversetag вclients) — надо править конфиг на самой ноде 15.07.26:"clients": [ { "id": "ac04551d-6ebf-4685-86e2-17c12491f7f4", "flow": "xtls-rprx-vision", "reverse": { "tag": "reverse-out" } } ] - Правила ответов (response rules) в панели — пример кастомного правила под клиент STEALTHNET
18.07.26:
{ "name": "STEALTHNET App", "description": "STEALTHNET VPN client (xray + sing-box for hysteria/TUN). Serve XRAY_JSON so hysteria nodes are included.", "enabled": true, "operator": "AND", "conditions": [ { "headerName": "user-agent", "operator": "REGEX", "value": "^STEALTHNET", "caseSensitive": false } ], "responseType": "XRAY_JSON" } - Кнопка «Канал/Бот» в ремне добавляется через кастомные заголовки (headers) 18.07.26.
- Секреты нод: общие для всех нод на одной панели, между панелями разные; ротации секретов при переиспользовании нет — зафиксирован случай, когда docker-compose новой ноды отработал на активной ноде 13.07.26. Бедолага-бот держит как минимум три панельных секрета; панель секреты между нодами не обновляет пруф.
- Автонастройка selfsteal: появится возможность загружать свои шаблоны или выбирать стандартные 14.07.26.
- Лого VPN у бота — файл
vpn_logo.pngв папке бота 18.07.26. - Уведомления бота в супергруппу: кидаешь сообщение в топик, сохраняешь ссылку — id топика в конце ссылки
t.me/c/2941121338/52/<id>14.07.26.
Период 20–31.07.2026 — Bedolaga v3.66/3.67 + Cabinet 1.64 (рекурренты Platega/Lava)
- Бот от Bedolaga требует установленную панель Remnawave 22.07.26; установка панели — по докам docs.rw 22.07.26.
- Обновление кабинета (в директории кабинета):30.07.26
docker compose pull && docker compose up -d --build - Бот v3.66/v3.67: обновлять бот и кабинет вместе (кабинет v1.64.0 ↔ бот v3.67.0) пруф.
- Спеки под панель: 2 vCPU AMD Ryzen 9 5950X, 4 GB DDR4, 120 GB NVMe SSD 30.07.26; «нужно хотя бы 4 ГБ ОЗУ» пруф; «для панели пофик, что угодно подойдёт» пруф; «ОВХ для панели» пруф.
- «До 100 юзеров пофиг, если панель и сабка на ОВХ» 22.07.26.
- Docker-инструмент проверки детекта DPI:
docker run --rm -it --pull=always ghcr.io/runnin4ik/dpi-detector:latest21.07.26.
Период 31.07–09.08.2026 — Remnawave 3.0.0 (ломающий), Bedolaga v4.0.0, Cabinet 1.65
Обновление бота до v4.0.0 (Remnawave 3.0) пруф
.env: TRAFFIC_EXCLUDED_USER_UUIDS → TRAFFIC_EXCLUDED_USER_IDS, временно GRACE_ACCESS_MODE=drain
# Бот (в папке с ботом!)
git pull
docker compose build bot
docker compose stop bot
docker compose run --rm bot alembic upgrade head
docker compose run --rm bot python -m scripts.backfill_remnawave_ids # dry-run
docker compose run --rm bot python -m scripts.backfill_remnawave_ids --apply # запись
docker compose up -d bot # именно up -d, restart не перечитает .env
docker compose logs -f bot
# Кабинет (bedolaga-cabinet)
git pull
docker compose build cabinet
docker compose up -d cabinet
docker compose logs -f cabinet
# Грейс — в последнюю очередь
docker compose run --rm bot python -m app.tools.grace_access restore-all --apply
# вернуть рабочий GRACE_ACCESS_MODE, затем docker compose up -d botОбновление кабинета пруф
docker compose pull && docker compose up -d --buildОткат ноды на 2.8.0 пруф
cd /opt/remnanode && sed -i -E 's#remnawave/node:[A-Za-z0-9._-]+#remnawave/node:2.8.0#g' docker-compose.yml && docker compose pull remnanode && docker compose up -d --force-recreate remnanode && docker inspect remnanode --format 'Установленный образ: {{.Config.Image}}' && docker compose logs --tail=50 remnanodeВременный патч бота для Remnawave 3.0 (до выхода v4.0) пруф
cd /opt/bedolaga
# Бэкап:
cp app/external/remnawave_api.py app/external/remnawave_api.py.bak
# Патч (одна строка):
sed -i "s/uuid=user_data\['uuid'\],/uuid=str(user_data['id']),/" app/external/remnawave_api.py
# Убедиться что заменилось (должна быть ровно одна строка):
grep -n "uuid=str(user_data\['id'\])" app/external/remnawave_api.py
# Пересобрать:
docker compose up -d --build bot
sleep 15
# После всех проверок можно закрепить
cd /opt/bedolaga
git checkout -b local/remnawave-3.0-compat
git add app/external/remnawave_api.py
git commit -m "patch: use numeric id as uuid for Remnawave 3.0 compat"Обновление ENV для Remnawave 3.0+ пруф
- Новый .env переменная:
### Secrets ### APP_SECRET=change_me— это JWT AUTH SECRET (старыйJWT_API_TOKENS_SECRETпереименован) - Семпл: remnawave/backend · .env.sample
- Миграция ENV: https://log.rw/NEWENV
Период 09–20.08.2026 — Remnawave 3.2.3/3.3.0, Bedolaga v4.1.0 (GeoCheck)
Remnawave панель
- Скрипт eGames:
bash <(curl -Ls https://raw.githubusercontent.com/eGamesAPI/remnawave-reverse-proxy/refs/heads/main/install_remnawave.sh)пруф репо eGamesAPI/remnawave-reverse-proxy; пруф
- Обновление панели:
cd /opt/remnawave && docker compose pull && docker compose down && docker compose up -d && docker compose logs -fпруф; только сервис: docker compose pull remnawave && docker compose down && docker compose up -d && docker compose logs -f
пруф
- Порядок: панель -> ноды пруф пруф; бекап 2.8.1->3.2 пруф
- Vpnutka хостинг: https://panel.vpnutka.ru пруф; доки https://docs.rw пруф; защита docs.rw/panel-security пруф
Remnawave нода
curl -fsSL https://get.docker.com | sh
mkdir -p /opt/remnanode && cd /opt/remnanode
docker run --rm ghcr.io/xtls/xray-core x25519
openssl rand -hex 8
ufw allow 22 && ufw allow 443 && ufw allow 80 && ufw allow 2222 && ufw enable
nano /opt/remnanode/docker-compose.yml
docker compose up -d && docker compose logs -f -tBedolaga/Cabinet
docker exec remnawave_bot_db pg_dump -Fc -U remnawave_user remnawave_bot > backup_$(date +%Y%m%d_%H%M%S).dump
docker exec -i remnawave_bot_db pg_restore -U remnawave_user -d remnawave_bot --clean --if-exists < backup_20260403_225103.dump- Cabinet:
git pull; git fetch --all; git reset --hard origin/main; git checkout v1.65.0; docker compose build --no-cache; docker compose down && docker compose up -d-> UI v1.47.0 баг пруф - Cabinet patch v1.64.0:
git clone https://github.com/BEDOLAGA-DEV/bedolaga-cabinet.git; cd bedolaga-cabinet; git fetch --tags; git switch --detach v1.64.0; git apply --check telegram-init-data-fix.patch; git apply telegram-init-data-fix.patch- Связь панель-нода: socks5 danted, netbird, Cloudflare M2M пруф пруф; WG промежуток пруф
- Asnumbers автораскур: API хостеров/доменов, XDP, NodeMan пруф пруф
Период 20–23.08.2026 — совместимость 2.8.x/3.2.2, GHCR, пин-борда
- Обновление Remnawave до 3.x — официальный гайд «как обновиться до новой версии»: в
.envпоменять версию с2на3, затем запустить команду из документации (f.docs.rw); доп. канал с логами/релизами:https://t.me/remnalogпруф. - Секция документации по установке ноды (в чате обозвана «секретной версией установки ноды»):
d.docs.rw/install/remnawave-nodeпруф. - Апгрейд панели 2.7.4 → 2.8.0 — выполняется вместе с апгрейдом бота пруф.
- Панельные скрипты DenFiord (
https://github.com/DenFiord/remnascripts, Ubuntu 22.04/24.04/26.04): «скрипты для очень быстрой и беспонтовой установки Selfsteal, ноды и WARP»; состав: SelfSteal (32 русскоязычных сайта-заглушки, Nginx/Traefik, Reality-маршрут), RemnaNode Manager (установка ноды через Panel API или SECRET_KEY, неограниченное количество параллельных нод на одном VPS, автоопределение хостинга/страны, поддержка Remnawave Panel 2.6–3.3), RemnaWARP (включая per-node, HealthGuard), RemnaPsiphon (локальный SOCKS-туннель, circuit breaker) пруф. - Канонический фикс-приём при обновлении: если панель 2.8.0 — не оставлять тег ноды
latest, а зафиксировать версию в compose (см. «Docker-compose») пруф, пруф. - Бэкап/восстановление панели: скрипт
https://github.com/distillium/remnawave-backup-restore(выводRemnawave backup 4.0.0) пруф, пруф.