chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-29 00:43:25 +00:00
parent 388bbe5014
commit ad2af3a818

View File

@ -2,33 +2,33 @@
read_when:
- Вам потрібен контейнеризований Gateway замість локальних встановлень
- Ви перевіряєте процес Docker
summary: Необов’язкове налаштування та онбординг OpenClaw на основі Docker
summary: Необов’язкове налаштування й онбординг OpenClaw на основі Docker
title: Docker
x-i18n:
generated_at: "2026-04-28T22:58:33Z"
generated_at: "2026-04-29T00:42:23Z"
model: gpt-5.5
provider: openai
source_hash: 71027022ab9fe1c5a14aa67f0e3edabb0e2aa3c668752637caef49bab5a591de
source_hash: c67a6351afb09961ff3b2e95a132acff7f33b02d3b67330d4608c46e3c18f63a
source_path: install/docker.md
workflow: 16
---
Docker є **необов'язковим**. Використовуйте його лише якщо вам потрібен контейнеризований Gateway або потрібно перевірити Docker-процес.
Docker є **необовязковим**. Використовуйте його лише якщо вам потрібен контейнеризований Gateway або перевірка Docker-потоку.
## Чи підходить мені Docker?
- **Так**: вам потрібне ізольоване одноразове середовище Gateway або запуск OpenClaw на хості без локальних встановлень.
- **Ні**: ви працюєте на власному комп'ютері й хочете лише найшвидший цикл розробки. Натомість використовуйте звичайний процес встановлення.
- **Примітка щодо ізоляції**: стандартний бекенд ізоляції використовує Docker, коли ізоляцію ввімкнено, але ізоляцію вимкнено за замовчуванням і вона **не** вимагає запуску всього Gateway у Docker. Також доступні бекенди ізоляції SSH і OpenShell. Див. [Ізоляція](/uk/gateway/sandboxing).
- **Так**: вам потрібне ізольоване, одноразове середовище Gateway або запуск OpenClaw на хості без локальних встановлень.
- **Ні**: ви запускаєте на власній машині й просто хочете найшвидший цикл розробки. Натомість скористайтеся звичайним потоком встановлення.
- **Примітка щодо ізоляції**: стандартний бекенд ізоляції використовує 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` для брандмауера.
особливо політику firewall Docker `DOCKER-USER`.
## Контейнеризований Gateway
@ -53,24 +53,24 @@ Docker є **необов'язковим**. Використовуйте його
</Step>
<Step title="Завершіть онбординг">
Скрипт налаштування автоматично запускає онбординг. Він:
<Step title="Завершіть onboarding">
Скрипт налаштування автоматично запускає onboarding. Він:
- запросить API-ключі провайдера
- попросить API-ключі провайдера
- згенерує токен Gateway і запише його в `.env`
- запустить Gateway через Docker Compose
Під час налаштування онбординг перед запуском і записи конфігурації виконуються напряму через
`openclaw-gateway`. `openclaw-cli` призначений для команд, які ви запускаєте після того,
Під час налаштування onboarding перед стартом і записи конфігурації виконуються через
`openclaw-gateway` напряму. `openclaw-cli` призначений для команд, які ви запускаєте після того,
як контейнер Gateway уже існує.
</Step>
<Step title="Відкрийте Control UI">
Відкрийте `http://127.0.0.1:18789/` у браузері й вставте налаштований
Відкрийте `http://127.0.0.1:18789/` у браузері та вставте налаштований
спільний секрет у Settings. Скрипт налаштування за замовчуванням записує токен у `.env`;
якщо ви перемкнете конфігурацію контейнера на автентифікацію паролем, використовуйте натомість
цей пароль.
якщо ви перемкнете конфігурацію контейнера на автентифікацію паролем, використовуйте
натомість цей пароль.
Потрібна URL-адреса ще раз?
@ -80,7 +80,7 @@ Docker є **необов'язковим**. Використовуйте його
</Step>
<Step title="Налаштуйте канали (необов'язково)">
<Step title="Налаштуйте канали (необовязково)">
Використовуйте контейнер CLI, щоб додати канали обміну повідомленнями:
```bash
@ -99,9 +99,9 @@ Docker є **необов'язковим**. Використовуйте його
</Step>
</Steps>
### Ручний процес
### Ручний потік
Якщо ви бажаєте запускати кожен крок самостійно замість використання скрипта налаштування:
Якщо ви віддаєте перевагу самостійному запуску кожного кроку замість використання скрипта налаштування:
```bash
docker build -t openclaw:local -f Dockerfile .
@ -119,47 +119,47 @@ docker compose up -d openclaw-gateway
</Note>
<Note>
Оскільки `openclaw-cli` використовує простір імен мережі `openclaw-gateway`, це
інструмент після запуску. Перед `docker compose up -d openclaw-gateway` запускайте онбординг
Оскільки `openclaw-cli` спільно використовує мережевий простір імен `openclaw-gateway`, це
інструмент після старту. Перед `docker compose up -d openclaw-gateway` запускайте onboarding
і записи конфігурації під час налаштування через `openclaw-gateway` з
`--no-deps --entrypoint node`.
</Note>
### Змінні середовища
Скрипт налаштування приймає такі необов'язкові змінні середовища:
Скрипт налаштування приймає такі необовязкові змінні середовища:
| Змінна | Призначення |
| ----------------------------------------- | --------------------------------------------------------------- |
| `OPENCLAW_IMAGE` | Використати віддалений образ замість локального збирання |
| `OPENCLAW_DOCKER_APT_PACKAGES` | Встановити додаткові пакети apt під час збирання (через пробіл) |
| `OPENCLAW_EXTENSIONS` | Попередньо встановити залежності Plugin під час збирання (назви через пробіл) |
| `OPENCLAW_IMAGE` | Використати віддалений образ замість локального складання |
| `OPENCLAW_DOCKER_APT_PACKAGES` | Встановити додаткові пакунки apt під час складання (розділені пробілами) |
| `OPENCLAW_EXTENSIONS` | Попередньо встановити залежності Plugin під час складання (імена, розділені пробілами) |
| `OPENCLAW_EXTRA_MOUNTS` | Додаткові bind mounts хоста (розділені комами `source:target[:opts]`) |
| `OPENCLAW_HOME_VOLUME` | Зберігати `/home/node` в іменованому томі Docker |
| `OPENCLAW_PLUGIN_STAGE_DIR` | Шлях контейнера для згенерованих залежностей і дзеркал bundled Plugin |
| `OPENCLAW_PLUGIN_STAGE_DIR` | Шлях контейнера для згенерованих залежностей bundled Plugin і дзеркал |
| `OPENCLAW_SANDBOX` | Увімкнути bootstrap ізоляції (`1`, `true`, `yes`, `on`) |
| `OPENCLAW_SKIP_ONBOARDING` | Пропустити інтерактивний крок онбордингу (`1`, `true`, `yes`, `on`) |
| `OPENCLAW_SKIP_ONBOARDING` | Пропустити інтерактивний крок onboarding (`1`, `true`, `yes`, `on`) |
| `OPENCLAW_DOCKER_SOCKET` | Перевизначити шлях до сокета Docker |
| `OPENCLAW_DISABLE_BONJOUR` | Вимкнути рекламу Bonjour/mDNS (за замовчуванням `1` для Docker) |
| `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS` | Вимкнути bind-mount overlays джерельного коду bundled Plugin |
| `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS` | Вимкнути накладення bind-mount для вихідного коду bundled Plugin |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Спільна кінцева точка колектора OTLP/HTTP для експорту OpenTelemetry |
| `OTEL_EXPORTER_OTLP_*_ENDPOINT` | Сигнально-специфічні кінцеві точки OTLP для трас, метрик або журналів |
| `OTEL_EXPORTER_OTLP_*_ENDPOINT` | Кінцеві точки OTLP для окремих сигналів: трас, метрик або журналів |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | Перевизначення протоколу OTLP. Наразі підтримується лише `http/protobuf` |
| `OTEL_SERVICE_NAME` | Назва сервісу, що використовується для ресурсів OpenTelemetry |
| `OTEL_SEMCONV_STABILITY_OPT_IN` | Увімкнути найновіші експериментальні семантичні атрибути GenAI |
| `OPENCLAW_OTEL_PRELOADED` | Пропустити запуск другого OpenTelemetry SDK, коли один уже попередньо завантажено |
| `OPENCLAW_OTEL_PRELOADED` | Пропустити запуск другого OpenTelemetry SDK, коли один уже попередньо завантажений |
Мейнтейнери можуть перевіряти джерельний код bundled Plugin проти упакованого образу, монтувавши
один каталог джерельного коду Plugin поверх його упакованого шляху джерельного коду, наприклад
Maintainers можуть тестувати вихідний код bundled Plugin проти упакованого образу, змонтувавши
один каталог вихідного коду Plugin поверх його упакованого шляху вихідного коду, наприклад
`OPENCLAW_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro`.
Цей змонтований каталог джерельного коду перевизначає відповідний скомпільований
bundle `/app/dist/extensions/synology-chat` для того самого id Plugin.
Цей змонтований каталог вихідного коду перевизначає відповідний скомпільований bundle
`/app/dist/extensions/synology-chat` для того самого Plugin id.
### Спостережуваність
Експорт OpenTelemetry є вихідним з контейнера Gateway до вашого
колектора OTLP. Він не потребує опублікованого порту Docker. Якщо ви збираєте образ
локально й хочете, щоб bundled exporter OpenTelemetry був доступний всередині образу,
Експорт OpenTelemetry є вихідним з контейнера Gateway до вашого колектора OTLP.
Він не потребує опублікованого порту Docker. Якщо ви збираєте образ
локально й хочете, щоб bundled експортер OpenTelemetry був доступний усередині образу,
додайте його runtime-залежності:
```bash
@ -169,41 +169,41 @@ export OTEL_SERVICE_NAME="openclaw-gateway"
./scripts/docker/setup.sh
```
Офіційний release-образ Docker OpenClaw містить джерельний код bundled
Офіційний Docker-образ релізу OpenClaw містить вихідний код bundled
Plugin `diagnostics-otel`. Залежно від образу та стану кешу,
Gateway все ще може підготувати локальні для Plugin runtime-залежності OpenTelemetry під час
першого ввімкнення Plugin, тому дозвольте цьому першому запуску дістатися до реєстру пакетів
або попередньо прогрійте образ у вашій release-лінії. Щоб увімкнути експорт, дозвольте й
увімкніть Plugin `diagnostics-otel` у конфігурації, потім установіть
`diagnostics.otel.enabled=true` або використайте приклад конфігурації в
Gateway все ще може підготувати локальні runtime-залежності OpenTelemetry для Plugin
під час першого ввімкнення Plugin, тому дозвольте першому завантаженню дістатися до реєстру
пакунків або попередньо прогрійте образ у вашій релізній lane. Щоб увімкнути експорт, дозвольте та
ввімкніть Plugin `diagnostics-otel` у конфігурації, потім задайте
`diagnostics.otel.enabled=true` або скористайтеся прикладом конфігурації в
[Експорт OpenTelemetry](/uk/gateway/opentelemetry). Заголовки автентифікації колектора
налаштовуються через `diagnostics.otel.headers`, а не через змінні середовища Docker.
Метрики Prometheus використовують уже опублікований порт Gateway. Увімкніть
Plugin `diagnostics-prometheus`, потім виконуйте scrape:
Plugin `diagnostics-prometheus`, потім виконайте scrape:
```text
http://<gateway-host>:18789/api/diagnostics/prometheus
```
Маршрут захищено автентифікацією Gateway. Не відкривайте окремий
Маршрут захищений автентифікацією Gateway. Не відкривайте окремий
публічний порт `/metrics` або неавтентифікований шлях reverse-proxy. Див.
[Метрики Prometheus](/uk/gateway/prometheus).
### Перевірки стану
Кінцеві точки probe контейнера (автентифікація не потрібна):
Кінцеві точки probes контейнера (автентифікація не потрібна):
```bash
curl -fsS http://127.0.0.1:18789/healthz # liveness
curl -fsS http://127.0.0.1:18789/readyz # readiness
```
Образ Docker містить вбудований `HEALTHCHECK`, який звертається до `/healthz`.
Якщо перевірки постійно не проходять, Docker позначає контейнер як `unhealthy`, а
Docker-образ містить вбудований `HEALTHCHECK`, який звертається до `/healthz`.
Якщо перевірки продовжують падати, Docker позначає контейнер як `unhealthy`, а
системи оркестрації можуть перезапустити або замінити його.
Автентифікований глибокий знімок стану:
Автентифікований глибокий snapshot стану:
```bash
docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLAW_GATEWAY_TOKEN"
@ -212,11 +212,11 @@ docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLA
### LAN проти loopback
`scripts/docker/setup.sh` за замовчуванням задає `OPENCLAW_GATEWAY_BIND=lan`, щоб доступ хоста до
`http://127.0.0.1:18789` працював із публікацією порту Docker.
`http://127.0.0.1:18789` працював з публікацією портів Docker.
- `lan` (за замовчуванням): браузер хоста й CLI хоста можуть звертатися до опублікованого порту Gateway.
- `loopback`: лише процеси всередині простору імен мережі контейнера можуть звертатися
до Gateway напряму.
- `loopback`: лише процеси всередині мережевого простору імен контейнера можуть
звертатися до Gateway напряму.
<Note>
Використовуйте значення режиму bind у `gateway.bind` (`lan` / `loopback` / `custom` /
@ -225,21 +225,21 @@ docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLA
### Локальні провайдери хоста
Коли OpenClaw працює в Docker, `127.0.0.1` всередині контейнера є самим контейнером,
Коли OpenClaw працює в Docker, `127.0.0.1` усередині контейнера є самим контейнером,
а не вашою хост-машиною. Використовуйте `host.docker.internal` для AI-провайдерів, які
працюють на хості:
| Провайдер | Стандартна URL-адреса хоста | URL-адреса налаштування Docker |
| --------- | --------------------------- | ------------------------------ |
| Провайдер | Стандартна URL-адреса хоста | URL-адреса для налаштування Docker |
| --------- | --------------------------- | ---------------------------------- |
| LM Studio | `http://127.0.0.1:1234` | `http://host.docker.internal:1234` |
| Ollama | `http://127.0.0.1:11434` | `http://host.docker.internal:11434` |
Bundled налаштування Docker використовує ці URL-адреси хоста як стандартні значення онбордингу
LM Studio та Ollama, а `docker-compose.yml` зіставляє `host.docker.internal` із
Bundled налаштування Docker використовує ці URL-адреси хоста як стандартні значення onboarding
для LM Studio та Ollama, а `docker-compose.yml` відображає `host.docker.internal` на
host gateway Docker для Linux Docker Engine. Docker Desktop уже надає
те саме ім'я хоста на macOS і Windows.
таке саме ім’я хоста на macOS і Windows.
Сервіси хоста також мають слухати адресу, доступну з Docker:
Сервіси хоста також мають слухати на адресі, доступній з Docker:
```bash
lms server start --port 1234 --bind 0.0.0.0
@ -252,71 +252,75 @@ OLLAMA_HOST=0.0.0.0:11434 ollama serve
### Bonjour / mDNS
Bridge-мережа Docker зазвичай ненадійно пересилає multicast Bonjour/mDNS
(`224.0.0.251:5353`). Тому bundled налаштування Compose за замовчуванням задає
`OPENCLAW_DISABLE_BONJOUR=1`, щоб Gateway не потрапляв у crash-loop або не перезапускав
Мережа Docker bridge зазвичай не пересилає multicast Bonjour/mDNS
(`224.0.0.251:5353`) надійно. Тому bundled налаштування Compose за замовчуванням задає
`OPENCLAW_DISABLE_BONJOUR=1`, щоб Gateway не потрапляв у crash-loop і не перезапускав
рекламу повторно, коли bridge відкидає multicast-трафік.
Для Docker-хостів використовуйте опубліковану URL-адресу Gateway, Tailscale або wide-area DNS-SD.
Установлюйте `OPENCLAW_DISABLE_BONJOUR=0` лише під час запуску з host networking, macvlan
Використовуйте опубліковану URL-адресу Gateway, Tailscale або wide-area DNS-SD для Docker-хостів.
Задавайте `OPENCLAW_DISABLE_BONJOUR=0` лише під час запуску з host networking, macvlan
або іншою мережею, де multicast mDNS гарантовано працює.
Підводні камені й усунення несправностей див. у [Виявлення Bonjour](/uk/gateway/bonjour).
Про нюанси й усунення неполадок див. [Виявлення Bonjour](/uk/gateway/bonjour).
### Сховище та сталість
### Сховище та збереження даних
Docker Compose bind-mounts `OPENCLAW_CONFIG_DIR` до `/home/node/.openclaw` і
`OPENCLAW_WORKSPACE_DIR` до `/home/node/.openclaw/workspace`, тому ці шляхи
зберігаються після заміни контейнера.
зберігаються після заміни контейнера. Коли будь-яка зі змінних не задана, bundled
`docker-compose.yml` повертається до `${HOME}/.openclaw` (і
`${HOME}/.openclaw/workspace` для монтування workspace) або до `/tmp/.openclaw`,
коли сам `HOME` також відсутній. Це не дає `docker compose up`
створювати специфікацію тому з порожнім source у мінімальних середовищах.
У цьому змонтованому каталозі конфігурації OpenClaw зберігає:
- `openclaw.json` для конфігурації поведінки
- `agents/<agentId>/agent/auth-profiles.json` для збереженої OAuth/API-key автентифікації провайдера
- `.env` для runtime-секретів із середовища, таких як `OPENCLAW_GATEWAY_TOKEN`
- `agents/<agentId>/agent/auth-profiles.json` для збереженої автентифікації провайдерів OAuth/API-key
- `.env` для runtime-секретів на основі env, таких як `OPENCLAW_GATEWAY_TOKEN`
Bundled runtime-залежності Plugin і дзеркальовані runtime-файли є згенерованим
станом, а не користувацькою конфігурацією. Compose зберігає їх в іменованому томі Docker
`openclaw-plugin-runtime-deps`, змонтованому в
`/var/lib/openclaw/plugin-runtime-deps`. Винесення цього дерева з великою кількістю змін за межі
bind mount конфігурації хоста запобігає повільним файловим операціям Docker Desktop/WSL і застарілим
дескрипторам Windows під час холодного запуску Gateway.
Bundled plugin runtime dependencies and mirrored runtime files are generated
state, not user config. Compose stores them in the named Docker volume
`openclaw-plugin-runtime-deps` mounted at
`/var/lib/openclaw/plugin-runtime-deps`. Keeping that high-churn tree out of the
host config bind mount avoids slow Docker Desktop/WSL file operations and stale
Windows handles during cold Gateway startup.
Стандартний файл Compose задає `OPENCLAW_PLUGIN_STAGE_DIR` на цей шлях як для
`openclaw-gateway`, так і для `openclaw-cli`, тому `openclaw doctor --fix`, команди
входу/налаштування каналів і запуск Gateway використовують той самий згенерований
том середовища виконання.
The default Compose file sets `OPENCLAW_PLUGIN_STAGE_DIR` to that path for both
`openclaw-gateway` and `openclaw-cli`, so `openclaw doctor --fix`, channel
login/setup commands, and Gateway startup all use the same generated runtime
volume.
Повні відомості про сталість даних у розгортаннях VM див.
[Середовище виконання Docker VM - що де зберігається](/uk/install/docker-vm-runtime#what-persists-where).
For full persistence details on VM deployments, see
[Docker VM Runtime - What persists where](/uk/install/docker-vm-runtime#what-persists-where).
**Гарячі точки зростання диска:** стежте за `media/`, файлами JSONL сесій, `cron/runs/*.jsonl`,
томом Docker `openclaw-plugin-runtime-deps` і ротаційними файловими журналами в
**Disk growth hotspots:** watch `media/`, session JSONL files, `cron/runs/*.jsonl`,
the `openclaw-plugin-runtime-deps` Docker volume, and rolling file logs under
`/tmp/openclaw/`.
### Допоміжні shell-скрипти (необов'язково)
### Shell helpers (optional)
Для простішого щоденного керування Docker встановіть `ClawDock`:
For easier day-to-day Docker management, install `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`, повторно виконайте наведену вище команду встановлення, щоб ваш локальний допоміжний файл відстежував нове розташування.
If you installed ClawDock from the older `scripts/shell-helpers/clawdock-helpers.sh` raw path, rerun the install command above so your local helper file tracks the new location.
Потім використовуйте `clawdock-start`, `clawdock-stop`, `clawdock-dashboard` тощо. Запустіть
`clawdock-help`, щоб переглянути всі команди.
Повний посібник із допоміжних скриптів див. у [ClawDock](/uk/install/clawdock).
Then use `clawdock-start`, `clawdock-stop`, `clawdock-dashboard`, etc. Run
`clawdock-help` for all commands.
See [ClawDock](/uk/install/clawdock) for the full helper guide.
<AccordionGroup>
<Accordion title="Увімкнути пісочницю агента для Docker gateway">
<Accordion title="Enable agent sandbox for Docker gateway">
```bash
export OPENCLAW_SANDBOX=1
./scripts/docker/setup.sh
```
Власний шлях до сокета (наприклад, rootless Docker):
Custom socket path (e.g. rootless Docker):
```bash
export OPENCLAW_SANDBOX=1
@ -324,14 +328,14 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
./scripts/docker/setup.sh
```
Скрипт монтує `docker.sock` лише після успішної перевірки передумов пісочниці. Якщо
налаштування пісочниці не може завершитися, скрипт скидає `agents.defaults.sandbox.mode`
на `off`.
The script mounts `docker.sock` only after sandbox prerequisites pass. If
sandbox setup cannot complete, the script resets `agents.defaults.sandbox.mode`
to `off`.
</Accordion>
<Accordion title="Автоматизація / CI (неінтерактивно)">
Вимкніть виділення псевдо-TTY Compose за допомогою `-T`:
<Accordion title="Automation / CI (non-interactive)">
Disable Compose pseudo-TTY allocation with `-T`:
```bash
docker compose run -T --rm openclaw-cli gateway probe
@ -340,16 +344,16 @@ 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` і вмикає
`no-new-privileges` для `openclaw-cli`.
<Accordion title="Shared-network security note">
`openclaw-cli` uses `network_mode: "service:openclaw-gateway"` so CLI
commands can reach the gateway over `127.0.0.1`. Treat this as a shared
trust boundary. The compose config drops `NET_RAW`/`NET_ADMIN` and enables
`no-new-privileges` on `openclaw-cli`.
</Accordion>
<Accordion title="Дозволи та EACCES">
Образ запускається як `node` (uid 1000). Якщо ви бачите помилки дозволів для
`/home/node/.openclaw`, переконайтеся, що bind-монтування на хості належать uid 1000:
<Accordion title="Permissions and EACCES">
The image runs as `node` (uid 1000). If you see permission errors on
`/home/node/.openclaw`, make sure your host bind mounts are owned by uid 1000:
```bash
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
@ -357,9 +361,9 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
</Accordion>
<Accordion title="Швидші перебудови">
Упорядкуйте Dockerfile так, щоб шари залежностей кешувалися. Це дає змогу не запускати
`pnpm install` повторно, якщо lock-файли не змінилися:
<Accordion title="Faster rebuilds">
Order your Dockerfile so dependency layers are cached. This avoids re-running
`pnpm install` unless lockfiles change:
```dockerfile
FROM node:24-bookworm
@ -381,65 +385,65 @@ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
</Accordion>
<Accordion title="Параметри контейнера для досвідчених користувачів">
Стандартний образ орієнтований передусім на безпеку й запускається як непривілейований `node`. Для
функціональнішого контейнера:
<Accordion title="Power-user container options">
The default image is security-first and runs as non-root `node`. For a more
full-featured container:
1. **Зберігайте `/home/node` стало**: `export OPENCLAW_HOME_VOLUME="openclaw_home"`
2. **Вбудуйте системні залежності**: `export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq"`
3. **Установіть браузери Playwright**:
1. **Persist `/home/node`**: `export OPENCLAW_HOME_VOLUME="openclaw_home"`
2. **Bake system deps**: `export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq"`
3. **Install Playwright browsers**:
```bash
docker compose run --rm openclaw-cli \
node /app/node_modules/playwright-core/cli.js install chromium
```
4. **Зберігайте завантаження браузерів стало**: задайте
`PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright` і використовуйте
`OPENCLAW_HOME_VOLUME` або `OPENCLAW_EXTRA_MOUNTS`.
4. **Persist browser downloads**: set
`PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright` and use
`OPENCLAW_HOME_VOLUME` or `OPENCLAW_EXTRA_MOUNTS`.
</Accordion>
<Accordion title="OpenAI Codex OAuth (headless Docker)">
Якщо ви виберете OpenAI Codex OAuth у майстрі, він відкриє URL браузера. У
Docker або headless-налаштуваннях скопіюйте повну URL-адресу перенаправлення, на яку ви потрапите, і вставте
її назад у майстер, щоб завершити автентифікацію.
If you pick OpenAI Codex OAuth in the wizard, it opens a browser URL. In
Docker or headless setups, copy the full redirect URL you land on and paste
it back into the wizard to finish auth.
</Accordion>
<Accordion title="Метадані базового образу">
Основний Docker-образ середовища виконання використовує `node:24-bookworm-slim` і публікує OCI
анотації базового образу, зокрема `org.opencontainers.image.base.name`,
`org.opencontainers.image.source` та інші. Дайджест базового образу Node
оновлюється через PR Dependabot для базових Docker-образів; release-збірки не запускають
шар оновлення дистрибутива. Див.
[Анотації OCI-образів](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
<Accordion title="Base image metadata">
The main Docker runtime image uses `node:24-bookworm-slim` and publishes OCI
base-image annotations including `org.opencontainers.image.base.name`,
`org.opencontainers.image.source`, and others. The Node base digest is
refreshed through Dependabot Docker base-image PRs; release builds do not run
a distro upgrade layer. See
[OCI image annotations](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
</Accordion>
</AccordionGroup>
### Запускаєте на VPS?
### Running on a VPS?
Див. [Hetzner (Docker VPS)](/uk/install/hetzner) і
[Середовище виконання Docker VM](/uk/install/docker-vm-runtime) щодо спільних кроків розгортання VM,
зокрема вбудовування бінарних файлів, сталості даних і оновлень.
See [Hetzner (Docker VPS)](/uk/install/hetzner) and
[Docker VM Runtime](/uk/install/docker-vm-runtime) for shared VM deployment steps
including binary baking, persistence, and updates.
## Пісочниця агента
## Agent sandbox
Коли `agents.defaults.sandbox` увімкнено з бекендом Docker, gateway
запускає виконання інструментів агента (shell, читання/запис файлів тощо) в ізольованих Docker
контейнерах, тоді як сам gateway залишається на хості. Це створює жорстку межу
навколо ненадійних або багатокористувацьких сесій агентів без контейнеризації всього
When `agents.defaults.sandbox` is enabled with the Docker backend, the gateway
runs agent tool execution (shell, file read/write, etc.) inside isolated Docker
containers while the gateway itself stays on the host. This gives you a hard wall
around untrusted or multi-tenant agent sessions without containerizing the entire
gateway.
Область пісочниці може бути для окремого агента (стандартно), для окремої сесії або спільною. Кожна область
отримує власний робочий простір, змонтований у `/workspace`. Також можна налаштувати
політики дозволу/заборони інструментів, ізоляцію мережі, обмеження ресурсів і браузерні
контейнери.
Sandbox scope can be per-agent (default), per-session, or shared. Each scope
gets its own workspace mounted at `/workspace`. You can also configure
allow/deny tool policies, network isolation, resource limits, and browser
containers.
Повну конфігурацію, образи, примітки щодо безпеки та профілі для кількох агентів див.:
For full configuration, images, security notes, and multi-agent profiles, see:
- [Пісочниця](/uk/gateway/sandboxing) -- повний довідник із пісочниці
- [OpenShell](/uk/gateway/openshell) -- інтерактивний shell-доступ до контейнерів пісочниці
- [Пісочниця та інструменти для кількох агентів](/uk/tools/multi-agent-sandbox-tools) -- перевизначення для окремих агентів
- [Sandboxing](/uk/gateway/sandboxing) -- complete sandbox reference
- [OpenShell](/uk/gateway/openshell) -- interactive shell access to sandbox containers
- [Multi-Agent Sandbox and Tools](/uk/tools/multi-agent-sandbox-tools) -- per-agent overrides
### Швидке ввімкнення
### Quick enable
```json5
{
@ -454,39 +458,39 @@ gateway.
}
```
Зберіть стандартний образ пісочниці:
Build the default sandbox image:
```bash
scripts/sandbox-setup.sh
```
## Усунення неполадок
## Troubleshooting
<AccordionGroup>
<Accordion title="Образ відсутній або контейнер пісочниці не запускається">
Зберіть образ пісочниці за допомогою
<Accordion title="Image missing or sandbox container not starting">
Build the sandbox image with
[`scripts/sandbox-setup.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/sandbox-setup.sh)
або задайте `agents.defaults.sandbox.docker.image` на ваш власний образ.
Контейнери автоматично створюються для кожної сесії на вимогу.
or set `agents.defaults.sandbox.docker.image` to your custom image.
Containers are auto-created per session on demand.
</Accordion>
<Accordion title="Помилки дозволів у пісочниці">
Установіть `docker.user` на UID:GID, що відповідає власнику змонтованого робочого простору,
або змініть власника папки робочого простору за допомогою chown.
<Accordion title="Permission errors in sandbox">
Set `docker.user` to a UID:GID that matches your mounted workspace ownership,
or chown the workspace folder.
</Accordion>
<Accordion title="Власні інструменти не знайдено в пісочниці">
OpenClaw запускає команди через `sh -lc` (login shell), який зчитує
`/etc/profile` і може скидати PATH. Задайте `docker.env.PATH`, щоб додати на початок ваші
власні шляхи до інструментів, або додайте скрипт у `/etc/profile.d/` у вашому Dockerfile.
<Accordion title="Custom tools not found in sandbox">
OpenClaw runs commands with `sh -lc` (login shell), which sources
`/etc/profile` and may reset PATH. Set `docker.env.PATH` to prepend your
custom tool paths, or add a script under `/etc/profile.d/` in your Dockerfile.
</Accordion>
<Accordion title="OOM-killed під час збирання образу (exit 137)">
VM потребує щонайменше 2 GB RAM. Використайте більший клас машини й повторіть спробу.
<Accordion title="OOM-killed during image build (exit 137)">
The VM needs at least 2 GB RAM. Use a larger machine class and retry.
</Accordion>
<Accordion title="Неавторизовано або потрібне сполучення в інтерфейсі керування">
Отримайте свіже посилання на панель керування й схваліть пристрій браузера:
<Accordion title="Unauthorized or pairing required in Control UI">
Fetch a fresh dashboard link and approve the browser device:
```bash
docker compose run --rm openclaw-cli dashboard --no-open
@ -494,12 +498,12 @@ scripts/sandbox-setup.sh
docker compose run --rm openclaw-cli devices approve <requestId>
```
Докладніше: [Панель керування](/uk/web/dashboard), [Пристрої](/uk/cli/devices).
More detail: [Dashboard](/uk/web/dashboard), [Devices](/uk/cli/devices).
</Accordion>
<Accordion title="Ціль Gateway показує ws://172.x.x.x або помилки сполучення з Docker CLI">
Скиньте режим gateway і прив'язку:
<Accordion title="Gateway target shows ws://172.x.x.x or pairing errors from Docker CLI">
Reset gateway mode and bind:
```bash
docker compose run --rm openclaw-cli config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"}]'
@ -509,10 +513,10 @@ scripts/sandbox-setup.sh
</Accordion>
</AccordionGroup>
## Пов'язане
## Related
- [Огляд встановлення](/uk/install) — усі способи встановлення
- [Podman](/uk/install/podman) — альтернатива Podman для Docker
- [ClawDock](/uk/install/clawdock) — спільнотне налаштування Docker Compose
- [Оновлення](/uk/install/updating) — підтримання OpenClaw в актуальному стані
- [Конфігурація](/uk/gateway/configuration) — конфігурація gateway після встановлення
- [Install Overview](/uk/install) — all installation methods
- [Podman](/uk/install/podman) — Podman alternative to Docker
- [ClawDock](/uk/install/clawdock) — Docker Compose community setup
- [Updating](/uk/install/updating) — keeping OpenClaw up to date
- [Configuration](/uk/gateway/configuration) — gateway configuration after install