diff --git a/docs/fast.md b/docs/fast.md index f94541d..4b1bd5d 100644 --- a/docs/fast.md +++ b/docs/fast.md @@ -311,20 +311,74 @@ curl https://icanhazip.com ### Логи ```sh -podman logs -f olcrtc-server # на сервере -podman logs -f olcrtc-client # на клиенте +podman ps --filter name=olcrtc +podman logs -f olcrtc-server-xxxxxxxx # на сервере +podman logs -f olcrtc-client-xxxxxxxx # на клиенте ``` ### Остановить ```sh -podman stop olcrtc-server -podman stop olcrtc-client +podman ps --filter name=olcrtc +podman stop olcrtc-server-xxxxxxxx +podman stop olcrtc-client-xxxxxxxx ``` ### Перезапустить (просто запусти скрипт снова) -Скрипт сам останавливает старый контейнер перед стартом нового. +Скрипты создают новый контейнер с уникальным именем. Если нужно заменить старый инстанс, сначала останови его через `podman stop`, затем запусти скрипт заново. + +--- + +## Обновить уже запущенный инстанс + +Уже запущенный контейнер сам не обновляется: внутри него остаётся бинарник, который был собран на момент запуска. Чтобы перейти на актуальный код из репозитория, останови старый контейнер и запусти скрипт заново. + +### 1. Обновить локальную копию репозитория + +```sh +cd olcrtc +git pull --recurse-submodules +``` + +Это обновляет локальные скрипты `script/srv.sh` и `script/cnc.sh`. Сами скрипты при запуске всё равно клонируют актуальный `master` и собирают бинарник заново. + +### 2. Остановить старый контейнер + +Посмотреть запущенные инстансы: + +```sh +podman ps --filter name=olcrtc +``` + +Остановить нужный сервер или клиент: + +```sh +podman stop olcrtc-server-xxxxxxxx +podman stop olcrtc-client-xxxxxxxx +``` + +Если нужно остановить все olcrtc-контейнеры на машине: + +```sh +podman stop $(podman ps -q --filter name=olcrtc) +``` + +### 3. Запустить заново + +Сервер: + +```sh +./script/srv.sh --no-cache +``` + +Клиент: + +```sh +./script/cnc.sh --no-cache +``` + +`--no-cache` не обязателен, но полезен после обновления: Go-модули и build-cache будут очищены, и бинарник точно соберётся с нуля. При повторном запуске укажи те же `auth`, `transport`, `room ID` и ключ, что были у старого инстанса. Серверный ключ хранится в `~/.olcrtc_key`, поэтому `srv.sh` переиспользует его автоматически. --- diff --git a/docs/manual.md b/docs/manual.md index 08892cb..2af5962 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -327,6 +327,98 @@ curl --socks5-hostname 127.0.0.1:8808 https://icanhazip.com Должен вернуть IP сервера. +--- + +## Обновить бинарник и уже запущенный инстанс + +Запущенный процесс сам не обновляется: он продолжает работать со старым бинарником, даже если репозиторий уже обновлён. Нужно скачать свежий код, пересобрать бинарник и перезапустить процесс или systemd-сервис. + +### 1. Обновить репозиторий + +```sh +cd olcrtc +git pull --recurse-submodules +``` + +Если работаешь не с `master`, сначала переключись на нужную ветку: + +```sh +git switch dev +git pull --recurse-submodules +``` + +### 2. Пересобрать бинарник + +```sh +mage build +``` + +Для текущей Linux-машины результат обычно будет здесь: + +```sh +build/olcrtc-linux-amd64 +``` + +Для другой архитектуры смотри имя файла в `build/` или собирай все платформы сразу: + +```sh +mage cross +ls build/ +``` + +### 3. Остановить старый процесс + +Если запускал вручную в терминале - останови его через `Ctrl+C`. + +Если процесс запущен в фоне, найди его: + +```sh +pgrep -af olcrtc +``` + +И останови нужный PID: + +```sh +kill +``` + +Если olcrtc запущен через systemd, останавливать руками не нужно - достаточно рестарта сервиса после обновления бинарника. + +### 4. Заменить бинарник, если он лежит вне `build/` + +Если запускаешь прямо из `build/`, этот шаг не нужен. + +Если копировал бинарник в системный путь, обнови копию: + +```sh +sudo install -m 0755 build/olcrtc-linux-amd64 /usr/local/bin/olcrtc +``` + +Путь и имя файла могут отличаться, если машина не `linux/amd64`. + +### 5. Запустить заново с тем же конфигом + +Сервер: + +```sh +./build/olcrtc-linux-amd64 server.yaml +``` + +Клиент: + +```sh +./build/olcrtc-linux-amd64 client.yaml +``` + +Если используешь systemd: + +```sh +sudo systemctl restart olcrtc-server +sudo systemctl restart olcrtc-client +``` + +Имена сервисов зависят от того, как ты их создавал. Конфиги менять не нужно, если `auth`, `transport`, `room ID`, ключ и SOCKS5-порт остаются прежними. + --- ## Все mage таргеты