Local Bridge — Гайд по настройке
Подключи свою локальную машину к Arc OS менее чем за 90 секунд. Воркеры в облаке читают и редактируют файлы на твоём компьютере через один бинарник — без Docker, без Bun, без компилятора.
Phase 23.2 · Последнее обновление: 2026-05-14 · Протестировано на macOS 14+, Ubuntu 22+, Windows 11
Выбери ОС — переходи сразу к шагам
| Твоя машина | Открой этот гайд |
|---|---|
| Local Bridge — настройка macOS | |
| Local Bridge — настройка Linux | |
| Local Bridge — настройка Windows |
На этой странице — всё общее для всех платформ: чеклист перед стартом, что именно делает bridge, типичные ошибки, модель безопасности и диагностика. Прочитай один раз; возвращайся, когда что-то сломается.
▶ Посмотри 90-секундный обзор
🎬 Заглушка видео — Loom-эмбед появится здесь после записи. Имя файла:
bridge-walkthrough-2026-05.mp4· 90 сек · нарратив CEO · субтитры EN. Трек: см. медиа-шотлист §1.
┌──────────────────────────────────────────┐
│ ▶ Loom: Bridge Setup in 90 Seconds │
│ (placeholder until recorded) │
└──────────────────────────────────────────┘
Что будет в итоге
Два окна рядом, оба говорят «connected»:
🖼️ Заглушка скриншота —
media/bridge/success-state.pngСпецификация: разделённый экран — слева = Терминал с✓ Connected to ws://… as <project>, справа = CRM-страницаBridge Setupс зелёной точкой иOnlineрядом с именем машины.
┌─ Terminal ─────────────────────┐ ┌─ Browser: arc-os.co ──────────────┐
│ $ bash install.sh │ │ Bridge Setup │
│ ✓ Quarantine stripped │ │ ● <your-machine> Online │
│ ✓ Token validated │ │ Last seen: just now │
│ ✓ Connected │ │ │
│ Watching ~/projects/<project> │ │ Connected workers can read / │
└─────────────────────────────────┘ └───────────────────────────────────┘
Чеклист перед стартом
Перед началом возьми из CRM:
| Элемент | Где взять | Формат |
|---|---|---|
| Токен | Settings → Integrations → Bridge Setup → нажми Copy |
eyJhbG… JWT, ~250 символов, TTL 24 ч |
| Техническое имя проекта | Sidebar → твой проект → slug из URL (строчный, не отображаемое имя) | строчные буквы, дефисы/подчёркивания |
| Архитектура ОС | macOS: ⌘+Пробел → «About This Mac» · Win: Settings → System → About · Linux: uname -m |
arm64, x64, aarch64 |
🖼️ Заглушка скриншота —
media/bridge/where-to-find-token.pngСпецификация: страница CRMSettings → Integrationsс выделенной кнопкой «Copy» (красная стрелка + круг). Поле токена частично скрыто (показывает толькоeyJhbG...***...xyz).
Шаг 0 — Что ты скачиваешь
Local Bridge — это один бинарный файл, который ты запускаешь на своём компьютере. Никакого мастера установки, никакой системной службы, никаких прав администратора. Скачиваешь один файл, двойной клик (или запуск из терминала) — и он уже работает.
Разная ОС = разный бинарник. Поэтому на странице Bridge Setup в CRM есть 4 кнопки — каждая скачивает отдельный файл, скомпилированный для конкретной ОС + архитектуры процессора. Выберешь не ту — компьютер откажется его запускать (Exec format error на Linux, damaged на macOS, not a valid Win32 application на Windows).
🖼️ Заглушка скриншота —
media/bridge/bridge-setup-page-4-buttons.pngСпецификация: страница CRMSettings → Integrations → Bridge Setupс 4 кнопками скачивания в ряд: 🍎 macOS (Apple Silicon), 🍏 macOS (Intel), 🐧 Linux (x64), 🪟 Windows (x64). Поле токена выше с кнопкой Copy. 1280×720, светлая тема. Аннотация: красный круг вокруг кнопки 🍎 как пример выбора.
Размер скачиваемого файла и таблица
| Твой компьютер | Нажми эту кнопку | Получишь файл | Размер |
|---|---|---|---|
| Mac с Apple Silicon (M1/M2/M3/M4/M5) | bridge-darwin-arm64.tar.gz |
~50 МБ | |
| Старый Mac (Intel, до 2020) | bridge-darwin-x64.tar.gz |
~50 МБ | |
| Linux-ноутбук / VM / сервер | bridge-linux-x64.tar.gz |
~50 МБ | |
| Linux ARM (Raspberry Pi, AWS Graviton) | bridge-linux-arm64.tar.gz |
~50 МБ | |
| Windows 10/11 ПК | bridge-windows-x64.exe |
~55 МБ |
Почему архивы (.tar.gz) на macOS/Linux, но сырой .exe на Windows? macOS помечает неподписанные скачанные бинарники карантином с вводящей в заблуждение ошибкой «damaged». Архив включает бинарник + небольшой скрипт
install.command, который снимает карантин. Windows использует SmartScreen — там достаточно кликнуть один диалог, архив не нужен.
Выбери платформу — дерево решений
flowchart TD
Start[👤 Открой CRM →<br/>Settings → Integrations →<br/>Bridge Setup] --> OS{Какая у тебя ОС?}
OS -->|macOS| Mac[Открой<br/>гайд macOS]
OS -->|Linux| Lin[Открой<br/>гайд Linux]
OS -->|Windows| Win[Открой<br/>гайд Windows]
Mac --> Connect[Вставь токен →<br/>имя проекта → Enter]
Lin --> Connect
Win --> Connect
Connect --> Done([✅ Connected])
Не знаешь чип своего Mac? Кликни логотип 🍎 (верхний левый угол) → About This Mac → ищи «Chip: Apple M1/M2/M3/M4/M5» (Apple Silicon) или «Processor: Intel Core …» (Intel). Если не уверен — Apple Silicon: каждый Mac, проданный после ноября 2020 года.
После запуска
🖼️ Заглушка скриншота —
media/bridge/crm-bridge-list.pngСпецификация: страница CRM Bridge Setup с твоей машиной в списке подключённых — зелёная точка, имя хоста, проект, «last seen: just now», счётчик uptime сессии.
Держи окно Terminal/PowerShell открытым — закрытие останавливает bridge.
В каждом ОС-специфичном гайде показано, как запустить bridge в фоне (nohup на Unix, Start-Process -WindowStyle Hidden на Windows). Постоянный режим службы (launchd / systemd / Windows Service) запланирован в фазе 23.4.
Типичные ошибки — визуальный справочник
| Ошибка | Что видишь | Что делать |
|---|---|---|
bridge-darwin-arm64 is damaged |
Диалог macOS с кнопками Trash/Cancel | Нажми Cancel, запусти install.command. См. гайд macOS |
install.command can't be opened because Apple cannot check it for malicious software |
Диалог первого запуска macOS | Правой кнопкой по install.command → Open → Open |
Windows protected your PC |
Синий диалог SmartScreen | More info → Run anyway. См. гайд Windows |
Token is required / Invalid token |
Bridge завершается с красной ошибкой | Токен истёк (TTL 24 ч). Перелогинься в CRM, скопируй свежий токен |
Project not found |
Bridge завершается | Используй техническое имя (slug из URL), не отображаемое имя |
| Bridge бесконечно переподключается | Reconnecting in 4s… 8s… 16s… |
VPS может быть недоступен: curl http://62.171.128.248:18888/api/master/health |
search_files возвращает пусто |
Инструмент выполняется, но результатов нет | Установи ripgrep для качественного поиска; без него используется более медленный нативный сканер |
🖼️ Заглушка скриншота —
media/bridge/error-gallery.pngСпецификация: коллаж из 4 квадрантов: верхний левый = диалог damaged macOS, верхний правый = диалог верификации install.command, нижний левый = синий SmartScreen Windows, нижний правый = терминал с✗ Token expired. Каждый подписан ошибкой из таблицы выше.
Что делает Bridge на самом деле
Bridge подключает твою локальную машину к WebSocket-релею Arc OS. Воркеры CRM могут затем вызывать 5 инструментов в песочнице для доступа к твоим файлам:
sequenceDiagram
participant W as Воркер (облако)
participant R as Релей (VPS WS)
participant B as Bridge (твой ноутбук)
participant FS as Локальная ФС
W->>R: read_file("./src/index.ts")
R->>B: вызов инструмента
B->>B: валидация пути (песочница)
B->>FS: чтение файла
FS-->>B: содержимое
B-->>R: ответ
R-->>W: содержимое
Note over W,FS: Все 5 инструментов работают по той же схеме.<br/>execute_command сначала показывает жёлтый баннер.
| Инструмент | Что делает |
|---|---|
read_file |
Читает содержимое файла |
write_file |
Создаёт или перезаписывает файл |
list_directory |
Список файлов и папок с размерами |
search_files |
Поиск по содержимому файлов (использует ripgrep, если доступен) |
execute_command |
Выполняет команду оболочки — отображается в твоём терминале жёлтым баннером |
Все пути к файлам ограничены песочницей — директорией, из которой ты запустил bridge. Воркеры не могут выйти за её пределы через
../.
Модель безопасности
| Уровень | Защита |
|---|---|
| Аутентификация | WebSocket требует валидный JWT (TTL 24 ч, HMAC-SHA256, timingSafeEqual на сервере) |
| Песочница путей | Все файловые операции ограничены директорией запуска; safePath() отклоняет .., абсолютные пути, symlink-обходы |
| Whitelist инструментов | Разрешено только 5 инструментов; клиент и сервер оба отклоняют неизвестные имена |
| Видимость команд | execute_command выводит жёлтый баннер в твоём терминале перед выполнением — можно нажать SIGINT для отмены |
| Истечение токена | TTL 24 ч — даже если утёк, окно воздействия ограничено |
| Авто-переподключение | Разрыв соединения → экспоненциальный бэкофф 2с → 4с → 8с → … → кап 30с |
Дополнительно — флаги и окружение
Для CI-скриптов или воркфлоу через переменные окружения:
# Linux / macOS — переменная окружения
CRM_TOKEN="eyJhbG..." ./bridge-linux-x64 --project <project>
# Windows PowerShell
$env:CRM_TOKEN = "eyJhbG..."
.\bridge-windows-x64.exe --project <project>
# Запуск из исходников (требует Bun ≥ 1.0)
CRM_TOKEN="eyJhbG..." bun scripts/bridge.ts --project <project>
| Флаг | По умолчанию | Описание |
|---|---|---|
--project <name> |
(интерактивный запрос) | Имя проекта для привязки |
--server <url> |
ws://62.171.128.248:18888/ws/local-bridge |
URL WebSocket-релея |
--help, -h |
— | Показать справку |
Диагностика
Застрял? Выполни по порядку:
# 1. Доступен ли VPS?
curl -s http://62.171.128.248:18888/api/master/health
# Ожидается: {"status":"ok","children":N,...}
# 2. Зарегистрирован ли твой bridge? (замени <token>)
curl -s -H "Authorization: Bearer <token>" \
http://62.171.128.248:18888/api/internal/bridges
# Ожидается: JSON-список, включающий твоё имя хоста
Если оба запроса успешны, но bridge продолжает переподключаться → проблема между bridge и релеем (файрвол, VPN, корпоративный прокси). Протестируй WebSocket напрямую:
# требует `wscat` — npm install -g wscat
wscat -c "ws://62.171.128.248:18888/ws/local-bridge?token=<token>"
Сборка из исходников (для разработчиков)
# Одна платформа
bash scripts/build-bridge.sh linux
# Все 4 платформы
bash scripts/build-bridge.sh
Результаты попадают в dist/bridge-{platform} и загружаются в CRM как бинарники, которые отдаёт страница Bridge Setup.
Справочные материалы
- API:
/api/internal/bridges— список подключённых bridge - Архитектура: Phase 23 — Local Gateway
- Исходники:
clients/bridge/в GitHub-репозитории - ОС-специфичные гайды: macOS · Linux · Windows
Поддерживается командой Arc OS. Если застрял там, где этот гайд не помог — это баг: напиши CEO в личку или публикуй в @arcos_beta_feedback.