# Bridge-and-Join-s — установка одной командой ## TL;DR — на свежей Astra Linux / Debian / Ubuntu ВМ ```bash curl -sSL https://git.zetit.ru/zuevav/Bridge-and-Join-s/raw/main/deploy/astra/install.sh | sudo bash ``` Через **5-10 минут** будет работать веб-админка на `http://:8080/admin/`. Установщик сам: - Определит ОС (Astra SE/CE, Debian, Ubuntu) - Поставит зависимости (apt: podman, postgresql-client, git) - Скачает и установит Go 1.24+ - Создаст системного пользователя `bj` и каталоги - Склонирует репозиторий в `/opt/bj/src` - Соберёт `bj-server` из исходников - Поднимет PostgreSQL 16 в podman-контейнере и накатит миграции - Поставит systemd unit и запустит сервис - Скачает дистрибутив ИШ НРД (~120 МБ) и попытается установить через `dpkg` После завершения скрипта тебе печатается понятная сводка с URL'ами и списком того, что осталось сделать руками. --- ## Какая нужна ВМ | Параметр | Минимум | Рекомендуется | |---|---|---| | ОС | Debian 11+ / Astra CE 1.8 / Astra SE 1.6+ / Ubuntu 22.04+ | **Astra Linux SE 1.7** (для прод) | | CPU | 2 ядра | 4 ядра | | RAM | 2 ГБ | 4 ГБ | | Диск | 20 ГБ | 50 ГБ SSD | | Сеть | прямой выход в интернет | + статический IP | **Что я понимаю про лицензии Astra Linux:** - **Astra SE** — платная (~2-5 тыс. ₽/лицензия), сертифицирована ФСТЭК/ФСБ → нужна для прода с гос-требованиями - **Astra CE** — бесплатная, без сертификации, тот же базовый дистрибутив → можно использовать для дева и тестов, а для прода докупить SE - **Debian 12** — полностью бесплатный, технически на 95% совместим с Astra (один и тот же базовый дистрибутив), ИШ скорее всего тоже взлетит, но НРД официально не поддерживает --- ## Скрипты в этом каталоге | Файл | Когда запускать | Что делает | |---|---|---| | **`install.sh`** | сразу после поднятия ВМ | Главный скрипт. Делает всё одной командой | | **`install-validata.sh`** | когда придёт Валидата от НРД | Установка СКЗИ Валидата CSP | | **`install-ish.sh`** | если `install.sh` не установил ИШ автоматически | Ручная установка ИШ из локального .deb | | **`healthcheck.sh`** | для проверки состояния | Цветной отчёт о работоспособности всех компонентов | | **`import-data.sh`** | (опционально) если переносишь с другой ВМ | Экспорт БД и настроек со старой ВМ для импорта на новую | --- ## Что произойдёт ПОСЛЕ автоматической установки `install.sh` дойдёт до точки, где **bj-server работает, но в режиме эмуляции** — потому что Валидата и сертификат УЦ МБ автоматически получить нельзя. В админке сверху будет жёлтая плашка «РЕЖИМ ЭМУЛЯЦИИ». Это ожидаемо. ### Что нужно сделать пользователю руками #### 1. Запросить Валидата CSP в НРД (1 письмо) Email: `soed@nsd.ru` или `pki@moex.com`. Текст подскажет сам скрипт `install-validata.sh` — есть шаблон. Срок ответа НРД — 1-3 дня. Когда придёт .deb пакет: ```bash sudo bash /opt/bj/src/deploy/astra/install-validata.sh /path/to/validata.deb ``` #### 2. Получить сертификат УЦ Московской Биржи `https://ca.moex.com/` — оформить заявку от организации. Срок — зависит от УЦ. #### 3. Подать заявку на тестирование в TEST3 НРД `https://www.nsd.ru/workflow/zayavka-na-testirovanie/` — получить код депонента-тестера. #### 4. Когда всё пришло — настроить ИШ через его GUI По `DOC/ruk_install_ish_2025_11_10.pdf` (раздел 10): - Указать БД PostgreSQL (DSN уже в `/var/lib/bj/.bj/setup.json`) - Создать канал WSL с URL `https://gost.nsd.ru/onyxt3/WslService` (TEST3) - Импортировать сертификат УЦ МБ из системного хранилища - Запустить ИШ как сервис: `sudo systemctl enable --now igate` #### 5. Привязать bj-server к ИШ `http://:8080/admin/setup` → раздел «ИШ НРД»: - URL ИШ: `http://localhost:8090` (порт REST API ИШ) - Имя канала: то что задал в ИШ на шаге 4 После этого жёлтая плашка «РЕЖИМ ЭМУЛЯЦИИ» исчезнет — сообщения пойдут в реальный НРД. --- ## Параметры установки `install.sh` принимает флаги: ```bash sudo bash install.sh --bind=:8080 --skip-ish --yes ``` | Флаг | По умолчанию | Что делает | |---|---|---| | `--bind=:8080` | `:8080` | На каком адресе/порту слушать | | `--branch=main` | `main` | Из какой ветки репо собирать | | `--skip-ish` | (выкл) | Не скачивать дистрибутив ИШ (если стоят жёсткие ограничения по интернету) | | `--yes` / `-y` | (выкл) | Не задавать вопросов, отвечать «да» автоматически | Также через переменные окружения: `REPO_URL`, `BRANCH`, `BIND_ADDR`, `ISH_DEB_URL`, `NON_INTERACTIVE`. --- ## Если что-то сломалось | Симптом | Решение | |---|---| | `bj-server.service не active` | `journalctl -u bj-server -n 50` | | HTTP 200 не отвечает | проверь что :8080 открыт; `ss -tlnp \| grep 8080` | | Миграции не накатились | `podman exec bj-postgres psql -U bj -l` и `\dt fansy.*` | | ИШ не скачался | положи `igate_100.0-765_amd64.deb` в `/opt/bj/src/dist/ish/` и перезапусти `install.sh` | | Валидата не установлена | это **нормально** на старте — заказывай у НРД, потом `install-validata.sh` | | Не определилась ОС | поддерживаются: Astra, Debian, Ubuntu. Для других — открой issue | Health-check всё сразу: ```bash sudo bash /opt/bj/src/deploy/astra/healthcheck.sh ``` --- ## Полный путь от чистой ВМ до прохождения теста с роботом MOEX МОСТ | Этап | Что делается | Срок | |---|---|---| | 1. Поднять Astra Linux ВМ | у инфра-команды | 1 день | | 2. Запустить `install.sh` | автоматически | 5-10 мин | | 3. Запросить Валидату в НРД | письмо в `soed@nsd.ru` | 1-3 дня ожидания | | 4. Получить сертификат УЦ МБ | заявка в `ca.moex.com` | 1-2 недели ожидания | | 5. Подать заявку на TEST3 | форма на сайте НРД | 2-5 дней | | 6. Установить Валидату | `install-validata.sh` | 5 мин | | 7. Импортировать сертификат | GUI Валидаты, экспорт в системное хранилище | 15 мин | | 8. Настроить ИШ | GUI ИШ, создать канал WSL | 30 мин | | 9. Привязать bj-server к ИШ | `/admin/setup` через UI | 5 мин | | 10. Прогнать тест с роботом | `/admin/setup` → кнопка | 1 мин | **Итог: 2-3 недели от старта до зелёного теста с роботом MOEX МОСТ.** На нашей стороне всё уже готово — задержки только во внешних запросах.