Продукт
Archito НовоеУчится на merge request и показывает, что застряло Интеграции 25
Решения
По роли
Почему AppArch
Ресурсы
Клиенты Цены Контакты
Язык
Связаться с нами

Всё остаётся внутри периметра: код, панель, находки.

Для регулируемых отраслей и закрытых сетей: панель, анализ и база работают на ваших серверах. Наружу открыты только две двери - реестр образов и файл лицензии; в air-gapped установке обе можно занести внутрь.

Один продукт, одна линия релизов

Каждая установка работает на одних и тех же образах с одним тегом версии. Ни форков, ни отстающих редакций.

Все модули включены

Все модули, от ArchPilot до Archito, работают на ваших серверах. Каждая функция приходит в каждую установку в тех же образах.

Консоль управления включена

У установки есть своя админ-зона: лицензия, пользователи и почта в одном месте, а мастер первого запуска проведёт по настройке.

Учётные записи и ИИ

Входа через Google или GitHub нет: учётные записи остаются внутри периметра, с e-mail и паролем или LDAP / Active Directory. Функции ИИ необязательны, и только им нужен интернет, к провайдеру, которого выберет оператор.

Что работает в установке?

Эталонная установка состоит из четырёх контейнеров на одном сервере. Анализ работает не на этом сервере, а внутри ваших CI-задач.

Компонент Назначение Кто обращается
Панель (app-ui) Веб-интерфейс, который открывают ваши пользователи. Передаёт каждый запрос в API от имени самого пользователя. Браузеры; порт по умолчанию 8080
API (api) Принимает отчёты анализа, считает оценки и выполняет плановые задачи, например синхронизацию Git и отчёты. Только он работает с базой данных. Панель и ваши CI-раннеры; порт по умолчанию 5000
PostgreSQL 16 Находки, отчёты, пользователи и настройки администрирования. Только API
Redis 7 Сессии, кэш и ключи сессий, общие для реплик. Панель и API
Образы анализа (коллекторы) Сканируют код в вашей CI-задаче и отправляют отчёт в ваш собственный API. Отдельный образ для каждого из девяти языков. Ваши CI-задачи; на сервере постоянно ничего не работает

TLS обеспечивает стоящий впереди обратный прокси (nginx, traefik) или ingress. Браузерам нужен только порт панели, CI-раннерам только порт API.

Установка - три шага

Kubernetes не обязателен; хватит docker compose. Руководство со скриншотами - на docs.apparch.io.

  1. 01

    Лицензия + ключ установки

    Отдел продаж передаёт ID установки и ключ установки; ключ отправляется ровно один раз. При первом запуске установка сама получает лицензию онлайн. В изолированной сети вы отправляете код установки из мастера настройки и получаете привязанный к нему .lic файл.

  2. 02

    Скачайте образы

    docker login hub.apparch.io - ID установки как логин, ключ как пароль. В air-gapped сети образы скачиваются один раз снаружи и заносятся внутрь.

  3. 03

    compose up + мастер

    Compose-файл поднимает панель, анализ и миграции базы; при первом запуске мастер настраивает админа и лицензию.

Требование: Docker Engine 24+ с плагином compose. Это всё.

Установка в изолированной сети

Ни установке, ни работе не нужно соединение за пределы вашей сети. Единственный обмен с внешним миром: два файла, переносимые вручную.

  1. 01

    Внесите образы

    Образы панели и API поставляются одним архивным файлом; вы переносите его на сервер и загружаете командой docker load. Образы анализа вы кладёте в свой внутренний registry, и CI-задачи берут их оттуда.

  2. 02

    Сгенерируйте секреты на сервере

    gen-secrets.sh случайным образом создаёт прямо на сервере пароли базы данных и Redis, ключ подписи сессий и главный ключ шифрования. Ни один из них не попадает к нам и не содержится в образах.

  3. 03

    Отправьте код установки

    Запустите сервисы и отправьте AppArch код установки, показанный на шаге лицензии мастера настройки. Полученный файл .lic привязан только к этой установке; положите его в ./license/apparch.lic или вставьте в мастер.

  4. 04

    Наружу не уходит ни один запрос

    Оставьте адреса поставщика и обновлений пустыми: лицензия проверяется локально, проверки версий нет, ни один запрос не покидает сеть. Новые версии тоже приходят файлами.

Просто эксплуатировать, понятно наблюдать

Что вашей команде нужно знать после установки, в четырёх пунктах.

Эндпоинты здоровья

/health/live сообщает, что процесс работает, /health/ready, что база данных и Redis отвечают (для панели: API). Compose использует их как проверки здоровья контейнеров; в Kubernetes они служат пробами liveness и readiness.

Обновления

Измените версию образа в .env и выполните docker compose pull и up. Ожидающие миграции базы применяются при запуске по порядку, сколько бы версий ни было пропущено. Миграции идут только вперёд, поэтому сначала сделайте резервную копию через pg_dump.

Запуск, который всё объясняет

API пошагово пишет запуск в журнал: база данных, миграции, справочные данные, лицензия. Если шаг не удался, строка ошибки называет этот шаг; при сбое соединения видны хост и порт, но никогда учётные данные.

Больше одной реплики

Реплики с общими PostgreSQL и Redis составляют одну установку: миграции выполняются один раз под блокировкой базы, плановые задачи срабатывают на одной реплике через кластерный планировщик, сессии разделяются через Redis.

Безопасность по умолчанию

Меры, которые идут вместе с установкой и не требуют дополнительной настройки.

  • Секреты остаются у вас. Пароли и ключи создаются на вашем сервере при установке; в образах только несекретные значения по умолчанию.
  • Учётные данные Git зашифрованы. Токены доступа подключённых провайдеров шифруются в базе данных алгоритмом AES-GCM главным ключом вашей установки.
  • Образы без оболочки и без root. Контейнеры содержат только среду выполнения .NET, не включают оболочку и работают от непривилегированного пользователя.
  • Лицензию нельзя изменить. Лицензия проверяется ключом подписи AppArch внутри образов; ручная правка файла ломает подпись.
  • Вход остаётся в вашей сети. Почта и пароль (с необязательной двухфакторной аутентификацией) или LDAP / Active Directory. Входа через Google или GitHub нет.

Как ведёт себя лицензия?

Никаких внезапных отключений: лимиты явные, как и то, что происходит при их превышении.

Подписанный файл, офлайн-проверка

Лицензия - это .lic файл с подписью RS256; установка проверяет его локально, и одна лицензия работает только на одной установке. Она не звонит на лицензионный сервер, чтобы работать. Несколько подов с общей базой данных считаются одной установкой.

Счётчики по календарному месяцу

Лимиты считаются за календарный месяц и обнуляются в его начале - без сюрпризов скользящего окна.

Сначала мягкий лимит, потом жёсткий

Превышение лимита не останавливает работу: семь дней и 10% допускаются, панель предупреждает. Жёсткая остановка наступает лишь когда буфер исчерпан.

Частые вопросы

Как получать обновления?
Новые релизы приходят в тот же реестр; один тег версионирует все компоненты вместе. Обновление = скачать новый тег и перезапустить compose; миграции выполняются сами при старте. Панель может сообщать о новых версиях, если разрешите.
Какие есть варианты аутентификации?
E-mail и пароль с необязательной двухфакторной аутентификацией или вход через LDAP / Active Directory. Пользователей заводят в разделе управления. Входа через Google или GitHub нет.
Что работает в полном air gap, а что нет?
Работает: весь анализ, все модули, панель, отчёты и обучение Archito - весь продукт локален. Не работает: подсказки ИИ и вкладка «Спросить», которым нужно соединение с провайдером ИИ, и автоматические анонсы релизов. Образы переносятся физически; код установки передаётся наружу, а выпущенный для него файл лицензии - внутрь.
Кто видит данные?
Только вы. Исходники, находки, пользователи и отчёты лежат в вашей базе; ни телеметрия, ни код в AppArch не уходят. У нас есть лишь запись о вашей лицензии.
Как устроены цены?
Лицензия рассчитывается на установку, лимиты проектов и участников записаны в ней. Её можно купить и через партнёров и реселлеров. За предложением обратитесь в отдел продаж - форма займёт две минуты.
Работает ли это в Kubernetes?
Да. Эталонная установка: Docker Compose на одном сервере; те же образы работают в Kubernetes. Направьте пробу liveness на /health/live, пробу readiness на /health/ready и дайте API щедрое время на запуск, потому что первый запуск выполняет миграции. Реплики с одной общей базой считаются одной установкой и работают по одной лицензии.
Что нужно резервировать?
Данные PostgreSQL (том pgdata или вывод pg_dump) и файл .env. Если главный ключ шифрования из .env утерян, сохранённые учётные данные Git уже не расшифровать; храните его вместе с остальными секретами.
Что будет с лицензией при смене сервера?
Если вы переносите базу данных на новый сервер, установка остаётся той же и лицензия продолжает работать. Если вы ставите систему на новом сервере с нуля, попросите AppArch освободить лицензию и получите её заново из новой установки; лицензия работает только на одной установке одновременно.

Попробуйте внутри своего периметра

Запросите ID установки; с compose-файлом вы подниметесь за один вечер.

Подпишитесь на нашу рассылку

Новые модули, заметки о выпусках и статьи об архитектуре. Отписаться можно в один клик в любой момент.