Платформа «Сократ». Инструкция по установке экземпляра
Публичный документ (сайт правообладателя, заявка в реестр российского ПО). Описывает развёртывание серверной части и установку мобильного приложения. Веб-модуль на базе LearnHouse в состав ПО не входит и данной инструкцией не устанавливается.
1. Требования к окружению
Платформенная виртуальная машина (одна на инсталляцию)
| Ресурс | Минимум |
|---|---|
| ОС | Linux x86-64 (Ubuntu 22.04 LTS или совместимая) |
| CPU / RAM / диск | 2 vCPU / 4 ГБ / 40 ГБ |
| ПО | Docker + Docker Compose |
| Сервисы | Keycloak (сервер идентификации, общий для всех школ), сервер доставки push-уведомлений |
Виртуальная машина школы (одна на школу-тенант)
| Ресурс | Минимум |
|---|---|
| ОС | Linux x86-64 (Ubuntu 22.04 LTS или совместимая) |
| CPU / RAM / диск | 4 vCPU / 8 ГБ / 80 ГБ |
| Сервисы (разворачиваются автоматически) | серверная часть платформы, PostgreSQL 16, Redis, Zulip, Nginx с TLS-сертификатами |
| Дополнительно | S3-совместимое объектное хранилище (внешний сервис или MinIO) |
Рабочее место администратора установки
Linux/WSL2 с Ansible ≥ 2.15; SSH-доступ к виртуальным машинам; DNS-записи
api.<домен> и chat.<домен> школы, указывающие на IP машины школы.
2. Состав дистрибутива
- Docker-образы серверной части (из реестра образов правообладателя).
- Комплект автоматизированного развёртывания (Ansible-плейбуки и роли,
шаблоны Docker Compose) — репозиторий
platform-infra. - Мобильное приложение — RuStore (Android), App Store (iOS).
3. Установка платформенной ВМ (однократно)
- Развернуть Keycloak по комплекту
docker/keycloak/(Keycloak + PostgreSQL + HTTPS-прокси), создать администратора. - Развернуть сервер доставки push-уведомлений:
ansible-playbook playbooks/platform.yml -i inventory/platform/hosts.yml.
4. Онбординг школы (одна команда)
Заполнить инвентарь школы по образцу inventory/tenants/shkola-peremen.yml
(домены, образы, секреты в ansible-vault; deploy_learnhouse оставить
выключенным — веб-модуль не входит в состав ПО) и выполнить:
ansible-playbook playbooks/tenant.yml -i inventory/tenants/<slug>.yml \
-e "tenant_slug=<slug> tenant_name='<Название школы>'"
Плейбук идемпотентен и выполняет по порядку: подготовку ОС и Docker → создание
realm и клиентов в Keycloak → серверную часть платформы (API + PostgreSQL +
Redis) → сервер обмена сообщениями → Nginx с выпуском TLS-сертификатов →
регистрацию push → смоук-проверки (/v1/health и API сообщений отвечают 200).
5. Первичная настройка школы
- Войти администратором в мобильное приложение.
- Создать учебный год, сгенерировать календарь учебных периодов, инициализировать классы и предметы, активировать год.
- Завести сотрудников и учеников (учётные записи создаются с автоматическим заведением во всех подсистемах и временным паролем).
6. Установка мобильного приложения
Установить приложение из RuStore / App Store, ввести логин и пароль, выданные школой. Минимальные версии ОС: Android 9.0, iOS 16.0.
7. Обновление
Обновление серверной части: обновить версии образов в инвентаре и повторно выполнить плейбук школы (раздел 4) — процедура идемпотентна, данные сохраняются. Обновление мобильного приложения — через магазины приложений.
8. Проверка работоспособности
https://api.<домен школы>/v1/health→ HTTP 200;https://chat.<домен школы>/api/v1/server_settings→ HTTP 200;- вход в мобильное приложение учётной записью школы выполняется успешно.