chore(i18n): refresh uk translations
This commit is contained in:
parent
559e846d14
commit
a67e5ae814
@ -2,46 +2,46 @@
|
||||
read_when:
|
||||
- Розгортання OpenClaw на Fly.io
|
||||
- Налаштування томів Fly, секретів і конфігурації першого запуску
|
||||
summary: Покрокове розгортання OpenClaw на Fly.io зі сталим сховищем і HTTPS
|
||||
summary: Покрокове розгортання OpenClaw на Fly.io з постійним сховищем і HTTPS
|
||||
title: Fly.io
|
||||
x-i18n:
|
||||
generated_at: "2026-04-27T07:08:16Z"
|
||||
model: gpt-5.4
|
||||
generated_at: "2026-05-03T13:42:43Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 195a77c4cec439dc2b5030f5ee618274df76b16d878b8d16e65a754e4bd8072c
|
||||
source_hash: d9b98b2d1c102195e31ee7e93ba075e6cfa16080e78f8e17fc006a62d300ce1a
|
||||
source_path: install/fly.md
|
||||
workflow: 15
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
# Розгортання Fly.io
|
||||
|
||||
**Мета:** Gateway OpenClaw, що працює на машині [Fly.io](https://fly.io), зі сталим сховищем, автоматичним HTTPS і доступом до Discord/каналів.
|
||||
**Мета:** OpenClaw Gateway, запущений на машині [Fly.io](https://fly.io), зі сталим сховищем, автоматичним HTTPS і доступом до Discord/каналу.
|
||||
|
||||
## Що вам потрібно
|
||||
## Що потрібно
|
||||
|
||||
- встановлений [flyctl CLI](https://fly.io/docs/hands-on/install-flyctl/)
|
||||
- обліковий запис Fly.io (безкоштовний тариф підходить)
|
||||
- автентифікація моделі: API-ключ для вибраного вами постачальника моделей
|
||||
- облікові дані каналу: токен Discord-бота, токен Telegram тощо
|
||||
- Встановлений [flyctl CLI](https://fly.io/docs/hands-on/install-flyctl/)
|
||||
- Обліковий запис Fly.io (безкоштовний рівень підходить)
|
||||
- Автентифікація моделі: API-ключ для вибраного постачальника моделей
|
||||
- Облікові дані каналу: токен бота Discord, токен Telegram тощо.
|
||||
|
||||
## Швидкий шлях для початківців
|
||||
|
||||
1. Клонуйте репозиторій → налаштуйте `fly.toml`
|
||||
2. Створіть застосунок і том → задайте секрети
|
||||
3. Розгорніть за допомогою `fly deploy`
|
||||
4. Увійдіть через SSH, щоб створити конфігурацію, або скористайтеся Control UI
|
||||
4. Увійдіть через SSH, щоб створити конфігурацію, або використайте інтерфейс керування
|
||||
|
||||
<Steps>
|
||||
<Step title="Створіть застосунок Fly">
|
||||
<Step title="Create the Fly app">
|
||||
```bash
|
||||
# Клонуйте репозиторій
|
||||
# Clone the repo
|
||||
git clone https://github.com/openclaw/openclaw.git
|
||||
cd openclaw
|
||||
|
||||
# Створіть новий застосунок Fly (виберіть власну назву)
|
||||
# Create a new Fly app (pick your own name)
|
||||
fly apps create my-openclaw
|
||||
|
||||
# Створіть сталий том (зазвичай достатньо 1GB)
|
||||
# Create a persistent volume (1GB is usually enough)
|
||||
fly volumes create openclaw_data --size 1 --region iad
|
||||
```
|
||||
|
||||
@ -49,13 +49,13 @@ x-i18n:
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Налаштуйте fly.toml">
|
||||
Відредагуйте `fly.toml`, щоб він відповідав назві вашого застосунку та вашим вимогам.
|
||||
<Step title="Configure fly.toml">
|
||||
Відредагуйте `fly.toml`, щоб він відповідав назві вашого застосунку та вимогам.
|
||||
|
||||
**Примітка щодо безпеки:** Конфігурація за замовчуванням відкриває публічну URL-адресу. Для захищеного розгортання без публічної IP-адреси див. [Приватне розгортання](#private-deployment-hardened) або використовуйте `fly.private.toml`.
|
||||
**Примітка щодо безпеки:** Типова конфігурація відкриває публічну URL-адресу. Для посиленого розгортання без публічної IP-адреси див. [Приватне розгортання](#private-deployment-hardened) або використайте `deploy/fly.private.toml`.
|
||||
|
||||
```toml
|
||||
app = "my-openclaw" # Назва вашого застосунку
|
||||
app = "my-openclaw" # Your app name
|
||||
primary_region = "iad"
|
||||
|
||||
[build]
|
||||
@ -87,48 +87,48 @@ x-i18n:
|
||||
destination = "/data"
|
||||
```
|
||||
|
||||
**Ключові параметри:**
|
||||
**Ключові налаштування:**
|
||||
|
||||
| Параметр | Навіщо |
|
||||
| ----------------------------- | --------------------------------------------------------------------------- |
|
||||
| `--bind lan` | Прив’язує до `0.0.0.0`, щоб проксі Fly міг досягти gateway |
|
||||
| `--allow-unconfigured` | Запускає без файла конфігурації (ви створите його пізніше) |
|
||||
| `internal_port = 3000` | Має збігатися з `--port 3000` (або `OPENCLAW_GATEWAY_PORT`) для перевірок стану Fly |
|
||||
| `memory = "2048mb"` | 512MB замало; рекомендовано 2GB |
|
||||
| `OPENCLAW_STATE_DIR = "/data"`| Зберігає стан у томі |
|
||||
| Налаштування | Навіщо |
|
||||
| ----------------------------- | -------------------------------------------------------------------------- |
|
||||
| `--bind lan` | Прив’язує до `0.0.0.0`, щоб проксі Fly міг досягати Gateway |
|
||||
| `--allow-unconfigured` | Запускає без файлу конфігурації (ви створите його пізніше) |
|
||||
| `internal_port = 3000` | Має відповідати `--port 3000` (або `OPENCLAW_GATEWAY_PORT`) для перевірок стану Fly |
|
||||
| `memory = "2048mb"` | 512 МБ замало; рекомендовано 2 ГБ |
|
||||
| `OPENCLAW_STATE_DIR = "/data"` | Зберігає стан на томі |
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Задайте секрети">
|
||||
<Step title="Set secrets">
|
||||
```bash
|
||||
# Обов’язково: токен Gateway (для прив’язки не до loopback)
|
||||
# Required: Gateway token (for non-loopback binding)
|
||||
fly secrets set OPENCLAW_GATEWAY_TOKEN=$(openssl rand -hex 32)
|
||||
|
||||
# API-ключі постачальників моделей
|
||||
# Model provider API keys
|
||||
fly secrets set ANTHROPIC_API_KEY=sk-ant-...
|
||||
|
||||
# Необов’язково: інші постачальники
|
||||
# Optional: Other providers
|
||||
fly secrets set OPENAI_API_KEY=sk-...
|
||||
fly secrets set GOOGLE_API_KEY=...
|
||||
|
||||
# Токени каналів
|
||||
# Channel tokens
|
||||
fly secrets set DISCORD_BOT_TOKEN=MTQ...
|
||||
```
|
||||
|
||||
**Примітки:**
|
||||
|
||||
- Прив’язки не до loopback (`--bind lan`) потребують дійсного шляху автентифікації gateway. У цьому прикладі Fly.io використовується `OPENCLAW_GATEWAY_TOKEN`, але вимогу також задовольняють `gateway.auth.password` або правильно налаштоване розгортання `trusted-proxy` не на loopback.
|
||||
- Ставтеся до цих токенів як до паролів.
|
||||
- **Надавайте перевагу env vars замість файла конфігурації** для всіх API-ключів і токенів. Це не дозволить секретам потрапити в `openclaw.json`, де вони можуть бути випадково розкриті або записані в журнали.
|
||||
- Прив’язки не до loopback (`--bind lan`) потребують чинного шляху автентифікації Gateway. У цьому прикладі Fly.io використовується `OPENCLAW_GATEWAY_TOKEN`, але `gateway.auth.password` або правильно налаштоване розгортання `trusted-proxy` не до loopback також задовольняє цю вимогу.
|
||||
- Поводьтеся з цими токенами як із паролями.
|
||||
- **Надавайте перевагу змінним середовища замість файлу конфігурації** для всіх API-ключів і токенів. Це не дає секретам потрапити в `openclaw.json`, де їх можна випадково розкрити або записати в журнал.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Розгорніть">
|
||||
<Step title="Deploy">
|
||||
```bash
|
||||
fly deploy
|
||||
```
|
||||
|
||||
Перше розгортання збирає Docker-образ (~2–3 хвилини). Наступні розгортання швидші.
|
||||
Перше розгортання збирає Docker-образ (~2-3 хвилини). Наступні розгортання швидші.
|
||||
|
||||
Після розгортання перевірте:
|
||||
|
||||
@ -146,14 +146,14 @@ x-i18n:
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Створіть файл конфігурації">
|
||||
Підключіться до машини через SSH, щоб створити правильну конфігурацію:
|
||||
<Step title="Create config file">
|
||||
Увійдіть у машину через SSH, щоб створити належну конфігурацію:
|
||||
|
||||
```bash
|
||||
fly ssh console
|
||||
```
|
||||
|
||||
Створіть каталог конфігурації та файл:
|
||||
Створіть каталог і файл конфігурації:
|
||||
|
||||
```bash
|
||||
mkdir -p /data
|
||||
@ -214,20 +214,18 @@ x-i18n:
|
||||
EOF
|
||||
```
|
||||
|
||||
**Примітка:** З `OPENCLAW_STATE_DIR=/data` шлях до конфігурації — `/data/openclaw.json`.
|
||||
**Примітка:** З `OPENCLAW_STATE_DIR=/data` шлях конфігурації — `/data/openclaw.json`.
|
||||
|
||||
**Примітка:** Замініть `https://my-openclaw.fly.dev` на справжнє
|
||||
origin вашого застосунку Fly. Під час запуску Gateway ініціалізує локальні origin для Control UI на основі значень `--bind` і `--port` у середовищі виконання, тож перший запуск може відбутися ще до існування конфігурації, але для доступу з браузера через Fly все одно потрібно точно вказати HTTPS origin у
|
||||
`gateway.controlUi.allowedOrigins`.
|
||||
**Примітка:** Замініть `https://my-openclaw.fly.dev` на справжнє джерело вашого застосунку Fly. Під час запуску Gateway початково додає локальні джерела інтерфейсу керування з runtime-значень `--bind` і `--port`, щоб перше завантаження могло продовжитися до появи конфігурації, але доступ через браузер через Fly усе одно потребує точної HTTPS-адреси джерела, переліченої в `gateway.controlUi.allowedOrigins`.
|
||||
|
||||
**Примітка:** Токен Discord може надходити з одного з двох джерел:
|
||||
**Примітка:** Токен Discord може надходити з будь-якого з цих джерел:
|
||||
|
||||
- змінна середовища: `DISCORD_BOT_TOKEN` (рекомендовано для секретів)
|
||||
- файл конфігурації: `channels.discord.token`
|
||||
- Змінна середовища: `DISCORD_BOT_TOKEN` (рекомендовано для секретів)
|
||||
- Файл конфігурації: `channels.discord.token`
|
||||
|
||||
Якщо ви використовуєте env var, додавати токен до конфігурації не потрібно. Gateway автоматично зчитує `DISCORD_BOT_TOKEN`.
|
||||
Якщо використовуєте змінну середовища, не потрібно додавати токен у конфігурацію. Gateway автоматично читає `DISCORD_BOT_TOKEN`.
|
||||
|
||||
Перезапустіть, щоб застосувати зміни:
|
||||
Перезапустіть, щоб застосувати:
|
||||
|
||||
```bash
|
||||
exit
|
||||
@ -236,8 +234,8 @@ x-i18n:
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Отримайте доступ до Gateway">
|
||||
### Control UI
|
||||
<Step title="Access the Gateway">
|
||||
### Інтерфейс керування
|
||||
|
||||
Відкрийте в браузері:
|
||||
|
||||
@ -245,18 +243,18 @@ x-i18n:
|
||||
fly open
|
||||
```
|
||||
|
||||
Або перейдіть за адресою `https://my-openclaw.fly.dev/`
|
||||
Або перейдіть на `https://my-openclaw.fly.dev/`
|
||||
|
||||
Автентифікуйтеся за допомогою налаштованого спільного секрету. У цьому посібнику використовується токен gateway з `OPENCLAW_GATEWAY_TOKEN`; якщо ви перейшли на автентифікацію за паролем, використовуйте натомість цей пароль.
|
||||
Автентифікуйтеся за допомогою налаштованого спільного секрету. У цьому посібнику використовується токен Gateway з `OPENCLAW_GATEWAY_TOKEN`; якщо ви перейшли на автентифікацію паролем, використайте натомість цей пароль.
|
||||
|
||||
### Журнали
|
||||
|
||||
```bash
|
||||
fly logs # Журнали в реальному часі
|
||||
fly logs --no-tail # Останні журнали
|
||||
fly logs # Live logs
|
||||
fly logs --no-tail # Recent logs
|
||||
```
|
||||
|
||||
### Консоль SSH
|
||||
### SSH-консоль
|
||||
|
||||
```bash
|
||||
fly ssh console
|
||||
@ -265,25 +263,25 @@ x-i18n:
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Усунення проблем
|
||||
## Усунення несправностей
|
||||
|
||||
### "App is not listening on expected address"
|
||||
### «Застосунок не прослуховує очікувану адресу»
|
||||
|
||||
Gateway прив’язується до `127.0.0.1`, а не до `0.0.0.0`.
|
||||
Gateway прив’язується до `127.0.0.1` замість `0.0.0.0`.
|
||||
|
||||
**Виправлення:** Додайте `--bind lan` до команди процесу в `fly.toml`.
|
||||
|
||||
### Перевірки стану не проходять / connection refused
|
||||
### Перевірки стану не проходять / у з’єднанні відмовлено
|
||||
|
||||
Fly не може досягти gateway на налаштованому порту.
|
||||
Fly не може досягти Gateway на налаштованому порту.
|
||||
|
||||
**Виправлення:** Переконайтеся, що `internal_port` збігається з портом gateway (задайте `--port 3000` або `OPENCLAW_GATEWAY_PORT=3000`).
|
||||
**Виправлення:** Переконайтеся, що `internal_port` відповідає порту Gateway (задайте `--port 3000` або `OPENCLAW_GATEWAY_PORT=3000`).
|
||||
|
||||
### OOM / проблеми з пам’яттю
|
||||
|
||||
Контейнер постійно перезапускається або завершується примусово. Ознаки: `SIGABRT`, `v8::internal::Runtime_AllocateInYoungGeneration` або тихі перезапуски.
|
||||
|
||||
**Виправлення:** Збільште обсяг пам’яті в `fly.toml`:
|
||||
**Виправлення:** Збільште пам’ять у `fly.toml`:
|
||||
|
||||
```toml
|
||||
[[vm]]
|
||||
@ -296,13 +294,13 @@ Fly не може досягти gateway на налаштованому пор
|
||||
fly machine update <machine-id> --vm-memory 2048 -y
|
||||
```
|
||||
|
||||
**Примітка:** 512MB замало. 1GB може працювати, але може призвести до OOM під навантаженням або з докладним журналюванням. **Рекомендовано 2GB.**
|
||||
**Примітка:** 512 МБ замало. 1 ГБ може працювати, але може спричинити OOM під навантаженням або з докладним журналюванням. **Рекомендовано 2 ГБ.**
|
||||
|
||||
### Проблеми з блокуванням Gateway
|
||||
|
||||
Gateway відмовляється запускатися з помилками на кшталт "already running".
|
||||
Gateway відмовляється запускатися з помилками «already running».
|
||||
|
||||
Це трапляється, коли контейнер перезапускається, але файл блокування PID зберігається в томі.
|
||||
Це трапляється, коли контейнер перезапускається, але PID-файл блокування зберігається на томі.
|
||||
|
||||
**Виправлення:** Видаліть файл блокування:
|
||||
|
||||
@ -311,11 +309,11 @@ fly ssh console --command "rm -f /data/gateway.*.lock"
|
||||
fly machine restart <machine-id>
|
||||
```
|
||||
|
||||
Файл блокування розташований за шляхом `/data/gateway.*.lock` (не в підкаталозі).
|
||||
Файл блокування розташований у `/data/gateway.*.lock` (не в підкаталозі).
|
||||
|
||||
### Конфігурація не зчитується
|
||||
### Конфігурація не читається
|
||||
|
||||
`--allow-unconfigured` лише обходить перевірку під час запуску. Він не створює й не відновлює `/data/openclaw.json`, тож переконайтеся, що ваша справжня конфігурація існує і містить `gateway.mode="local"`, якщо вам потрібен звичайний локальний запуск gateway.
|
||||
`--allow-unconfigured` лише обходить запобіжник запуску. Він не створює й не відновлює `/data/openclaw.json`, тож переконайтеся, що ваша справжня конфігурація існує та містить `gateway.mode="local"`, коли потрібен звичайний локальний запуск Gateway.
|
||||
|
||||
Перевірте, що конфігурація існує:
|
||||
|
||||
@ -328,10 +326,10 @@ fly ssh console --command "cat /data/openclaw.json"
|
||||
Команда `fly ssh console -C` не підтримує перенаправлення оболонки. Щоб записати файл конфігурації:
|
||||
|
||||
```bash
|
||||
# Використовуйте echo + tee (передайте з локальної машини на віддалену)
|
||||
# Use echo + tee (pipe from local to remote)
|
||||
echo '{"your":"config"}' | fly ssh console -C "tee /data/openclaw.json"
|
||||
|
||||
# Або використовуйте sftp
|
||||
# Or use sftp
|
||||
fly sftp shell
|
||||
> put /local/path/config.json /data/openclaw.json
|
||||
```
|
||||
@ -344,79 +342,78 @@ fly ssh console --command "rm /data/openclaw.json"
|
||||
|
||||
### Стан не зберігається
|
||||
|
||||
Якщо після перезапуску ви втрачаєте профілі автентифікації, стан каналу/постачальника або сесії,
|
||||
це означає, що каталог стану записується у файлову систему контейнера.
|
||||
Якщо після перезапуску ви втрачаєте профілі автентифікації, стан каналу/постачальника або сеанси, каталог стану записується у файлову систему контейнера.
|
||||
|
||||
**Виправлення:** Переконайтеся, що в `fly.toml` задано `OPENCLAW_STATE_DIR=/data`, і виконайте повторне розгортання.
|
||||
**Виправлення:** Переконайтеся, що `OPENCLAW_STATE_DIR=/data` задано у `fly.toml`, і повторно розгорніть.
|
||||
|
||||
## Оновлення
|
||||
|
||||
```bash
|
||||
# Отримайте останні зміни
|
||||
# Pull latest changes
|
||||
git pull
|
||||
|
||||
# Повторно розгорніть
|
||||
# Redeploy
|
||||
fly deploy
|
||||
|
||||
# Перевірте стан
|
||||
# Check health
|
||||
fly status
|
||||
fly logs
|
||||
```
|
||||
|
||||
### Оновлення команди машини
|
||||
|
||||
Якщо вам потрібно змінити команду запуску без повного повторного розгортання:
|
||||
Якщо потрібно змінити команду запуску без повного повторного розгортання:
|
||||
|
||||
```bash
|
||||
# Отримайте ID машини
|
||||
# Get machine ID
|
||||
fly machines list
|
||||
|
||||
# Оновіть команду
|
||||
# Update command
|
||||
fly machine update <machine-id> --command "node dist/index.js gateway --port 3000 --bind lan" -y
|
||||
|
||||
# Або разом зі збільшенням пам’яті
|
||||
# Or with memory increase
|
||||
fly machine update <machine-id> --vm-memory 2048 --command "node dist/index.js gateway --port 3000 --bind lan" -y
|
||||
```
|
||||
|
||||
**Примітка:** Після `fly deploy` команда машини може скинутися до значення з `fly.toml`. Якщо ви вносили зміни вручну, застосуйте їх повторно після розгортання.
|
||||
**Примітка:** Після `fly deploy` команда машини може скинутися до того, що вказано в `fly.toml`. Якщо ви внесли зміни вручну, застосуйте їх повторно після розгортання.
|
||||
|
||||
## Приватне розгортання (захищене)
|
||||
## Приватне розгортання (посилене)
|
||||
|
||||
За замовчуванням Fly виділяє публічні IP-адреси, роблячи ваш gateway доступним за адресою `https://your-app.fly.dev`. Це зручно, але означає, що ваше розгортання можуть виявити інтернет-сканери (Shodan, Censys тощо).
|
||||
За замовчуванням Fly виділяє публічні IP-адреси, роблячи ваш Gateway доступним за `https://your-app.fly.dev`. Це зручно, але означає, що ваше розгортання можуть виявити інтернет-сканери (Shodan, Censys тощо).
|
||||
|
||||
Для захищеного розгортання **без публічної доступності** використовуйте приватний шаблон.
|
||||
Для посиленого розгортання **без публічної доступності** використайте приватний шаблон.
|
||||
|
||||
### Коли варто використовувати приватне розгортання
|
||||
### Коли використовувати приватне розгортання
|
||||
|
||||
- Ви виконуєте лише **вихідні** виклики/повідомлення (без вхідних Webhook)
|
||||
- Ви використовуєте тунелі **ngrok або Tailscale** для будь-яких callback Webhook
|
||||
- Ви отримуєте доступ до gateway через **SSH, проксі або WireGuard**, а не через браузер
|
||||
- Ви хочете **приховати** розгортання від інтернет-сканерів
|
||||
- Ви здійснюєте лише **вихідні** виклики/повідомлення (без вхідних Webhook)
|
||||
- Ви використовуєте тунелі **ngrok або Tailscale** для будь-яких зворотних викликів Webhook
|
||||
- Ви отримуєте доступ до Gateway через **SSH, проксі або WireGuard** замість браузера
|
||||
- Ви хочете, щоб розгортання було **приховане від інтернет-сканерів**
|
||||
|
||||
### Налаштування
|
||||
|
||||
Використовуйте `fly.private.toml` замість стандартної конфігурації:
|
||||
Використайте `deploy/fly.private.toml` замість стандартної конфігурації:
|
||||
|
||||
```bash
|
||||
# Розгорніть із приватною конфігурацією
|
||||
fly deploy -c fly.private.toml
|
||||
# Deploy with private config
|
||||
fly deploy -c deploy/fly.private.toml
|
||||
```
|
||||
|
||||
Або перетворіть наявне розгортання:
|
||||
|
||||
```bash
|
||||
# Перелічіть поточні IP
|
||||
# List current IPs
|
||||
fly ips list -a my-openclaw
|
||||
|
||||
# Звільніть публічні IP
|
||||
# Release public IPs
|
||||
fly ips release <public-ipv4> -a my-openclaw
|
||||
fly ips release <public-ipv6> -a my-openclaw
|
||||
|
||||
# Перейдіть на приватну конфігурацію, щоб майбутні розгортання не перевиділяли публічні IP
|
||||
# (видаліть [http_service] або розгорніть за допомогою приватного шаблону)
|
||||
fly deploy -c fly.private.toml
|
||||
# Switch to private config so future deploys don't re-allocate public IPs
|
||||
# (remove [http_service] or deploy with the private template)
|
||||
fly deploy -c deploy/fly.private.toml
|
||||
|
||||
# Виділіть лише приватний IPv6
|
||||
# Allocate private-only IPv6
|
||||
fly ips allocate-v6 --private -a my-openclaw
|
||||
```
|
||||
|
||||
@ -429,25 +426,25 @@ v6 fdaa:x:x:x:x::x private global
|
||||
|
||||
### Доступ до приватного розгортання
|
||||
|
||||
Оскільки публічної URL-адреси немає, використовуйте один із цих способів:
|
||||
Оскільки публічної URL-адреси немає, використайте один із цих методів:
|
||||
|
||||
**Варіант 1: Локальний проксі (найпростіше)**
|
||||
|
||||
```bash
|
||||
# Перенаправте локальний порт 3000 до застосунку
|
||||
# Forward local port 3000 to the app
|
||||
fly proxy 3000:3000 -a my-openclaw
|
||||
|
||||
# Потім відкрийте в браузері http://localhost:3000
|
||||
# Then open http://localhost:3000 in browser
|
||||
```
|
||||
|
||||
**Варіант 2: VPN WireGuard**
|
||||
**Варіант 2: WireGuard VPN**
|
||||
|
||||
```bash
|
||||
# Створіть конфігурацію WireGuard (одноразово)
|
||||
# Create WireGuard config (one-time)
|
||||
fly wireguard create
|
||||
|
||||
# Імпортуйте до клієнта WireGuard, потім отримайте доступ через внутрішній IPv6
|
||||
# Приклад: http://[fdaa:x:x:x:x::x]:3000
|
||||
# Import to WireGuard client, then access via internal IPv6
|
||||
# Example: http://[fdaa:x:x:x:x::x]:3000
|
||||
```
|
||||
|
||||
**Варіант 3: Лише SSH**
|
||||
@ -456,15 +453,15 @@ fly wireguard create
|
||||
fly ssh console -a my-openclaw
|
||||
```
|
||||
|
||||
### Webhook у приватному розгортанні
|
||||
### Webhook-и з приватним розгортанням
|
||||
|
||||
Якщо вам потрібні callback Webhook (Twilio, Telnyx тощо) без публічної доступності:
|
||||
Якщо вам потрібні зворотні виклики Webhook (Twilio, Telnyx тощо) без відкриття для публічного доступу:
|
||||
|
||||
1. **тунель ngrok** — запустіть ngrok всередині контейнера або як sidecar
|
||||
2. **Tailscale Funnel** — відкрийте конкретні шляхи через Tailscale
|
||||
3. **лише вихідний трафік** — деякі постачальники (Twilio) добре працюють для вихідних викликів без Webhook
|
||||
1. **Тунель ngrok** - Запустіть ngrok усередині контейнера або як sidecar
|
||||
2. **Tailscale Funnel** - Відкрийте певні шляхи через Tailscale
|
||||
3. **Лише вихідний зв’язок** - Деякі провайдери (Twilio) нормально працюють для вихідних викликів без Webhook-ів
|
||||
|
||||
Приклад конфігурації голосових викликів з ngrok:
|
||||
Приклад конфігурації голосового виклику з ngrok:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -485,35 +482,35 @@ fly ssh console -a my-openclaw
|
||||
}
|
||||
```
|
||||
|
||||
Тунель ngrok працює всередині контейнера та надає публічну URL-адресу Webhook, не відкриваючи сам застосунок Fly. Установіть `webhookSecurity.allowedHosts` на ім’я хоста публічного тунелю, щоб переслані заголовки host приймалися.
|
||||
Тунель ngrok працює всередині контейнера та надає публічну URL-адресу Webhook без відкриття самого застосунку Fly для публічного доступу. Установіть `webhookSecurity.allowedHosts` на публічне ім’я хоста тунелю, щоб переслані заголовки хоста приймалися.
|
||||
|
||||
### Переваги безпеки
|
||||
|
||||
| Аспект | Публічне | Приватне |
|
||||
| ----------------- | ------------ | ---------- |
|
||||
| Інтернет-сканери | Виявляється | Приховане |
|
||||
| Прямі атаки | Можливі | Заблоковані |
|
||||
| Доступ до Control UI | Браузер | Проксі/VPN |
|
||||
| Доставка Webhook | Напряму | Через тунель |
|
||||
| Аспект | Публічний | Приватний |
|
||||
| ---------------------------- | ------------------------ | -------------- |
|
||||
| Інтернет-сканери | Можна виявити | Приховано |
|
||||
| Прямі атаки | Можливі | Заблоковано |
|
||||
| Доступ до інтерфейсу керування | Браузер | Проксі/VPN |
|
||||
| Доставка Webhook | Пряма | Через тунель |
|
||||
|
||||
## Примітки
|
||||
|
||||
- Fly.io використовує **архітектуру x86** (не ARM)
|
||||
- Dockerfile сумісний з обома архітектурами
|
||||
- Для onboarding WhatsApp/Telegram використовуйте `fly ssh console`
|
||||
- Постійні дані зберігаються в томі за шляхом `/data`
|
||||
- Signal потребує Java + `signal-cli`; використовуйте власний образ і тримайте пам’ять на рівні 2GB+.
|
||||
- Для онбордингу WhatsApp/Telegram використовуйте `fly ssh console`
|
||||
- Постійні дані зберігаються на томі за шляхом `/data`
|
||||
- Signal потребує Java + signal-cli; використовуйте власний образ і тримайте пам’ять на рівні 2 ГБ+.
|
||||
|
||||
## Вартість
|
||||
|
||||
З рекомендованою конфігурацією (`shared-cpu-2x`, 2GB RAM):
|
||||
З рекомендованою конфігурацією (`shared-cpu-2x`, 2 ГБ оперативної пам’яті):
|
||||
|
||||
- приблизно ~$10-15/місяць залежно від використання
|
||||
- безкоштовний тариф включає певний ліміт
|
||||
- ~$10-15/місяць залежно від використання
|
||||
- Безкоштовний тариф включає певну квоту
|
||||
|
||||
Докладніше див. у [тарифах Fly.io](https://fly.io/docs/about/pricing/).
|
||||
Докладніше див. [ціни Fly.io](https://fly.io/docs/about/pricing/).
|
||||
|
||||
## Подальші кроки
|
||||
## Наступні кроки
|
||||
|
||||
- Налаштуйте канали обміну повідомленнями: [Канали](/uk/channels)
|
||||
- Налаштуйте Gateway: [Конфігурація Gateway](/uk/gateway/configuration)
|
||||
@ -524,4 +521,4 @@ fly ssh console -a my-openclaw
|
||||
- [Огляд встановлення](/uk/install)
|
||||
- [Hetzner](/uk/install/hetzner)
|
||||
- [Docker](/uk/install/docker)
|
||||
- [VPS-хостинг](/uk/vps)
|
||||
- [Хостинг VPS](/uk/vps)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user