На странице
  1. База знаний
  2. Панели

Установка и обновление

Команды, порядок поднятия, миграции, откаты.

Пруфов: 231Обновлено 17.09.2026Исходник 18 мин чтения

Период 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_bot

пруф

mkdir -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: «пользователи переносятся, подписки нет» пруф; SFTP postgres_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.dump

пруф

Bedolaga Cabinet

cd /opt/bedolaga-cabinet && git pull origin main && docker compose down && docker compose up -d --build && docker compose logs -f

пруф

docker 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 -f

пруф

git 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 | sh
  • docker 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
  • Кабинет с минимальным env не запускается у части — нужен полный env пруф пруф.

Период 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

09.06.26

Период 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 --build

пруф

cd /путь/до/бедолаги
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 -d

пруф

docker 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 --build 11.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.yml 09.07.26.
  • Перезапуск контейнера при обходе бага бэкапов: docker restart remnawave_bot 11.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.
  • Нельзя отредактировать раздел клиентов в конфиге ноды через панель (например добавить reverse tag в 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.
  • Обновление кабинета (в директории кабинета):
    docker compose pull && docker compose up -d --build
    30.07.26
  • Бот 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:latest 21.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+ пруф

Период 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 пруф

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 -t

пруф; capybara-z пруф

Bedolaga/Cabinet

  • .env + рестарт пруф; триал закомментировать в .env пруф
  • БД дамп:
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) пруф, пруф.