Хранение исходного кода
Настоящий документ разработан в рамках требований Постановления Правительства РФ от 28.12.2022 № 2461 и содержит описание технических средств хранения исходного текста и объектного кода ПО «Метрика про энерго», а также средств компиляции.
Общие положения
| ПО | Метрика про энерго v1.0 |
| Правообладатель | ООО «Метрика» (ИНН 7709033880, ОГРН 1027739279347) |
| Языки программирования | Go 1.26 (backend), TypeScript 5.9 (frontend) |
| Адрес разработки и хранения | 115088, г. Москва, ул. Симоновский Вал, д. 20, к. 3, пом. 54 |
Все технические средства размещены на территории Российской Федерации. Трансграничной передачи данных не осуществляется.
Хранение исходного кода
Система контроля версий
Исходный код хранится в Git — распределённой системе контроля версий (лицензия GPL-2.0).
Репозитории размещены на собственном экземпляре GitLab Community Edition (лицензия MIT), развёрнутом на серверах ООО «Метрика» у хостинг-провайдера Beget (Россия).
Доступ к репозиториям ограничен — только авторизованные разработчики ООО «Метрика» через:
- SSH с аутентификацией по ключам
- HTTPS с двухфакторной аутентификацией
Структура репозитория
Исходный код организован в монорепозитории:
| Директория | Назначение |
|---|---|
cmd/ | Точки входа приложения |
internal/ | Бизнес-логика, сервисы, репозитории |
web/ | Frontend (TypeScript/React) |
migrations/ | SQL-миграции базы данных |
deploy/ | Конфигурации развёртывания |
Локальное хранение
Полные копии исходного кода хранятся на рабочих станциях разработчиков ООО «Метрика» по адресу: 115088, г. Москва, ул. Симоновский Вал, д. 20, к. 3, пом. 54.
Резервное копирование
- Автоматически — средствами GitLab (
gitlab-backup, ежедневно) - Локально — на рабочих станциях разработчиков (полная копия при каждом
git pull) - Еженедельно — на внешний носитель, хранящийся по адресу разработки
Компиляция исходного кода
Компиляция выполняется на серверах и рабочих станциях ООО «Метрика» по адресу: 115088, г. Москва, ул. Симоновский Вал, д. 20, к. 3, пом. 54.
Серверная часть (Go)
| Параметр | Значение |
|---|---|
| Компилятор | Go 1.26 |
| Режим | CGO_ENABLED=0 (статическая линковка) |
| Целевые платформы | linux/amd64, linux/arm64, windows/amd64 |
| Результат | Единый исполняемый файл (≤ 60 МБ) |
Бинарный файл содержит HTTP-сервер (API), встроенный frontend (SPA через go:embed) и фоновые задачи (планировщик, мониторинг).
Клиентская часть (TypeScript/React)
| Параметр | Значение |
|---|---|
| Сборщик | Vite |
| Линтер | Biome |
| Проверка типов | TypeScript (tsc --noEmit) |
| Результат | Статические файлы (HTML, CSS, JS) |
Результат сборки встраивается в Go-бинарь через go:embed и раздаётся встроенным HTTP-сервером.
CI/CD — автоматическая сборка
Автоматическая сборка и тестирование выполняются через GitLab CI/CD — систему непрерывной интеграции GitLab CE, развёрнутую на серверах ООО «Метрика» (хостинг Beget, Россия).
Конвейер сборки (pipeline):
- Проверка кода — линтинг (Biome, golangci-lint), проверка типов (
tsc) - Тестирование — юнит- и интеграционные тесты (Go test, Vitest)
- Компиляция — сборка Go-бинаря (
CGO_ENABLED=0 go build) - Контейнеризация — сборка Docker-образа (multi-stage, distroless, ≤ 60 МБ)
- Публикация — загрузка образа в GitLab Container Registry
- Развёртывание — обновление конфигурации в кластере k3s через ArgoCD
Все этапы сборки выполняются на GitLab Runner на серверах ООО «Метрика» у хостинг-провайдера Beget (Россия). Трансграничной передачи данных при сборке и тестировании не осуществляется.
Хранение объектного кода
Docker-образы
Скомпилированные Docker-образы хранятся в GitLab Container Registry — встроенном реестре контейнерных образов GitLab CE (хостинг Beget, Россия).
| Параметр | Значение |
|---|---|
| Базовый образ | distroless (gcr.io/distroless/static) |
| Сборка | Multi-stage (минимальный размер, без лишних утилит) |
| Размер образа | ≤ 60 МБ |
| UID | 65532 (непривилегированный пользователь) |
Бинарные дистрибутивы
Скомпилированные бинарные файлы хранятся:
- В GitLab Releases — для скачивания клиентами
- На файловом сервере ООО «Метрика» по адресу разработки
| Платформа | Архитектура |
|---|---|
| Linux | amd64, arm64 |
| Windows | amd64 |
Развёрнутые экземпляры
Рабочие экземпляры объектного кода развёрнуты в кластере k3s (Kubernetes, лицензия Apache-2.0) на серверах хостинг-провайдера Beget (Россия). Оркестрация — через ArgoCD (GitOps-подход).
О документе
| ПО | Метрика про энерго v1.0 |
| Правообладатель | ООО «Метрика» (ИНН 7709033880, ОГРН 1027739279347) |
| Адрес | 115088, г. Москва, ул. Симоновский Вал, д. 20, к. 3, пом. 54 |
| Свидетельство | Роспатент № 2026616612 от 10.03.2026 |
| Сайт | metrica.pro |
| support@metrica.pro | |
| Телефон | +7 495 740-22-33 |