Skip to content

Быстрый старт

От чистой Linux-машины до работающего парка за 15 минут живого внимания.


Что понадобится

  • Сервер: чистая Ubuntu 22.04 / 24.04 (или Debian 12 / RHEL 9). 4 GB RAM, 40 GB диска, выход в интернет. Понадобится root / sudo.
  • Шкафы: промышленные ПК с Ubuntu. Обычно OKTO отгружает их с уже прошитой меткой слота (LUZ-DRY-03 и т. п.) — тогда на самом шкафу вообще ничего делать не надо. Если это «bare metal» — потребуется одна команда.
  • Сеть: сервер и шкафы должны видеть друг друга по TCP. Достаточно LAN; публичный DNS не обязателен.

Шаг 1. Установка factory-сервера (~3 минуты)

На чистой Linux-машине:

curl -sSL https://get.oktoterminal.com/server | sudo bash

Что произойдёт автоматически:

  1. Установится Docker + compose-плагин.
  2. Сгенерируются все секреты (JWT, enrollment-key, пароль БД, OTP мастера) — в /etc/okto/server.env, mode 640.
  3. Развернётся compose-стек: factory-server + PostgreSQL + Caddy (с авто-TLS) + management dashboard.
  4. Запустится systemd-unit okto-server.service (автозапуск при ребуте).
  5. В конце скрипт напечатает URL мастера первого запуска + QR-код:
https://<ваш-сервер>/setup?otp=abc123...

Откройте этот URL в браузере.


Шаг 2. Мастер первого запуска (~3 минуты)

5 шагов в мастере:

  1. Пароль админа — задайте новый (минимум 10 символов), дефолтный admin123 больше не работает.
  2. Публичный хостнейм и TLS — имя или IP, по которому шкафы будут подключаться. Варианты:
  3. Публичный DNS с Let's Encrypt: factory.mars.ru
  4. Внутренний DNS: okto-factory.mars.local
  5. Просто LAN IP: 192.168.10.50 (self-signed cert)
  6. Токен OKTO Cloud — для синхронизации с «Честный ЗНАК» / ГИС МТ. Можно пропустить и настроить позже в Preferences.
  7. Имя площадки и режим подключенияVIA_LOCAL_SERVER (рекомендуется) или DIRECT_CLOUD.
  8. Подтверждение — мастер запускает health-check и «запечатывается». OTP перестаёт работать, маршрут /setup отдаёт 404.

После финиша вы попадёте на обычную страницу логина. Войдите как admin с паролем из шага 1.


Шаг 3. Подключение шкафов

Три пути в порядке возрастающей простоты.

3A. Шкаф OKTO-прошит (рекомендуемый путь для MARS)

Если OKTO на сборке прошил шкаф меткой слота (в /etc/okto/cabinet-slot лежит LUZ-DRY-03):

  1. Подключите питание + Ethernet.
  2. Ждите ~15 секунд.
  3. В дашборде → Развёртывание (Rollout) карточка слота автоматически переходит PLANNED → ENROLLED.

Ноль действий на шкафу. Это ровно путь MARS для всех 51 шкафа.

3B. Чистый терминал + PIN-код

Если шкаф не прошит, на нём одна команда:

curl -sSL https://get.oktoterminal.com/terminal | sudo bash

Скрипт установит Docker, пробросит USB-сканеры и принтеры, запустит edge-service. На kiosk-экране появится 6-значный PIN, например 428-391.

В дашборде → Развёртывание → панель «Cabinets waiting to pair» (появляется автоматически) → карточка с таким же PIN → Pair → выберите слот из выпадающего списка → готово. Через 3 секунды шкаф загружает operator UI.

3C. QR-скан (самый быстрый)

Когда шкаф показывает PIN, рядом с ним отображается QR-код. Сканирование камерой телефона (без приложения) откроет дашборд с уже предзаполненным диалогом паринга — один тап «Pair», и всё.


Шаг 4. Проверка работы

В дашборде:

  • Rollout — все слоты парка со статусами в реальном времени.
  • Fleet — список устройств, heartbeat обновляется каждые 5 секунд.
  • Firmware — раз в 5 минут автоматически тянет новые релизы с releases.oktoterminal.com; баннер «New firmware vX.Y.Z available» появится, когда появится.

На шкафу:

  • Operator UI в kiosk-режиме, статусная строка Сервер ✓ Облако ✓.
  • Сканер и принтер (если настроены) — online.

Что дальше

Сценарий Действие
Обновить прошивку Firmware → Deploy → отметить 1-2 canary-шкафа → Staged rollout с 30-мин observe-окном → автопромо на остальной парк; при сбое — авто-rollback canary.
Откатить после проблемы На карточке релиза → Rollback → выбрать шкафы → edge локально промотит edge-service.jar.previous и сам перезапустится.
Перевесить шкаф на другой слот Rollout → карточка слота → Unpair cabinet → шкаф вернётся в «waiting to pair» → выберите другой слот.
Массовый импорт меток Rollout → Import manifest (unstamped) → загрузите CSV slot_id,hardware_id → все шкафы потом авто-пэйрятся.
Полная документация https://docs.oktoterminal.com

Если что-то не работает

Сервер не отвечает:

sudo systemctl status okto-server
sudo docker compose -f /opt/okto-server/docker/docker-compose.server.yml logs -f

Шкаф не пэйрится:

# На шкафу — проверить, что сервер достижим:
curl -sI $(cat /etc/okto/factory-url)/api/v1/health
# Посмотреть логи edge-service:
sudo docker logs okto-terminal --tail 100

Мастер /setup открывается не на TLS — Caddy'у нужно 2-3 минуты на выпуск сертификата при первом запуске. Подождите и обновите страницу.

Firmware не обновляется: проверьте, что сервер видит releases.oktoterminal.com:

curl -sI https://releases.oktoterminal.com/edge-service/manifest.json

Нужна помощь: собрать логи + отправить в support:

make collect-logs    # положит support-logs-<timestamp>.tar.gz
# отправьте архив на support@oktoterminal.com

Полный A-to-Z сценарий с ролями, расходами и таймлайном — см. DEPLOYMENT.ru.md § «Полный A-to-Z сценарий развёртывания».