chore(i18n): refresh uk translations
This commit is contained in:
parent
cba08d7387
commit
3bbbf41b85
@ -2,28 +2,28 @@
|
||||
read_when:
|
||||
- Налагодження проблем виявлення Bonjour на macOS/iOS
|
||||
- Зміна типів сервісів mDNS, записів TXT або UX виявлення
|
||||
summary: Виявлення та налагодження Bonjour/mDNS (маяки Gateway, клієнти та поширені режими відмов)
|
||||
title: виявлення Bonjour
|
||||
summary: Виявлення та налагодження Bonjour/mDNS (маяки Gateway, клієнти та типові режими відмови)
|
||||
title: Виявлення Bonjour
|
||||
x-i18n:
|
||||
generated_at: "2026-04-26T04:54:58Z"
|
||||
generated_at: "2026-04-26T04:59:44Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 625d4fbf8fe46938ee42f267d2bdabe6ab9c2766d6b2debc30de3c43f0de724c
|
||||
source_hash: b055021bdcd92740934823dea2acf758c6ec991a15c0a315426dc359a7eea093
|
||||
source_path: gateway/bonjour.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Виявлення Bonjour / mDNS
|
||||
|
||||
OpenClaw використовує Bonjour (mDNS / DNS‑SD) для виявлення активного Gateway (кінцевої точки WebSocket).
|
||||
Багатоадресний перегляд `local.` — це **лише зручність у межах LAN**. Вбудований Plugin `bonjour`
|
||||
відповідає за рекламу в LAN і ввімкнений за замовчуванням. Для виявлення між різними мережами
|
||||
той самий маяк також може публікуватися через налаштований домен wide-area DNS-SD.
|
||||
Виявлення все одно виконується за принципом best-effort і **не** замінює підключення через SSH або Tailnet.
|
||||
OpenClaw використовує Bonjour (mDNS / DNS‑SD) для виявлення активного Gateway (кінцева точка WebSocket).
|
||||
Багатоадресний перегляд `local.` — це **лише зручність у межах LAN**. Вбудований Plugin
|
||||
`bonjour` відповідає за рекламу в LAN і ввімкнений за замовчуванням. Для виявлення між мережами
|
||||
той самий маяк також можна опублікувати через налаштований домен wide-area DNS-SD.
|
||||
Виявлення все одно працює за принципом best-effort і **не** замінює підключення через SSH або Tailnet.
|
||||
|
||||
## Wide-area Bonjour (Unicast DNS-SD) через Tailscale
|
||||
|
||||
Якщо node і gateway перебувають у різних мережах, багатоадресний mDNS не перетне
|
||||
Якщо node і gateway перебувають у різних мережах, багатоадресний mDNS не перетинатиме
|
||||
цю межу. Ви можете зберегти той самий UX виявлення, переключившись на **unicast DNS‑SD**
|
||||
("Wide‑Area Bonjour") через Tailscale.
|
||||
|
||||
@ -32,11 +32,11 @@ OpenClaw використовує Bonjour (mDNS / DNS‑SD) для виявле
|
||||
1. Запустіть DNS-сервер на хості gateway (доступний через Tailnet).
|
||||
2. Опублікуйте записи DNS‑SD для `_openclaw-gw._tcp` у виділеній зоні
|
||||
(приклад: `openclaw.internal.`).
|
||||
3. Налаштуйте в Tailscale **split DNS**, щоб вибраний домен резолвився через цей
|
||||
DNS-сервер для клієнтів (зокрема iOS).
|
||||
3. Налаштуйте **split DNS** у Tailscale так, щоб вибраний домен резолвився через цей
|
||||
DNS-сервер для клієнтів (включно з iOS).
|
||||
|
||||
OpenClaw підтримує будь-який домен виявлення; `openclaw.internal.` — лише приклад.
|
||||
Node iOS/Android переглядають і `local.`, і налаштований вами wide-area домен.
|
||||
iOS/Android node переглядають і `local.`, і ваш налаштований wide-area домен.
|
||||
|
||||
### Конфігурація Gateway (рекомендовано)
|
||||
|
||||
@ -53,10 +53,10 @@ Node iOS/Android переглядають і `local.`, і налаштовани
|
||||
openclaw dns setup --apply
|
||||
```
|
||||
|
||||
Це встановлює CoreDNS і налаштовує його так, щоб він:
|
||||
Це встановить CoreDNS і налаштує його так, щоб він:
|
||||
|
||||
- слухав порт 53 лише на Tailscale-інтерфейсах gateway
|
||||
- обслуговував вибраний вами домен (приклад: `openclaw.internal.`) з `~/.openclaw/dns/<domain>.db`
|
||||
- обслуговував вибраний домен (приклад: `openclaw.internal.`) з `~/.openclaw/dns/<domain>.db`
|
||||
|
||||
Перевірте з машини, підключеної до tailnet:
|
||||
|
||||
@ -72,52 +72,52 @@ dig @<TAILNET_IPV4> -p 53 _openclaw-gw._tcp.openclaw.internal PTR +short
|
||||
- Додайте nameserver, що вказує на tailnet IP gateway (UDP/TCP 53).
|
||||
- Додайте split DNS, щоб ваш домен виявлення використовував цей nameserver.
|
||||
|
||||
Щойно клієнти приймуть DNS tailnet, node iOS і виявлення CLI зможуть переглядати
|
||||
`_openclaw-gw._tcp` у вашому домені виявлення без багатоадресної передачі.
|
||||
Після того як клієнти приймуть DNS tailnet, iOS node і CLI-виявлення зможуть переглядати
|
||||
`_openclaw-gw._tcp` у вашому домені виявлення без багатоадресності.
|
||||
|
||||
### Безпека слухача Gateway (рекомендовано)
|
||||
### Безпека listener Gateway (рекомендовано)
|
||||
|
||||
Порт WS Gateway (типово `18789`) за замовчуванням прив’язується до loopback. Для доступу через LAN/tailnet
|
||||
явно задайте прив’язку та залиште автентифікацію ввімкненою.
|
||||
Порт Gateway WS (типово `18789`) за замовчуванням прив’язується до loopback. Для доступу через LAN/tailnet
|
||||
явно вкажіть bind і залиште автентифікацію ввімкненою.
|
||||
|
||||
Для конфігурацій лише з tailnet:
|
||||
|
||||
- Установіть `gateway.bind: "tailnet"` у `~/.openclaw/openclaw.json`.
|
||||
- Перезапустіть Gateway (або перезапустіть застосунок macOS у рядку меню).
|
||||
- Перезапустіть Gateway (або перезапустіть застосунок macOS menubar).
|
||||
|
||||
## Що рекламується
|
||||
|
||||
Лише Gateway рекламує `_openclaw-gw._tcp`. Багатоадресна реклама в LAN
|
||||
Лише Gateway рекламує `_openclaw-gw._tcp`. Реклама через багатоадресність у LAN
|
||||
забезпечується вбудованим Plugin `bonjour`; публікація wide-area DNS-SD і надалі
|
||||
належить Gateway.
|
||||
|
||||
## Типи сервісів
|
||||
|
||||
- `_openclaw-gw._tcp` — маяк транспортного рівня gateway (використовується node macOS/iOS/Android).
|
||||
- `_openclaw-gw._tcp` — транспортний маяк gateway (використовується macOS/iOS/Android node).
|
||||
|
||||
## Ключі TXT (не секретні підказки)
|
||||
|
||||
Gateway рекламує невеликі не секретні підказки, щоб зробити UI-потоки зручнішими:
|
||||
|
||||
- `role=gateway`
|
||||
- `displayName=<friendly name>`
|
||||
- `displayName=<дружня назва>`
|
||||
- `lanHost=<hostname>.local`
|
||||
- `gatewayPort=<port>` (Gateway WS + HTTP)
|
||||
- `gatewayTls=1` (лише коли ввімкнено TLS)
|
||||
- `gatewayTlsSha256=<sha256>` (лише коли ввімкнено TLS і доступний відбиток)
|
||||
- `canvasPort=<port>` (лише коли ввімкнено canvas host; наразі збігається з `gatewayPort`)
|
||||
- `gatewayTls=1` (лише коли TLS увімкнено)
|
||||
- `gatewayTlsSha256=<sha256>` (лише коли TLS увімкнено і відбиток доступний)
|
||||
- `canvasPort=<port>` (лише коли ввімкнено canvas host; наразі те саме, що й `gatewayPort`)
|
||||
- `transport=gateway`
|
||||
- `tailnetDns=<magicdns>` (лише в режимі mDNS full, необов’язкова підказка, коли Tailnet доступний)
|
||||
- `sshPort=<port>` (лише в режимі mDNS full; wide-area DNS-SD може його не включати)
|
||||
- `cliPath=<path>` (лише в режимі mDNS full; wide-area DNS-SD усе одно записує його як підказку для віддаленого встановлення)
|
||||
- `tailnetDns=<magicdns>` (лише в повному режимі mDNS, необов’язкова підказка, коли Tailnet доступний)
|
||||
- `sshPort=<port>` (лише в повному режимі mDNS; wide-area DNS-SD може його не включати)
|
||||
- `cliPath=<path>` (лише в повному режимі mDNS; wide-area DNS-SD все одно записує його як підказку для віддаленого встановлення)
|
||||
|
||||
Примітки щодо безпеки:
|
||||
|
||||
- Записи Bonjour/mDNS TXT **неавтентифіковані**. Клієнти не повинні вважати TXT авторитетним джерелом маршрутизації.
|
||||
- Клієнти мають маршрутизувати трафік, використовуючи резолвлену кінцеву точку сервісу (SRV + A/AAAA). Сприймайте `lanHost`, `tailnetDns`, `gatewayPort` і `gatewayTlsSha256` лише як підказки.
|
||||
- Записи TXT у Bonjour/mDNS **неавтентифіковані**. Клієнти не повинні вважати TXT авторитетним джерелом маршрутизації.
|
||||
- Клієнти повинні маршрутизувати, використовуючи резолвлену кінцеву точку сервісу (SRV + A/AAAA). Сприймайте `lanHost`, `tailnetDns`, `gatewayPort` і `gatewayTlsSha256` лише як підказки.
|
||||
- Автоматичне націлювання SSH так само має використовувати резолвлений хост сервісу, а не підказки лише з TXT.
|
||||
- Прив’язка TLS ніколи не повинна дозволяти рекламованому `gatewayTlsSha256` перевизначати раніше збережену прив’язку.
|
||||
- Node iOS/Android мають розглядати прямі підключення на основі виявлення як **лише TLS** і вимагати явного підтвердження користувача перед довірою до відбитка при першому використанні.
|
||||
- TLS pinning ніколи не повинен дозволяти рекламованому `gatewayTlsSha256` перевизначати раніше збережений pin.
|
||||
- iOS/Android node повинні трактувати прямі підключення на основі виявлення як **лише TLS** і вимагати явного підтвердження користувача перед довірою до відбитка, побаченого вперше.
|
||||
|
||||
## Налагодження на macOS
|
||||
|
||||
@ -135,66 +135,144 @@ Gateway рекламує невеликі не секретні підказки
|
||||
dns-sd -L "<instance>" _openclaw-gw._tcp local.
|
||||
```
|
||||
|
||||
Якщо перегляд працює, а резолв — ні, зазвичай проблема в політиці LAN або
|
||||
в резолвері mDNS.
|
||||
Якщо перегляд працює, а резолв — ні, зазвичай це означає проблему з політикою LAN або
|
||||
резолвером mDNS.
|
||||
|
||||
## Налагодження в логах Gateway
|
||||
|
||||
Gateway записує циклічний файл журналу (друкується під час запуску як
|
||||
`gateway log file: ...`). Шукайте рядки `bonjour:`, зокрема:
|
||||
Gateway записує ротаційний файл логу (під час запуску виводиться як
|
||||
`gateway log file: ...`). Шукайте рядки `bonjour:`, особливо:
|
||||
|
||||
- `bonjour: advertise failed ...`
|
||||
- `bonjour: ... name conflict resolved` / `hostname conflict resolved`
|
||||
- `bonjour: watchdog detected non-announced service ...`
|
||||
- `bonjour: disabling advertiser after ... failed restarts ...`
|
||||
|
||||
## Налагодження на node iOS
|
||||
## Налагодження на iOS node
|
||||
|
||||
Node iOS використовує `NWBrowser` для виявлення `_openclaw-gw._tcp`.
|
||||
iOS node використовує `NWBrowser` для виявлення `_openclaw-gw._tcp`.
|
||||
|
||||
Щоб зібрати логи:
|
||||
|
||||
- Settings → Gateway → Advanced → **Discovery Debug Logs**
|
||||
- Settings → Gateway → Advanced → **Discovery Logs** → відтворіть проблему → **Copy**
|
||||
|
||||
Журнал містить переходи стану браузера та зміни набору результатів.
|
||||
Лог містить переходи стану браузера та зміни набору результатів.
|
||||
|
||||
## Поширені режими відмов
|
||||
## Коли вимикати Bonjour
|
||||
|
||||
- **Bonjour не працює між різними мережами**: використовуйте Tailnet або SSH.
|
||||
- **Багатоадресна передача заблокована**: деякі Wi‑Fi мережі вимикають mDNS.
|
||||
- **Рекламування зависло на probing/announcing**: хости із заблокованою багатоадресною передачею,
|
||||
мости контейнерів, WSL або зміни інтерфейсів можуть залишити рекламодавець ciao у
|
||||
стані non-announced. OpenClaw повторює спробу кілька разів, а потім вимикає Bonjour
|
||||
для поточного процесу Gateway замість безкінечного перезапуску рекламодавця.
|
||||
- **Мережа Docker bridge**: вбудований Docker Compose за замовчуванням вимикає Bonjour
|
||||
через `OPENCLAW_DISABLE_BONJOUR=1`. Установлюйте `0` лише для host,
|
||||
Вимикайте Bonjour лише тоді, коли реклама через багатоадресність у LAN недоступна або шкідлива.
|
||||
Типовий випадок — Gateway, що працює за Docker bridge networking, WSL або політикою
|
||||
мережі, яка відкидає багатоадресність mDNS. У таких середовищах Gateway усе ще
|
||||
доступний через свою опубліковану URL-адресу, SSH, Tailnet або wide-area DNS-SD,
|
||||
але автоматичне виявлення в LAN ненадійне.
|
||||
|
||||
Віддавайте перевагу наявному перевизначенню через середовище, коли проблема пов’язана з конкретним розгортанням:
|
||||
|
||||
```bash
|
||||
OPENCLAW_DISABLE_BONJOUR=1
|
||||
```
|
||||
|
||||
Це вимикає рекламу через багатоадресність у LAN без зміни конфігурації Plugin.
|
||||
Це безпечно для Docker-образів, service files, скриптів запуску та разового
|
||||
налагодження, оскільки налаштування зникає разом із середовищем.
|
||||
|
||||
Використовуйте конфігурацію Plugin лише тоді, коли ви свідомо хочете вимкнути
|
||||
вбудований Plugin виявлення LAN для цієї конфігурації OpenClaw:
|
||||
|
||||
```bash
|
||||
openclaw plugins disable bonjour
|
||||
```
|
||||
|
||||
## Особливості Docker
|
||||
|
||||
Комплектний Docker Compose встановлює `OPENCLAW_DISABLE_BONJOUR=1` для сервісу Gateway
|
||||
за замовчуванням. Docker bridge network зазвичай не пересилають багатоадресність mDNS
|
||||
(`224.0.0.251:5353`) між контейнером і LAN, тому якщо залишити Bonjour увімкненим, це може
|
||||
спричиняти повторні збої ciao `probing` або `announcing`, не забезпечуючи
|
||||
працездатне виявлення.
|
||||
|
||||
Важливі нюанси:
|
||||
|
||||
- Вимкнення Bonjour не зупиняє Gateway. Воно лише зупиняє рекламу через багатоадресність у LAN.
|
||||
- Вимкнення Bonjour не змінює `gateway.bind`; Docker все ще за замовчуванням використовує
|
||||
`OPENCLAW_GATEWAY_BIND=lan`, щоб опублікований порт хоста міг працювати.
|
||||
- Вимкнення Bonjour не вимикає wide-area DNS-SD. Використовуйте wide-area виявлення
|
||||
або Tailnet, коли Gateway і node не в одній LAN.
|
||||
- Повторне використання того самого `OPENCLAW_CONFIG_DIR` поза Docker не успадковує
|
||||
значення Compose за замовчуванням, якщо середовище все ще не задає `OPENCLAW_DISABLE_BONJOUR`.
|
||||
- Встановлюйте `OPENCLAW_DISABLE_BONJOUR=0` лише для host networking, macvlan або іншої
|
||||
мережі, де багатоадресність mDNS гарантовано проходить.
|
||||
|
||||
## Усунення проблем із вимкненим Bonjour
|
||||
|
||||
Якщо node більше не виявляє Gateway автоматично після налаштування Docker:
|
||||
|
||||
1. Перевірте, чи Gateway навмисно пригнічує рекламу в LAN:
|
||||
|
||||
```bash
|
||||
docker compose config | grep OPENCLAW_DISABLE_BONJOUR
|
||||
```
|
||||
|
||||
2. Переконайтеся, що сам Gateway доступний через опублікований порт:
|
||||
|
||||
```bash
|
||||
curl -fsS http://127.0.0.1:18789/healthz
|
||||
```
|
||||
|
||||
3. Використовуйте пряму ціль, коли Bonjour вимкнено:
|
||||
- Control UI або локальні інструменти: `http://127.0.0.1:18789`
|
||||
- Клієнти в LAN: `http://<gateway-host>:18789`
|
||||
- Клієнти між мережами: Tailnet MagicDNS, Tailnet IP, SSH tunnel або
|
||||
wide-area DNS-SD
|
||||
|
||||
4. Якщо ви навмисно ввімкнули Bonjour у Docker за допомогою
|
||||
`OPENCLAW_DISABLE_BONJOUR=0`, протестуйте багатоадресність із хоста:
|
||||
|
||||
```bash
|
||||
dns-sd -B _openclaw-gw._tcp local.
|
||||
```
|
||||
|
||||
Якщо перегляд порожній або логи Gateway показують повторні скасування
|
||||
watchdog у ciao, поверніть `OPENCLAW_DISABLE_BONJOUR=1` і використовуйте прямий
|
||||
маршрут або маршрут через Tailnet.
|
||||
|
||||
## Типові режими відмови
|
||||
|
||||
- **Bonjour не працює між мережами**: використовуйте Tailnet або SSH.
|
||||
- **Багатоадресність заблокована**: деякі мережі Wi‑Fi вимикають mDNS.
|
||||
- **Advertiser застряг у probing/announcing**: хости із заблокованою багатоадресністю,
|
||||
container bridge, WSL або зміни інтерфейсів можуть залишити advertiser ciao у
|
||||
неанонсованому стані. OpenClaw робить кілька повторних спроб, а потім вимикає Bonjour
|
||||
для поточного процесу Gateway, замість того щоб безкінечно перезапускати advertiser.
|
||||
- **Docker bridge networking**: комплектний Docker Compose вимикає Bonjour
|
||||
за замовчуванням через `OPENCLAW_DISABLE_BONJOUR=1`. Встановлюйте `0` лише для host,
|
||||
macvlan або іншої мережі з підтримкою mDNS.
|
||||
- **Сон / зміни інтерфейсів**: macOS може тимчасово втрачати результати mDNS; повторіть спробу.
|
||||
- **Перегляд працює, а резолв — ні**: використовуйте прості назви машин (уникайте емодзі або
|
||||
пунктуації), а потім перезапустіть Gateway. Ім’я екземпляра сервісу походить від
|
||||
імені хоста, тому надто складні імена можуть плутати деякі резолвери.
|
||||
- **Сон / зміна інтерфейсів**: macOS може тимчасово втрачати результати mDNS; повторіть спробу.
|
||||
- **Перегляд працює, а резолв — ні**: робіть назви машин простими (уникайте емодзі або
|
||||
пунктуації), а потім перезапустіть Gateway. Ім’я екземпляра сервісу похідне від
|
||||
імені хоста, тому надто складні назви можуть плутати деякі резолвери.
|
||||
|
||||
## Екрановані імена екземплярів (`\032`)
|
||||
|
||||
Bonjour/DNS‑SD часто екранує байти в іменах екземплярів сервісу як десяткові послідовності `\DDD`
|
||||
Bonjour/DNS‑SD часто екранує байти в іменах екземплярів сервісів як десяткові послідовності `\DDD`
|
||||
(наприклад, пробіли стають `\032`).
|
||||
|
||||
- Це нормально на рівні протоколу.
|
||||
- UI мають декодувати це для відображення (iOS використовує `BonjourEscapes.decode`).
|
||||
- UI повинні декодувати це для відображення (iOS використовує `BonjourEscapes.decode`).
|
||||
|
||||
## Вимкнення / конфігурація
|
||||
|
||||
- `openclaw plugins disable bonjour` вимикає багатоадресну рекламу в LAN, вимикаючи вбудований plugin.
|
||||
- `openclaw plugins enable bonjour` відновлює типовий plugin виявлення в LAN.
|
||||
- `OPENCLAW_DISABLE_BONJOUR=1` вимикає багатоадресну рекламу в LAN без зміни конфігурації plugin; підтримувані truthy-значення: `1`, `true`, `yes` і `on` (legacy: `OPENCLAW_DISABLE_BONJOUR`).
|
||||
- Docker Compose за замовчуванням установлює `OPENCLAW_DISABLE_BONJOUR=1` для bridge networking; перевизначайте на `OPENCLAW_DISABLE_BONJOUR=0` лише коли доступна багатоадресна передача mDNS.
|
||||
- `gateway.bind` у `~/.openclaw/openclaw.json` керує режимом прив’язки Gateway.
|
||||
- `openclaw plugins disable bonjour` вимикає рекламу через багатоадресність у LAN, вимикаючи вбудований Plugin.
|
||||
- `openclaw plugins enable bonjour` відновлює стандартний Plugin виявлення LAN.
|
||||
- `OPENCLAW_DISABLE_BONJOUR=1` вимикає рекламу через багатоадресність у LAN без зміни конфігурації Plugin; підтримувані truthy-значення: `1`, `true`, `yes` і `on` (legacy: `OPENCLAW_DISABLE_BONJOUR`).
|
||||
- Docker Compose за замовчуванням встановлює `OPENCLAW_DISABLE_BONJOUR=1` для bridge networking; перевизначайте значення на `OPENCLAW_DISABLE_BONJOUR=0` лише коли багатоадресність mDNS доступна.
|
||||
- `gateway.bind` у `~/.openclaw/openclaw.json` керує режимом bind для Gateway.
|
||||
- `OPENCLAW_SSH_PORT` перевизначає порт SSH, коли рекламується `sshPort` (legacy: `OPENCLAW_SSH_PORT`).
|
||||
- `OPENCLAW_TAILNET_DNS` публікує підказку MagicDNS у TXT, коли ввімкнено режим mDNS full (legacy: `OPENCLAW_TAILNET_DNS`).
|
||||
- `OPENCLAW_TAILNET_DNS` публікує підказку MagicDNS у TXT, коли ввімкнено повний режим mDNS (legacy: `OPENCLAW_TAILNET_DNS`).
|
||||
- `OPENCLAW_CLI_PATH` перевизначає рекламований шлях CLI (legacy: `OPENCLAW_CLI_PATH`).
|
||||
|
||||
## Пов’язані документи
|
||||
## Пов’язана документація
|
||||
|
||||
- Політика виявлення та вибір транспорту: [Виявлення](/uk/gateway/discovery)
|
||||
- Парування node та схвалення: [Парування Gateway](/uk/gateway/pairing)
|
||||
- Сполучення node + підтвердження: [Сполучення Gateway](/uk/gateway/pairing)
|
||||
|
||||
@ -5,30 +5,30 @@ read_when:
|
||||
summary: Необов’язкове налаштування та онбординг OpenClaw на основі Docker
|
||||
title: Docker
|
||||
x-i18n:
|
||||
generated_at: "2026-04-26T04:54:58Z"
|
||||
generated_at: "2026-04-26T04:59:45Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 9b2d73da68266946f62feca240bdd94336a3f15e9ca48f0a52209f4ae4a85ffe
|
||||
source_hash: e6da0543ce143aeb9d3cdb2086704aaa146a5e385a7e36a7cb9f444097f86e50
|
||||
source_path: install/docker.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Docker **необов’язковий**. Використовуйте його лише якщо хочете контейнеризований Gateway або перевірити потік Docker.
|
||||
Docker **необов’язковий**. Використовуйте його лише якщо вам потрібен контейнеризований Gateway або ви хочете перевірити потік Docker.
|
||||
|
||||
## Чи підходить мені Docker?
|
||||
|
||||
- **Так**: вам потрібне ізольоване, тимчасове середовище Gateway або ви хочете запускати OpenClaw на хості без локальних встановлень.
|
||||
- **Ні**: ви запускаєте на власній машині й просто хочете найшвидший цикл розробки. Натомість використовуйте звичайний потік встановлення.
|
||||
- **Примітка щодо ізоляції**: типовий бекенд sandbox використовує Docker, коли ізоляцію ввімкнено, але за замовчуванням ізоляція вимкнена і **не** вимагає запуску всього Gateway у Docker. Також доступні бекенди sandbox SSH і OpenShell. Див. [Ізоляція](/uk/gateway/sandboxing).
|
||||
- **Ні**: ви запускаєте все на власній машині й просто хочете найшвидший цикл розробки. Натомість скористайтеся звичайним потоком встановлення.
|
||||
- **Примітка щодо ізоляції**: стандартний бекенд ізоляції використовує Docker, коли ізоляцію ввімкнено, але за замовчуванням ізоляцію вимкнено, і для неї **не** потрібно запускати весь Gateway у Docker. Також доступні бекенди ізоляції SSH та OpenShell. Див. [Ізоляція](/uk/gateway/sandboxing).
|
||||
|
||||
## Передумови
|
||||
|
||||
- Docker Desktop (або Docker Engine) + Docker Compose v2
|
||||
- Щонайменше 2 ГБ RAM для збирання образу (`pnpm install` може бути завершено через OOM на хостах із 1 ГБ з кодом виходу 137)
|
||||
- Достатньо дискового простору для образів і журналів
|
||||
- Щонайменше 2 ГБ RAM для збирання образу (`pnpm install` може бути завершено через OOM на хостах із 1 ГБ із кодом виходу 137)
|
||||
- Достатньо місця на диску для образів і журналів
|
||||
- Якщо запускаєте на VPS/публічному хості, перегляньте
|
||||
[Посилення безпеки для мережевої доступності](/uk/gateway/security),
|
||||
особливо політику файрвола Docker `DOCKER-USER`.
|
||||
[Посилення безпеки для мережевої експозиції](/uk/gateway/security),
|
||||
особливо політику брандмауера Docker `DOCKER-USER`.
|
||||
|
||||
## Контейнеризований Gateway
|
||||
|
||||
@ -40,7 +40,7 @@ Docker **необов’язковий**. Використовуйте його
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Це локально збере образ Gateway. Щоб натомість використовувати попередньо зібраний образ:
|
||||
Це локально збере образ Gateway. Щоб натомість використати попередньо зібраний образ:
|
||||
|
||||
```bash
|
||||
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
|
||||
@ -54,21 +54,21 @@ Docker **необов’язковий**. Використовуйте його
|
||||
</Step>
|
||||
|
||||
<Step title="Завершіть онбординг">
|
||||
Скрипт налаштування запускає онбординг автоматично. Він:
|
||||
Скрипт налаштування автоматично запускає онбординг. Він:
|
||||
|
||||
- запросить API-ключі провайдерів
|
||||
- запропонує ввести API-ключі провайдерів
|
||||
- згенерує токен Gateway і запише його в `.env`
|
||||
- запустить Gateway через Docker Compose
|
||||
|
||||
Під час налаштування передстартовий онбординг і запис конфігурації виконуються
|
||||
безпосередньо через `openclaw-gateway`. `openclaw-cli` призначений для команд, які ви запускаєте після того,
|
||||
як контейнер gateway уже існує.
|
||||
Під час налаштування попередній онбординг перед стартом і записи конфігурації виконуються безпосередньо через
|
||||
`openclaw-gateway`. `openclaw-cli` призначений для команд, які ви запускаєте після
|
||||
того, як контейнер Gateway уже існує.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Відкрийте Control UI">
|
||||
Відкрийте `http://127.0.0.1:18789/` у браузері та вставте налаштований
|
||||
спільний секрет у Settings. Скрипт налаштування за замовчуванням записує токен у `.env`; якщо ви перемкнете конфігурацію контейнера на автентифікацію паролем, використовуйте натомість цей
|
||||
Відкрийте `http://127.0.0.1:18789/` у браузері й вставте налаштований
|
||||
спільний секрет у Settings. Скрипт налаштування за замовчуванням записує токен у `.env`; якщо ви переключите конфігурацію контейнера на автентифікацію за паролем, натомість використайте цей
|
||||
пароль.
|
||||
|
||||
Потрібна URL-адреса знову?
|
||||
@ -80,7 +80,7 @@ Docker **необов’язковий**. Використовуйте його
|
||||
</Step>
|
||||
|
||||
<Step title="Налаштуйте канали (необов’язково)">
|
||||
Використовуйте контейнер CLI, щоб додати канали обміну повідомленнями:
|
||||
Використайте контейнер CLI, щоб додати канали обміну повідомленнями:
|
||||
|
||||
```bash
|
||||
# WhatsApp (QR)
|
||||
@ -114,12 +114,12 @@ docker compose up -d openclaw-gateway
|
||||
<Note>
|
||||
Запускайте `docker compose` з кореня репозиторію. Якщо ви ввімкнули `OPENCLAW_EXTRA_MOUNTS`
|
||||
або `OPENCLAW_HOME_VOLUME`, скрипт налаштування записує `docker-compose.extra.yml`;
|
||||
додавайте його через `-f docker-compose.yml -f docker-compose.extra.yml`.
|
||||
додавайте його за допомогою `-f docker-compose.yml -f docker-compose.extra.yml`.
|
||||
</Note>
|
||||
|
||||
<Note>
|
||||
Оскільки `openclaw-cli` спільно використовує мережевий простір імен `openclaw-gateway`, це
|
||||
інструмент після запуску. До `docker compose up -d openclaw-gateway` запускайте онбординг
|
||||
Оскільки `openclaw-cli` використовує спільний мережевий простір імен із `openclaw-gateway`, це
|
||||
інструмент для використання після запуску. До `docker compose up -d openclaw-gateway` виконуйте онбординг
|
||||
і записи конфігурації під час налаштування через `openclaw-gateway` з
|
||||
`--no-deps --entrypoint node`.
|
||||
</Note>
|
||||
@ -130,16 +130,16 @@ docker compose up -d openclaw-gateway
|
||||
|
||||
| Variable | Purpose |
|
||||
| ------------------------------ | --------------------------------------------------------------- |
|
||||
| `OPENCLAW_IMAGE` | Використовувати віддалений образ замість локального збирання |
|
||||
| `OPENCLAW_IMAGE` | Використати віддалений образ замість локального збирання |
|
||||
| `OPENCLAW_DOCKER_APT_PACKAGES` | Встановити додаткові apt-пакети під час збирання (імена через пробіл) |
|
||||
| `OPENCLAW_EXTENSIONS` | Попередньо встановити залежності плагінів під час збирання (імена через пробіл) |
|
||||
| `OPENCLAW_EXTRA_MOUNTS` | Додаткові bind mounts хоста (через кому у форматі `source:target[:opts]`) |
|
||||
| `OPENCLAW_HOME_VOLUME` | Зберігати `/home/node` в іменованому Docker volume |
|
||||
| `OPENCLAW_SANDBOX` | Увімкнути bootstrap sandbox (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_DOCKER_SOCKET` | Перевизначити шлях до Docker socket |
|
||||
| `OPENCLAW_EXTENSIONS` | Попередньо встановити залежності Plugin під час збирання (імена через пробіл) |
|
||||
| `OPENCLAW_EXTRA_MOUNTS` | Додаткові bind mount хоста (через кому `source:target[:opts]`) |
|
||||
| `OPENCLAW_HOME_VOLUME` | Зберігати `/home/node` в іменованому Docker-томі |
|
||||
| `OPENCLAW_SANDBOX` | Увімкнути bootstrap ізоляції (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_DOCKER_SOCKET` | Перевизначити шлях до сокета Docker |
|
||||
| `OPENCLAW_DISABLE_BONJOUR` | Вимкнути рекламу Bonjour/mDNS (для Docker за замовчуванням `1`) |
|
||||
|
||||
### Перевірки здоров’я
|
||||
### Перевірки стану
|
||||
|
||||
Кінцеві точки probe контейнера (автентифікація не потрібна):
|
||||
|
||||
@ -148,82 +148,84 @@ curl -fsS http://127.0.0.1:18789/healthz # liveness
|
||||
curl -fsS http://127.0.0.1:18789/readyz # readiness
|
||||
```
|
||||
|
||||
Образ Docker містить вбудований `HEALTHCHECK`, який виконує ping до `/healthz`.
|
||||
Образ Docker містить вбудований `HEALTHCHECK`, який опитує `/healthz`.
|
||||
Якщо перевірки постійно не проходять, Docker позначає контейнер як `unhealthy`, і
|
||||
системи оркестрації можуть перезапустити або замінити його.
|
||||
|
||||
Автентифікований глибокий знімок стану здоров’я:
|
||||
Автентифікований глибокий знімок стану:
|
||||
|
||||
```bash
|
||||
docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLAW_GATEWAY_TOKEN"
|
||||
```
|
||||
|
||||
### LAN чи loopback
|
||||
### LAN проти loopback
|
||||
|
||||
`scripts/docker/setup.sh` за замовчуванням встановлює `OPENCLAW_GATEWAY_BIND=lan`, щоб
|
||||
доступ хоста до `http://127.0.0.1:18789` працював із публікацією порту Docker.
|
||||
`scripts/docker/setup.sh` за замовчуванням встановлює `OPENCLAW_GATEWAY_BIND=lan`, щоб доступ хоста до
|
||||
`http://127.0.0.1:18789` працював із публікацією портів Docker.
|
||||
|
||||
- `lan` (за замовчуванням): браузер хоста і CLI хоста можуть досягати опублікованого порту gateway.
|
||||
- `lan` (за замовчуванням): браузер і CLI на хості можуть звертатися до опублікованого порту Gateway.
|
||||
- `loopback`: лише процеси всередині мережевого простору імен контейнера можуть
|
||||
напряму досягати gateway.
|
||||
напряму звертатися до Gateway.
|
||||
|
||||
<Note>
|
||||
Використовуйте значення режиму bind у `gateway.bind` (`lan` / `loopback` / `custom` /
|
||||
`tailnet` / `auto`), а не хост-аліаси на кшталт `0.0.0.0` чи `127.0.0.1`.
|
||||
Використовуйте значення режиму прив’язки в `gateway.bind` (`lan` / `loopback` / `custom` /
|
||||
`tailnet` / `auto`), а не псевдоніми хоста на кшталт `0.0.0.0` або `127.0.0.1`.
|
||||
</Note>
|
||||
|
||||
### Bonjour / mDNS
|
||||
|
||||
Мережа мосту Docker зазвичай ненадійно пересилає багатокастовий трафік Bonjour/mDNS
|
||||
(`224.0.0.251:5353`). Тому комплектна конфігурація Compose за замовчуванням встановлює
|
||||
`OPENCLAW_DISABLE_BONJOUR=1`, щоб Gateway не потрапляв у crash-loop і не
|
||||
перезапускав рекламу повторно, коли міст втрачає багатокастовий трафік.
|
||||
Мережевий міст Docker зазвичай ненадійно пересилає multicast Bonjour/mDNS
|
||||
(`224.0.0.251:5353`). Тому в комплектному налаштуванні Compose за замовчуванням
|
||||
встановлюється `OPENCLAW_DISABLE_BONJOUR=1`, щоб Gateway не переходив у crash-loop і не
|
||||
перезапускав рекламу повторно, коли міст втрачає multicast-трафік.
|
||||
|
||||
Для хостів Docker використовуйте опубліковану URL-адресу Gateway, Tailscale або DNS-SD широкої зони.
|
||||
Встановлюйте `OPENCLAW_DISABLE_BONJOUR=0` лише під час роботи з host networking, macvlan
|
||||
або іншою мережею, де багатокастовий mDNS точно працює.
|
||||
Для хостів Docker використовуйте опубліковану URL-адресу Gateway, Tailscale або wide-area DNS-SD.
|
||||
Встановлюйте `OPENCLAW_DISABLE_BONJOUR=0` лише під час запуску з host networking, macvlan
|
||||
або в іншій мережі, де multicast mDNS гарантовано працює.
|
||||
|
||||
Щоб ознайомитися з нюансами й усуненням проблем, див. [Виявлення Bonjour](/uk/gateway/bonjour).
|
||||
|
||||
### Сховище та збереження даних
|
||||
|
||||
Docker Compose виконує bind-mount `OPENCLAW_CONFIG_DIR` до `/home/node/.openclaw` і
|
||||
`OPENCLAW_WORKSPACE_DIR` до `/home/node/.openclaw/workspace`, тож ці шляхи
|
||||
Docker Compose монтує `OPENCLAW_CONFIG_DIR` у `/home/node/.openclaw` і
|
||||
`OPENCLAW_WORKSPACE_DIR` у `/home/node/.openclaw/workspace`, тож ці шляхи
|
||||
зберігаються після заміни контейнера.
|
||||
|
||||
У цьому змонтованому каталозі конфігурації OpenClaw зберігає:
|
||||
|
||||
- `openclaw.json` для конфігурації поведінки
|
||||
- `agents/<agentId>/agent/auth-profiles.json` для збереженої OAuth/API-key автентифікації провайдера
|
||||
- `.env` для секретів середовища виконання, що передаються через env, як-от `OPENCLAW_GATEWAY_TOKEN`
|
||||
- `agents/<agentId>/agent/auth-profiles.json` для збереженої OAuth/API-key автентифікації провайдерів
|
||||
- `.env` для секретів середовища виконання на основі env, таких як `OPENCLAW_GATEWAY_TOKEN`
|
||||
|
||||
Повні відомості про збереження даних у розгортаннях на VM див. у
|
||||
[Docker VM Runtime - Що і де зберігається](/uk/install/docker-vm-runtime#what-persists-where).
|
||||
[Середовище виконання Docker VM — що й де зберігається](/uk/install/docker-vm-runtime#what-persists-where).
|
||||
|
||||
**Точки росту використання диска:** стежте за `media/`, файлами JSONL сеансів, `cron/runs/*.jsonl`,
|
||||
і ротаційними файловими журналами в `/tmp/openclaw/`.
|
||||
**Проблемні місця зростання дискового простору:** стежте за `media/`, JSONL-файлами сеансів, `cron/runs/*.jsonl`,
|
||||
і циклічними файловими журналами в `/tmp/openclaw/`.
|
||||
|
||||
### Допоміжні команди shell (необов’язково)
|
||||
### Допоміжні команди оболонки (необов’язково)
|
||||
|
||||
Для зручнішого повсякденного керування Docker встановіть `ClawDock`:
|
||||
Для зручнішого щоденного керування Docker установіть `ClawDock`:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/clawdock/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
|
||||
echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
```
|
||||
|
||||
Якщо ви встановили ClawDock зі старого raw-шляху `scripts/shell-helpers/clawdock-helpers.sh`, повторно виконайте наведену вище команду встановлення, щоб локальний файл helper відстежував нове розташування.
|
||||
Якщо ви встановили ClawDock зі старого raw-шляху `scripts/shell-helpers/clawdock-helpers.sh`, повторно виконайте наведену вище команду встановлення, щоб ваш локальний допоміжний файл відстежував нове розташування.
|
||||
|
||||
Після цього використовуйте `clawdock-start`, `clawdock-stop`, `clawdock-dashboard` тощо. Запустіть
|
||||
`clawdock-help`, щоб переглянути всі команди.
|
||||
Повний посібник із helper-команд див. у [ClawDock](/uk/install/clawdock).
|
||||
`clawdock-help`, щоб побачити всі команди.
|
||||
Повний посібник із допоміжних команд див. у [ClawDock](/uk/install/clawdock).
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Увімкнути sandbox агента для Docker gateway">
|
||||
<Accordion title="Увімкнення ізоляції агента для Docker Gateway">
|
||||
```bash
|
||||
export OPENCLAW_SANDBOX=1
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Власний шлях до socket (наприклад, rootless Docker):
|
||||
Нестандартний шлях до сокета (наприклад, rootless Docker):
|
||||
|
||||
```bash
|
||||
export OPENCLAW_SANDBOX=1
|
||||
@ -231,14 +233,14 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Скрипт монтує `docker.sock` лише після успішного проходження передумов sandbox. Якщо
|
||||
налаштування sandbox не вдається завершити, скрипт скидає `agents.defaults.sandbox.mode`
|
||||
Скрипт монтує `docker.sock` лише після успішної перевірки передумов ізоляції. Якщо
|
||||
налаштування ізоляції не може бути завершено, скрипт скидає `agents.defaults.sandbox.mode`
|
||||
на `off`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Автоматизація / CI (неінтерактивно)">
|
||||
Вимкніть виділення псевдо-TTY Compose за допомогою `-T`:
|
||||
Вимкніть виділення псевдо-TTY для Compose за допомогою `-T`:
|
||||
|
||||
```bash
|
||||
docker compose run -T --rm openclaw-cli gateway probe
|
||||
@ -248,15 +250,15 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Примітка щодо безпеки спільної мережі">
|
||||
`openclaw-cli` використовує `network_mode: "service:openclaw-gateway"`, тож CLI
|
||||
команди можуть досягати gateway через `127.0.0.1`. Розглядайте це як спільну
|
||||
межу довіри. Конфігурація compose видаляє `NET_RAW`/`NET_ADMIN` і вмикає
|
||||
`openclaw-cli` використовує `network_mode: "service:openclaw-gateway"`, тому CLI-команди
|
||||
можуть звертатися до Gateway через `127.0.0.1`. Розглядайте це як спільну межу довіри. Конфігурація
|
||||
compose прибирає `NET_RAW`/`NET_ADMIN` і вмикає
|
||||
`no-new-privileges` для `openclaw-cli`.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Дозволи та EACCES">
|
||||
Образ працює від імені `node` (uid 1000). Якщо ви бачите помилки дозволів для
|
||||
`/home/node/.openclaw`, переконайтеся, що ваші bind mounts хоста належать uid 1000:
|
||||
Образ запускається від імені `node` (uid 1000). Якщо ви бачите помилки дозволів для
|
||||
`/home/node/.openclaw`, переконайтеся, що bind mount хоста належать uid 1000:
|
||||
|
||||
```bash
|
||||
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
|
||||
@ -266,7 +268,7 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
|
||||
<Accordion title="Швидші перебудови">
|
||||
Упорядкуйте Dockerfile так, щоб шари залежностей кешувалися. Це дозволяє уникнути повторного запуску
|
||||
`pnpm install`, доки lockfile не зміниться:
|
||||
`pnpm install`, якщо lockfile не змінювалися:
|
||||
|
||||
```dockerfile
|
||||
FROM node:24-bookworm
|
||||
@ -288,61 +290,60 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Контейнерні параметри для досвідчених користувачів">
|
||||
Типовий образ орієнтований на безпеку й працює від непривілейованого `node`. Для більш
|
||||
<Accordion title="Параметри контейнера для досвідчених користувачів">
|
||||
Стандартний образ орієнтований на безпеку й запускається від непривілейованого користувача `node`. Для більш
|
||||
функціонального контейнера:
|
||||
|
||||
1. **Зберігайте `/home/node`**: `export OPENCLAW_HOME_VOLUME="openclaw_home"`
|
||||
2. **Вбудуйте системні залежності**: `export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq"`
|
||||
3. **Встановіть браузери Playwright**:
|
||||
2. **Додавайте системні залежності в образ**: `export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq"`
|
||||
3. **Установіть браузери Playwright**:
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli \
|
||||
node /app/node_modules/playwright-core/cli.js install chromium
|
||||
```
|
||||
4. **Зберігайте завантаження браузера**: встановіть
|
||||
4. **Зберігайте завантаження браузерів**: встановіть
|
||||
`PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright` і використовуйте
|
||||
`OPENCLAW_HOME_VOLUME` або `OPENCLAW_EXTRA_MOUNTS`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="OAuth OpenAI Codex (headless Docker)">
|
||||
Якщо у майстрі ви оберете OAuth OpenAI Codex, він відкриє URL-адресу в браузері. У
|
||||
Docker або headless-середовищах скопіюйте повну URL-адресу перенаправлення, на яку ви потрапите, і вставте
|
||||
<Accordion title="OpenAI Codex OAuth (headless Docker)">
|
||||
Якщо у майстрі ви вибираєте OpenAI Codex OAuth, відкривається URL-адреса в браузері. У
|
||||
Docker або headless-середовищах скопіюйте повну URL-адресу перенаправлення, куди ви потрапите, і вставте
|
||||
її назад у майстер, щоб завершити автентифікацію.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Метадані базового образу">
|
||||
Основний образ Docker використовує `node:24-bookworm` і публікує анотації OCI базового образу,
|
||||
зокрема `org.opencontainers.image.base.name`,
|
||||
`org.opencontainers.image.source` та інші. Див.
|
||||
[Анотації образу OCI](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
|
||||
включно з `org.opencontainers.image.base.name`,
|
||||
`org.opencontainers.image.source` та іншими. Див.
|
||||
[Анотації образів OCI](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### Запуск на VPS?
|
||||
|
||||
Див. [Hetzner (Docker VPS)](/uk/install/hetzner) і
|
||||
[Docker VM Runtime](/uk/install/docker-vm-runtime) для кроків розгортання на спільній VM,
|
||||
зокрема підготовки бінарних файлів, збереження даних і оновлень.
|
||||
[Середовище виконання Docker VM](/uk/install/docker-vm-runtime) для кроків розгортання на спільних VM,
|
||||
включно з додаванням бінарних файлів в образ, збереженням даних і оновленнями.
|
||||
|
||||
## Sandbox агента
|
||||
## Ізоляція агента
|
||||
|
||||
Коли `agents.defaults.sandbox` увімкнено з Docker-бекендом, gateway
|
||||
запускає виконання інструментів агента (shell, читання/запис файлів тощо) в ізольованих Docker
|
||||
контейнерах, тоді як сам gateway залишається на хості. Це створює жорстку межу
|
||||
Коли `agents.defaults.sandbox` увімкнено з бекендом Docker, Gateway
|
||||
виконує запуск інструментів агента (shell, читання/запис файлів тощо) всередині ізольованих Docker-контейнерів, тоді як сам Gateway залишається на хості. Це створює жорстку межу
|
||||
навколо недовірених або багатокористувацьких сеансів агентів без контейнеризації всього
|
||||
gateway.
|
||||
Gateway.
|
||||
|
||||
Область sandbox може бути для кожного агента окремо (за замовчуванням), для кожного сеансу або спільною. Кожна область
|
||||
отримує власний workspace, змонтований у `/workspace`. Ви також можете налаштувати
|
||||
Область ізоляції може бути на рівні агента (за замовчуванням), на рівні сеансу або спільною. Кожна область
|
||||
отримує власний робочий простір, змонтований у `/workspace`. Ви також можете налаштувати
|
||||
політики дозволу/заборони інструментів, ізоляцію мережі, обмеження ресурсів і браузерні
|
||||
контейнери.
|
||||
|
||||
Повну конфігурацію, образи, примітки щодо безпеки та профілі для кількох агентів див. тут:
|
||||
Повну інформацію про конфігурацію, образи, примітки щодо безпеки та профілі для кількох агентів див. тут:
|
||||
|
||||
- [Ізоляція](/uk/gateway/sandboxing) -- повний довідник із sandbox
|
||||
- [OpenShell](/uk/gateway/openshell) -- інтерактивний доступ shell до контейнерів sandbox
|
||||
- [Sandbox і інструменти для кількох агентів](/uk/tools/multi-agent-sandbox-tools) -- перевизначення для окремих агентів
|
||||
- [Ізоляція](/uk/gateway/sandboxing) -- повний довідник з ізоляції
|
||||
- [OpenShell](/uk/gateway/openshell) -- інтерактивний shell-доступ до контейнерів ізоляції
|
||||
- [Ізоляція та інструменти для кількох агентів](/uk/tools/multi-agent-sandbox-tools) -- перевизначення на рівні агента
|
||||
|
||||
### Швидке ввімкнення
|
||||
|
||||
@ -359,39 +360,39 @@ gateway.
|
||||
}
|
||||
```
|
||||
|
||||
Зберіть типовий образ sandbox:
|
||||
Зберіть стандартний образ ізоляції:
|
||||
|
||||
```bash
|
||||
scripts/sandbox-setup.sh
|
||||
```
|
||||
|
||||
## Усунення несправностей
|
||||
## Усунення проблем
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Образ відсутній або контейнер sandbox не запускається">
|
||||
Зберіть образ sandbox за допомогою
|
||||
<Accordion title="Образ відсутній або контейнер ізоляції не запускається">
|
||||
Зберіть образ ізоляції за допомогою
|
||||
[`scripts/sandbox-setup.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/sandbox-setup.sh)
|
||||
або встановіть власний образ у `agents.defaults.sandbox.docker.image`.
|
||||
або встановіть `agents.defaults.sandbox.docker.image` на ваш власний образ.
|
||||
Контейнери автоматично створюються для кожного сеансу за потреби.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Помилки дозволів у sandbox">
|
||||
Встановіть `docker.user` у UID:GID, що відповідає власнику змонтованого workspace,
|
||||
або змініть власника папки workspace через chown.
|
||||
<Accordion title="Помилки дозволів в ізоляції">
|
||||
Установіть `docker.user` на UID:GID, що відповідає власнику змонтованого робочого простору,
|
||||
або змініть власника теки робочого простору через `chown`.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="У sandbox не знайдено користувацькі інструменти">
|
||||
OpenClaw запускає команди через `sh -lc` (login shell), який завантажує
|
||||
`/etc/profile` і може скинути PATH. Встановіть `docker.env.PATH`, щоб додати
|
||||
шляхи до ваших користувацьких інструментів, або додайте скрипт у `/etc/profile.d/` у вашому Dockerfile.
|
||||
<Accordion title="Користувацькі інструменти не знайдено в ізоляції">
|
||||
OpenClaw виконує команди через `sh -lc` (login shell), який завантажує
|
||||
`/etc/profile` і може скидати PATH. Установіть `docker.env.PATH`, щоб додати
|
||||
ваші шляхи до користувацьких інструментів на початок, або додайте скрипт у `/etc/profile.d/` у вашому Dockerfile.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Під час збирання образу завершено через OOM (код виходу 137)">
|
||||
<Accordion title="Завершення через OOM під час збирання образу (exit 137)">
|
||||
VM потребує щонайменше 2 ГБ RAM. Використайте більший клас машини й повторіть спробу.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Unauthorized або потрібне pairing у Control UI">
|
||||
Отримайте нове посилання dashboard і схваліть пристрій браузера:
|
||||
<Accordion title="Unauthorized або потрібне pair-ing у Control UI">
|
||||
Отримайте нове посилання Dashboard і підтвердьте браузерний пристрій:
|
||||
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli dashboard --no-open
|
||||
@ -403,8 +404,8 @@ scripts/sandbox-setup.sh
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Ціль gateway показує ws://172.x.x.x або помилки pairing з Docker CLI">
|
||||
Скиньте режим і bind gateway:
|
||||
<Accordion title="Ціль Gateway показує ws://172.x.x.x або помилки pair-ing із Docker CLI">
|
||||
Скиньте режим і прив’язку Gateway:
|
||||
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"}]'
|
||||
@ -414,10 +415,10 @@ scripts/sandbox-setup.sh
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Пов’язані матеріали
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд встановлення](/uk/install) — усі способи встановлення
|
||||
- [Podman](/uk/install/podman) — альтернатива Docker на базі Podman
|
||||
- [ClawDock](/uk/install/clawdock) — спільнотне налаштування Docker Compose
|
||||
- [Оновлення](/uk/install/updating) — як підтримувати OpenClaw в актуальному стані
|
||||
- [Конфігурація](/uk/gateway/configuration) — конфігурація gateway після встановлення
|
||||
- [Оновлення](/uk/install/updating) — підтримання OpenClaw в актуальному стані
|
||||
- [Конфігурація](/uk/gateway/configuration) — конфігурація Gateway після встановлення
|
||||
|
||||
Loading…
Reference in New Issue
Block a user