Техническая документация
Программа для ЭВМ «ХэбитМир». Версия документа — 1.1. Дата редакции — 5 мая 2026 г..
Документ соответствует требованиям подпунктов «г» и «д» пункта 5 Правил формирования и ведения единого реестра российских программ для ЭВМ и баз данных, утверждённых Постановлением Правительства Российской Федерации от 16 ноября 2015 г. № 1236.
1. Общие сведения
1.1. Наименование
Полное: Программа для ЭВМ «ХэбитМир».
Краткое: ХэбитМир.
Латинская транслитерация: HabitMir.
1.2. Назначение
«ХэбитМир» — мобильное приложение для отслеживания пользовательских привычек с визуальной игровой механикой. Помогает пользователям формировать здоровые привычки в области спорта, продуктивности, ментального здоровья, творчества и обучения через регулярную фиксацию выполненных действий и визуальное вознаграждение в виде развивающегося миниатюрного мира.
1.3. Целевая аудитория
Пользователи мобильных устройств в возрасте 18–34 лет, ориентированные на личностное развитие. Поддерживаемый язык интерфейса — русский (расширение на английский запланировано в последующих версиях).
1.4. Системные требования
| Параметр | Значение |
|---|---|
| Операционная система | Android 8.0 (API 26) и выше |
| Объём свободной памяти | не менее 100 МБ |
| Размер дистрибутива | около 70 МБ |
| Доступ к интернету | требуется для синхронизации (offline-first) |
| Доступ к уведомлениям | опционально, для напоминаний |
1.5. Канал распространения
Приложение распространяется через российский магазин приложений RuStore (rustore.ru). Установка осуществляется конечным пользователем самостоятельно.
1.6. Класс программного обеспечения и коды ОКПД 2
В соответствии с классификатором программ для ЭВМ и баз данных, утверждённым Приказом Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 22.09.2020 № 486 (в действующей редакции от 04.12.2023, с изменениями приказами № 393 от 26.04.2022, № 974 от 22.12.2022 и № 1041 от 04.12.2023; зарегистрирован в Минюсте РФ 29.10.2020, № 60646), программа для ЭВМ «ХэбитМир» относится к классу:
- Раздел 06: Офисное программное обеспечение
- Класс 06.05: Органайзеры
Описание класса согласно приказу: программное обеспечение, которое должно позволять организовывать информацию о личных контактах, задачах и событиях пользователя. Указанному определению соответствует основная функциональность ХэбитМир — организация и трекинг пользовательских привычек как задач с системой напоминаний и фиксации выполнений (событий). Игровая механика развития «Мира» является мотивационным слоем поверх трекинга привычек и не относится к основной функциональности.
Дополнительно программа относится к классу:
- Раздел 05: Прикладное программное обеспечение
- Класс 05.03: Игры и развлечения
Обоснование выбора класса 05.03. Помимо трекинга привычек, программа реализует самостоятельную интерактивную развлекательную составляющую — личный миниатюрный остров пользователя в изометрической 2.5D-графике, прогрессирующий через 20 уникальных элементов мира с пятью стадиями развития каждого. Эта составляющая обладает признаками программного обеспечения класса «Игры и развлечения»: наличие сюжетной игровой среды, прогрессии персонажа/мира, визуальной динамики и игровой мотивации, не связанной напрямую с задачами делового или офисного характера. Поскольку игровая механика реализована как полноценный самостоятельный экран приложения и предоставляет пользователю развлекательный пользовательский опыт, программа правомерно классифицируется и по разделу 05 «Прикладное программное обеспечение», классу 05.03 «Игры и развлечения» — в качестве дополнительного класса наряду с основным классом 06.05 «Органайзеры».
Соответствующие коды Общероссийского классификатора продукции по видам экономической деятельности (ОКПД 2):
| Код ОКПД 2 | Наименование |
|---|---|
| 62.01.29 | Оригиналы программного обеспечения прочего |
2. Функциональные характеристики
2.1. Основные функциональные возможности
Управление привычками. Создание привычек с настройкой расписания, частоты, длительности, целевых дней недели; выбор из готового банка шаблонов в 6 категориях (здоровье и спорт, продуктивность, ментальное здоровье, творчество, обучение, инфраструктура); редактирование и архивирование; группировка по категориям.
Ежедневный трекинг. Отметка выполнения привычки в один тап; визуальное подтверждение завершения; поддержка частичного выполнения и пропусков; заметки к выполнению с возможностью форматирования текста.
Игровая механика «Мир». Личный миниатюрный остров пользователя в изометрической 2.5D-графике; 20 уникальных элементов мира, каждый прогрессирует через 5 стадий развития по мере выполнения привычек; категории элементов соответствуют категориям привычек.
Серии и мотивация (streaks). Подсчёт текущей и максимальной серии выполнения; визуализация серий и графиков прогресса; сохранение серии при пропусках с условиями восстановления.
Уведомления. Push-уведомления о напоминаниях о привычках; настройка времени, периодичности, тона уведомлений; уведомления о достижениях.
Статистика и аналитика. Календарный heatmap по выполнению; графики по дням недели; статистика по каждой привычке отдельно; общая динамика выполнения за период.
Аутентификация. Гостевой режим (offline-first, без обязательной регистрации); опциональная авторизация через RuStore ID (приоритетный провайдер), Яндекс ID, VK ID; авторизация по email и телефону.
Подписка и монетизация. Базовый функционал бесплатно; премиум-подписка 149 ₽/мес с пробным периодом 7 дней; lifetime-доступ 1 990 ₽ единоразово; биллинг через нативную систему RuStore Pay (СБП, СберPay, T-Pay, Mir Pay).
2.2. Ограничения функциональности
Приложение не использует данные геолокации; не отправляет SMS и не совершает звонки; не имеет доступа к контактам, календарю и фотогалерее без явного разрешения; не интегрируется с социальными сетями для публикации без согласия пользователя.
3. Архитектурное описание
3.1. Общая схема
«ХэбитМир» построен по архитектуре client-server с микросервисным разделением серверной части. Клиентское приложение реализует offline-first подход: данные хранятся локально, синхронизация с сервером происходит при наличии соединения и не блокирует UX.
3.2. Клиентская часть
Платформа: Flutter SDK (Dart ^3.11). Целевая ОС: Android 8.0+. Архитектурный паттерн: feature-first + слоистая Clean-архитектура. Каталог lib/src/core/ разделён на domain (модели и контракты репозиториев), infrastructure (Hive-репозитории, Dio API-клиенты, offline sync queue, telemetry) и application (центральные Riverpod-провайдеры). Каталог lib/src/features/ содержит 13 функциональных модулей: auth, billing, habits, inbox, journal, notifications, onboarding, paywall, profile, shop, statistics, today, world — каждый со своей presentation/; кросс-фичевое состояние идёт через core.
| Слой | Технология | Назначение |
|---|---|---|
| UI | Flutter Widgets | Отрисовка экранов |
| Векторная графика | flutter_svg | Отрисовка элементов мира |
| Текстовый редактор | flutter_quill | Редактор заметок к привычкам |
| State Management | flutter_riverpod | Реактивное управление состоянием |
| Локальное хранилище | Hive / hive_flutter | Хранение данных на устройстве |
| Сеть | Dio | HTTP-клиент |
| Маршрутизация | go_router | Декларативная маршрутизация |
| Биллинг | flutter_rustore_pay | Интеграция с RuStore Pay |
| Push-уведомления | flutter_rustore_push | Push через RuStore |
| Локальные уведомления | flutter_local_notifications | Напоминания на устройстве |
| Аналитика | appmetrica_plugin (Яндекс), mytracker_sdk (VK) | Российские аналитические SDK |
| Мониторинг ошибок | sentry_flutter, sentry_dio, sentry_hive | См. раздел 7.4 |
| Логирование | talker_flutter, talker_dio_logger | Структурированные логи |
| Аутентификация | RuStore SDK, vkid_flutter_sdk, yandex_auth | Российские SDK провайдеров |
3.3. Серверная часть
Платформа: Node.js + NestJS 11 (TypeScript). Архитектурный стиль: микросервисы в NestJS-монорепозитории (apps/* для сервисов, libs/* для общих библиотек). Транспорт между сервисами: RabbitMQ через @nestjs/microservices.
| Сервис | Назначение |
|---|---|
| gateway | Единая точка входа (HTTP/REST + Swagger): модули auth, users, habits, world, journal, billing, health. Маршрутизация запросов в downstream-сервисы, аутентификация (JWT), rate limiting (@nestjs/throttler), helmet |
| habit | Управление привычками, отметками выполнения, расписанием и сериями (streaks) |
| user | Профили пользователей, кристаллы (внутренняя валюта), email и push-уведомления, серверная валидация платежей RuStore Pay и статус премиум-подписки |
| world | Состояние личного острова, прогрессия 20 элементов мира по стадиям S0–S5 |
| journal | Дневник пользователя и заметки к привычкам с шифрованием контента на сервере |
Общие библиотеки: libs/common (DTO, исключения, утилиты), libs/database (MikroORM-сущности и подключение к MongoDB), libs/messaging (RabbitMQ-клиенты, контракты сообщений между сервисами).
Хранение: MongoDB (основное), Redis (кэш и очереди задач, ioredis + cache-manager), RabbitMQ (асинхронные сообщения и межсервисный транспорт). ORM: MikroORM (@mikro-orm/mongodb).
3.4. Аутентификация
| Провайдер | Назначение |
|---|---|
| RuStore ID | Привязка к магазину, упрощённый биллинг |
| Яндекс ID | Массовая узнаваемость |
| VK ID | Молодёжная аудитория |
| Email + пароль | Резервный |
| Телефон + SMS | Резервный |
| Гостевой режим | Без регистрации |
После аутентификации сервер выдаёт JWT-токены доступа с обновлением через refresh-token.
3.5. Биллинг
Реализован через нативный SDK flutter_rustore_pay (Pay SDK v10+). На клиенте инициируется покупка через RuStore Pay. HTTP-эндпоинты приёма событий покупки находятся в модуле billing сервиса gateway; серверная валидация подписи и состояния транзакции через RuStore Server API выполняется в модуле billing сервиса user. Сервер — источник истины для статуса премиум-доступа; клиент только кэширует результат. Поддерживаемые способы оплаты: СБП, СберPay, T-Pay, Mir Pay.
4. Инструкция по установке и эксплуатации
4.1. Установка
- Открыть RuStore на устройстве Android.
- Найти «ХэбитМир» или перейти по прямой ссылке.
- Нажать «Установить».
- Запустить приложение.
4.2. Первый запуск (онбординг)
Знакомство с приложением; выбор целей; подбор привычек из банка; запрос разрешения на push-уведомления; опциональное предложение подписки с пробным периодом.
4.3. Базовое использование
Главный экран: список привычек на день, кнопки отметки выполнения, доступ к миру, статистике, настройкам.
Отметка выполнения: одно касание кнопки.
Просмотр мира: экран «Мир» отображает остров с элементами на их текущих стадиях развития.
Статистика: календарный heatmap, графики, серии (streaks).
4.4. Удаление
Стандартное удаление через настройки Android. Локальные данные удаляются. При наличии облачной синхронизации данные сохраняются на сервере. При необходимости удаления данных с сервера, необходимо пройти процедуру удаления во вкладке "Профиль"
5. Жизненный цикл программного обеспечения
5.1. Процесс выпуска обновлений
Разработка в feature-ветках → code review → автоматическое тестирование → сборка релиза → внутреннее тестирование → публикация в RuStore через RuStore Console → пост-релизный мониторинг через Sentry.
Регулярные релизы планируются ежемесячно. Критические исправления — по мере необходимости.
5.2. Регламент исправления ошибок
| Уровень | Описание | Срок реакции | Срок исправления |
|---|---|---|---|
| Критический | Приложение не запускается, потеря данных, отказ биллинга | 4 часа | 24–48 часов |
| Высокий | Существенный функционал недоступен, ошибки у >10% пользователей | 1 рабочий день | 5–7 рабочих дней |
| Средний | Локальные ошибки, не блокирующие основной функционал | 3 рабочих дня | следующий релиз |
| Низкий | Косметические дефекты | 5 рабочих дней | планируется в очередь |
5.3. Техническая поддержка
Каналы: alexey@lix.su; форма обратной связи внутри приложения; ответы на отзывы в RuStore. Время реакции — 1–3 рабочих дня.
5.4. SLA серверной инфраструктуры
| Параметр | Значение |
|---|---|
| Целевая доступность сервиса | 99,5% (исключая регламентные работы) |
| Время реакции на критический инцидент | 1 час |
| Окно регламентных работ | ночное время МСК с предварительным уведомлением |
6. Информационная безопасность
6.1. Шифрование данных
В транспорте: все взаимодействия между клиентом и сервером — по протоколу HTTPS с TLS 1.2 и выше. Сертификаты выпускаются признанными удостоверяющими центрами.
На устройстве: локальное хранилище Hive поддерживает шифрование на уровне БД. Чувствительные данные (токены аутентификации) хранятся в защищённом хранилище платформы (Android Keystore).
На сервере: базы данных размещены в изолированных сегментах сети. Доступ к управляющим интерфейсам ограничен и защищён.
6.2. Защита персональных данных (152-ФЗ)
ООО «ЛИКС» выступает оператором персональных данных в соответствии с Федеральным законом № 152-ФЗ.
Обрабатываемые категории ПДн:
- Идентификационные данные (email)
- Технические данные (идентификатор устройства, тип ОС, версия приложения)
- Платёжные данные (только идентификаторы транзакций — данные карт не хранятся)
Цели обработки: предоставление функциональности приложения; биллинг и управление подпиской; техническая поддержка; анализ использования с согласия пользователя.
Юридические основания: согласие субъекта ПДн, исполнение договора, законные интересы оператора.
Согласие пользователя получается при регистрации или использовании гостевого режима через принятие пользовательского соглашения (/terms) и политики конфиденциальности (/privacy).
6.3. Хранение данных на территории РФ
В соответствии с Федеральным законом № 242-ФЗ и № 152-ФЗ, все персональные данные граждан Российской Федерации хранятся и обрабатываются исключительно на серверах, расположенных на территории Российской Федерации.
На текущем этапе развития серверная инфраструктура развёрнута на собственных серверах правообладателя на территории РФ. На этапе масштабирования запланирована миграция в облачную инфраструктуру российского провайдера Yandex Cloud с центрами обработки данных в РФ.
6.4. Работа с уязвимостями
- Регулярное обновление зависимостей до версий с исправлениями безопасности
- Автоматический сканер уязвимостей (npm audit, dart pub outdated)
- Приём уведомлений об уязвимостях по адресу alexey@lix.su
- При выявлении критической уязвимости — исправление в приоритетном порядке
6.5. Защита от мошенничества
- Серверная валидация платежей RuStore — клиент не может «подделать» подписку
- Ограничение частоты запросов (rate limiting) на уровне API Gateway
- Логирование подозрительных активностей через Winston и Sentry
7. Технологический стек и зависимости
7.1. Клиентская часть (Flutter)
Базовый стек: flutter_riverpod 3.1.0, riverpod_annotation 4.0.0; hive 2.2.3 + hive_flutter 1.1.0; dio 5.9.2; go_router 17.2.3; flutter_svg 2.2.4; flutter_quill 11.5.0.
Системные: flutter_local_notifications 21.0.0, permission_handler 12.0.1, connectivity_plus 7.1.1, shared_preferences 2.5.5, path_provider 2.1.5, package_info_plus 9.0.1, url_launcher 6.3.2, app_settings 7.0.0, intl 0.20.2, timezone 0.11.0, flutter_timezone 5.0.2, uuid 4.5.3, cupertino_icons 1.0.9, flutter_skill 0.9.36 (внутренний UI-кит).
Российские SDK (7 шт.):
flutter_rustore_pay10.3.1 — биллинг через RuStore Payflutter_rustore_push7.2.0 — push-уведомления через RuStoreflutter_rustore_review10.0.0 — запрос отзывов через RuStorevkid_flutter_sdk1.0.3 — аутентификация через VK IDyandex_auth1.1.0 — аутентификация через Яндекс IDappmetrica_plugin4.0.0 — продуктовая аналитика (Яндекс)mytracker_sdk3.2.1 — маркетинговая аналитика (VK)
Мониторинг и логирование: sentry_flutter 9.19.0, sentry_dio 9.19.0, sentry_hive 9.19.0 (см. 7.4); talker_flutter 5.1.16, talker_logger 5.1.17, talker_dio_logger 5.1.17.
Все компоненты — open-source с открытыми лицензиями (MIT, BSD-3-Clause, Apache-2.0), либо российские SDK.
7.2. Серверная часть (Node.js / NestJS)
Фреймворк NestJS (всё MIT): @nestjs/core 11.1.19, @nestjs/common 11.1.19, @nestjs/config 4.0.4, @nestjs/platform-express 11.1.19, @nestjs/microservices 11.1.19, @nestjs/cache-manager 3.1.0, @nestjs/jwt 11.0.2, @nestjs/passport 11.0.5, @nestjs/schedule 6.1.3, @nestjs/swagger 11.3.2, @nestjs/terminus 11.1.1, @nestjs/throttler 6.5.0.
Хранение данных: @mikro-orm/core 6.6.13, @mikro-orm/mongodb 6.6.13, @mikro-orm/nestjs 6.1.2; mongodb 7.2.0 (см. 7.3); ioredis 5.10.1, cache-manager 6.4.3.
Очереди: amqp-connection-manager 4.1.15, amqplib 0.10.9 (RabbitMQ).
Безопасность: passport 0.7.0, passport-jwt 4.0.1, jose 6.2.2; argon2 0.44.0 (хеширование паролей); helmet 8.1.0; class-validator 0.14.4, class-transformer 0.5.1.
Утилиты: date-fns 4.1.0, date-fns-tz 3.2.0, nodemailer 8.0.5, winston 3.19.0 + nest-winston 1.10.2, prom-client 15.1.3, reflect-metadata 0.2.2, rxjs 7.8.2.
Мониторинг: @sentry/node 10.49.0 (см. 7.4).
Все production-зависимости — open-source (MIT, Apache-2.0, BSD-3-Clause).
7.3. Особое примечание о MongoDB
Используется MongoDB Community Edition (драйвер mongodb 7.2.0 + MikroORM).
- MongoDB не входит в перечень запрещённых СУБД Минцифры (приложение к ПП №1236, где указаны MS SQL Server, Oracle Database, Oracle MySQL Standard/Enterprise, IBM DB2, EnterpriseDB, InterSystems Caché, SAP HANA).
- Community-версия под лицензией SSPL — open-source.
- Self-hosted на собственных серверах правообладателя на территории РФ. MongoDB Atlas (SaaS) не используется.
- Все данные пользователей хранятся на территории РФ (152-ФЗ).
- Архитектура backend через MikroORM абстрагирует слой данных — миграция на российскую СУБД из реестра (Postgres Pro, Tantor PostgreSQL) технически возможна без переписывания бизнес-логики.
7.4. Особое примечание о Sentry
Используется Sentry (@sentry/node 10.49.0 на сервере, sentry_flutter 9.19.0 и интеграции на клиенте) для технического мониторинга ошибок.
Развёртывание: self-hosted на территории РФ. Sentry развёрнут в режиме self-hosted на собственных серверах правообладателя (инфраструктура на территории Российской Федерации) с использованием официального open-source-дистрибутива Sentry (лицензия FSL-1.1-Apache-2.0/BSL, переходящая в Apache-2.0 после двух лет). Облачный сервис sentry.io не используется: все события об ошибках, отправляемые клиентом и серверными микросервисами, поступают на собственный экземпляр Sentry в РФ и не покидают территорию Российской Федерации. Связь с сервером Sentry организована по HTTPS (TLS 1.2+) в пределах инфраструктуры правообладателя.
Условия использования, обеспечивающие соответствие требованиям защиты ПДн:
- Все данные мониторинга обрабатываются и хранятся исключительно на территории РФ — на собственном self-hosted-экземпляре Sentry; трансграничная передача данных отсутствует.
- В Sentry не передаются персональные данные пользователей — только технические данные ошибок (стек вызовов, версия приложения, тип устройства, временные метки).
- Используется встроенный механизм Data Scrubbing для автоматического удаления случайных данных, идентифицирующих пользователя.
- Идентификаторы пользователей в отчётах об ошибках обезличены (используются хешированные ID).
- Sentry применяется исключительно для целей выявления и устранения технических неисправностей программного обеспечения.
7.5. Инфраструктура
| Компонент | Назначение | Происхождение |
|---|---|---|
| Серверная инфраструктура | Хостинг backend и БД | Собственные серверы правообладателя на территории РФ; миграция в Yandex Cloud в плане развития |
| Linux Ubuntu LTS | ОС серверов | Open-source |
| Docker | Контейнеризация | Apache-2.0 |
| Kubernetes | Оркестрация контейнеров | Apache-2.0 |
| MongoDB Community 7.x | Основная БД (NoSQL) | SSPL, self-hosted в РФ |
| Redis | Кэш и очереди задач | BSD-3-Clause, self-hosted в РФ |
| RabbitMQ | Брокер сообщений | MPL-2.0, self-hosted в РФ |
7.6. Декларация об отсутствии запрещённых компонентов
В составе программы для ЭВМ «ХэбитМир» не используются компоненты из перечня запрещённых (приложение к ПП №1236):
- Запрещённые СУБД: MS Access, MS SQL Server, Oracle Database, Oracle MySQL Standard/Enterprise/Cluster Carrier Grade Edition, IBM DB2, EnterpriseDB, InterSystems Caché, SAP HANA — не используются
- Запрещённые серверы приложений: Adobe ColdFusion, Oracle WebLogic, RedHat JBoss Enterprise — не используются
- Запрещённые платформы: SAP, AWS как платформа — не используются
Все используемые компоненты — open-source с разрешительными лицензиями (MIT, Apache-2.0, BSD-3-Clause, SSPL для MongoDB Community), либо российскими SDK от Яндекс, VK и RuStore.
8. Средства хранения исходного кода и средства компиляции
Настоящий раздел описывает технические средства, используемые для хранения исходного текста и объектного кода программы для ЭВМ «ХэбитМир», а также технические средства компиляции исходного текста в объектный код, в соответствии с подпунктом «г» пункта 5 Правил формирования и ведения единого реестра российских программ для ЭВМ и баз данных (Постановление Правительства Российской Федерации от 16 ноября 2015 г. № 1236).
8.1. Система контроля версий
Хранение и версионирование исходного кода программы для ЭВМ «ХэбитМир» осуществляется в системе контроля версий Git (open-source, лицензия GPLv2).
8.2. Хост-репозитория
Репозитории исходного кода размещены на российском Git-хостинге GitFlic (gitflic.ru). Оператор сервиса — российская компания ООО «РЕАКСОФТ», резидент инновационного центра «Сколково». Серверная инфраструктура GitFlic расположена на территории Российской Федерации.
8.3. Структура репозиториев
Исходный код программы для ЭВМ «ХэбитМир» разделён на следующие репозитории:
habitmir-mobile— исходный код мобильного клиентского приложения на платформе Flutter (язык программирования Dart);habitmir-backend— исходный код серверной части на платформе Node.js (TypeScript), включающий микросервисыgateway,habit,user,world,journal;habitmir-shared— общие типы данных, контракты API, вспомогательные утилиты, используемые клиентом и сервером;habitmir-infra— конфигурации развёртывания серверной инфраструктуры (Docker-композиции, Kubernetes-манифесты, скрипты сборки).
8.4. Доступ к исходному коду и резервное копирование
Доступ к репозиториям ограничен учётными записями работников правообладателя. Аутентификация при выполнении операций с репозиторием (clone, push, merge) осуществляется по SSH-ключам или персональным токенам доступа GitFlic.
Дополнительное резервное копирование репозиториев выполняется на собственные серверы правообладателя, расположенные на территории Российской Федерации, не реже одного раза в неделю.
8.5. Хранение объектного кода мобильного клиентского приложения
Скомпилированные артефакты мобильного клиентского приложения — файлы формата APK (Android Package) для операционной системы Android — хранятся в следующих местах:
- на собственных серверах правообладателя (bare-metal-инфраструктура на территории Российской Федерации) — для целей внутреннего тестирования, контроля версий сборок и архивирования релизов;
- в официальной консоли разработчика российского магазина приложений RuStore (rustore.ru) — для распространения программы конечным пользователям.
8.6. Хранение объектного кода серверной части
Скомпилированные артефакты серверной части программы — образы контейнеров Docker, содержащие транспилированный JavaScript-код микросервисов NestJS — хранятся в локальном реестре контейнеров (Docker Registry), развёрнутом на собственных серверах правообладателя на территории Российской Федерации.
Каждой собранной версии программы присваивается уникальный идентификатор, соответствующий хешу коммита в системе контроля версий Git, что обеспечивает прослеживаемую связь между объектным кодом и исходным текстом, по которому он был собран.
8.7. Среда сборки
Сборка программы для ЭВМ «ХэбитМир» осуществляется на собственных серверных мощностях правообладателя — на bare-metal-серверах, расположенных на территории Российской Федерации, под управлением операционной системы Linux Ubuntu LTS (open-source, лицензия GPL).
Сборка выполняется работниками правообладателя в ручном режиме по утверждённой внутренней процедуре с обязательной фиксацией параметров сборки и хеша коммита в системе контроля версий.
8.8. Технические средства компиляции мобильного клиентского приложения
| Инструмент | Назначение | Лицензия |
|---|---|---|
| Flutter SDK (стабильная версия) | Базовый SDK для сборки кросс-платформенного приложения | BSD-3-Clause |
| Dart SDK (входит в состав Flutter) | Компиляция исходного кода на языке Dart | BSD-3-Clause |
| Android SDK | Платформенный SDK для сборки приложений Android | Apache-2.0 |
| Android Build Tools | Инструменты низкоуровневой сборки APK | Apache-2.0 |
| Gradle | Система сборки проекта Android | Apache-2.0 |
| OpenJDK 17 (LTS) | Среда выполнения и компиляции для Gradle | GPL-2.0 with Classpath Exception |
Команда сборки релизного APK: flutter build apk --release. Результатом сборки является подписанный файл формата APK, готовый к публикации в RuStore.
8.9. Технические средства компиляции серверной части
| Инструмент | Назначение | Лицензия |
|---|---|---|
| Node.js 22 (LTS) | Среда выполнения JavaScript на сервере | MIT |
| TypeScript Compiler (tsc) | Транспиляция TypeScript в JavaScript | Apache-2.0 |
| SWC (Speedy Web Compiler) | Высокопроизводительный транспилятор TypeScript | Apache-2.0 |
| pnpm | Менеджер пакетов и зависимостей | MIT |
| Docker Engine | Сборка и упаковка контейнеризованных приложений | Apache-2.0 |
Последовательность команд сборки серверного микросервиса: pnpm install → pnpm run build → docker build -t habitmir-<service>:<version> .. Результатом является транспилированный JavaScript-код, упакованный в Docker-образ.
8.10. Дополнительные технические средства
| Инструмент | Назначение | Лицензия |
|---|---|---|
| Git | Получение исходного кода из репозитория | GPL-2.0 |
| ESLint | Статический анализ JavaScript/TypeScript | MIT |
| Dart Analyzer | Статический анализ кода Dart | BSD-3-Clause |
| Jest | Запуск автоматических тестов backend | MIT |
| Flutter Test | Запуск автоматических тестов mobile | BSD-3-Clause |
8.11. Воспроизводимость сборки
Сборка программы для ЭВМ «ХэбитМир» из исходного кода является воспроизводимой: при идентичных версиях SDK, компиляторов и зависимостей, зафиксированных в файлах блокировки версий (pubspec.lock для мобильного клиента, pnpm-lock.yaml для серверной части), сборка из одного и того же коммита системы контроля версий порождает функционально идентичный объектный код. Файлы блокировки версий хранятся в репозиториях исходного кода наряду с исходным текстом и являются обязательными для каждой сборки.
9. Сведения о правообладателе
| Параметр | Значение |
|---|---|
| Полное наименование | Общество с ограниченной ответственностью «Лаборатория Информационно-Коммуникационных Систем» |
| Сокращённое наименование | ООО «ЛИКС» |
| ОГРН | 1265000007810 |
| ИНН | 5038195735 |
| КПП | 503801001 |
| Юридический адрес | 141281, Московская область, г.о. Пушкинский, г. Ивантеевка, ул. Бережок, д. 3, кв. 43 |
| Сайт продукта «ХэбитМир» | https://habitmir.ru |
| Сайт компании | https://lix.su |
| Email для всех вопросов (поддержка, безопасность, ПДн) | alexey@lix.su |
| Расчётный счёт | 40702810020000287873 в ООО «Банк Точка», БИК 044525104 |
10. История изменений документа
| Версия | Дата | Изменения |
|---|---|---|
| 1.1 | 5 мая 2026 г. | Обновлено |
| 1.0 | 4 мая 2026 г. | Первичная редакция документа |
Настоящий документ соответствует требованиям подпунктов «г» и «д» пункта 5 Правил формирования и ведения единого реестра российских программ для электронных вычислительных машин и баз данных, утверждённых Постановлением Правительства Российской Федерации от 16 ноября 2015 г. № 1236.