docs: add update/restart instructions to fast and manual guides

This commit is contained in:
zarazaex69
2026-06-01 15:27:34 +03:00
parent 0684ace550
commit 2cff30d55e
2 changed files with 151 additions and 5 deletions
+59 -5
View File
@@ -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` переиспользует его автоматически.
---
+92
View File
@@ -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 <pid>
```
Если 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 таргеты