Хранение исходного кода

Технические средства хранения исходного текста, компиляции и хранения объектного кода ПО.

Настоящий документ разработан в рамках требований Постановления Правительства РФ от 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):

  1. Проверка кода — линтинг (Biome, golangci-lint), проверка типов (tsc)
  2. Тестирование — юнит- и интеграционные тесты (Go test, Vitest)
  3. Компиляция — сборка Go-бинаря (CGO_ENABLED=0 go build)
  4. Контейнеризация — сборка Docker-образа (multi-stage, distroless, ≤ 60 МБ)
  5. Публикация — загрузка образа в GitLab Container Registry
  6. Развёртывание — обновление конфигурации в кластере k3s через ArgoCD

Все этапы сборки выполняются на GitLab Runner на серверах ООО «Метрика» у хостинг-провайдера Beget (Россия). Трансграничной передачи данных при сборке и тестировании не осуществляется.

Хранение объектного кода

Docker-образы

Скомпилированные Docker-образы хранятся в GitLab Container Registry — встроенном реестре контейнерных образов GitLab CE (хостинг Beget, Россия).

ПараметрЗначение
Базовый образdistroless (gcr.io/distroless/static)
СборкаMulti-stage (минимальный размер, без лишних утилит)
Размер образа≤ 60 МБ
UID65532 (непривилегированный пользователь)

Бинарные дистрибутивы

Скомпилированные бинарные файлы хранятся:

  • В GitLab Releases — для скачивания клиентами
  • На файловом сервере ООО «Метрика» по адресу разработки
ПлатформаАрхитектура
Linuxamd64, arm64
Windowsamd64

Развёрнутые экземпляры

Рабочие экземпляры объектного кода развёрнуты в кластере k3s (Kubernetes, лицензия Apache-2.0) на серверах хостинг-провайдера Beget (Россия). Оркестрация — через ArgoCD (GitOps-подход).

О документе

ПОМетрика про энерго v1.0
ПравообладательООО «Метрика» (ИНН 7709033880, ОГРН 1027739279347)
Адрес115088, г. Москва, ул. Симоновский Вал, д. 20, к. 3, пом. 54
СвидетельствоРоспатент № 2026616612 от 10.03.2026
Сайтmetrica.pro
Emailsupport@metrica.pro
Телефон+7 495 740-22-33