Всё для DevOps в одном месте
размещение git-репозиториев, CI/CD, реестр контейнеров и пакетов, задачи, запросы на слияние, GitOps-развёртывание и безопасность - в одном бинарнике, при 46 МБ памяти в покое
размещение git-репозиториев
Полноценное размещение Git-репозиториев с современным веб-интерфейсом, SSH-сервером и поддержкой больших файлов
- HTTP и встроенный SSH-сервер (без системного sshd)
- Ветки, теги, blame с авторством, сравнение коммитов
- Веб-редактор: создание, редактирование, пакетная отправка нескольких файлов
- Релизы с бинарными артефактами
- Git LFS (пакетный API + блокировка файлов)
- GPG-подписи коммитов: проверка ключами учётных записей со сверкой почты автора
- Встроенная Wiki с историей ревизий
Совместимость и перенос
Чужие инструменты работают со сменой адреса узла и токена, а история переезжает вместе с запроса на слияниеми
- Интерфейс GitHub на /api/v3 - работают gh, octokit и совместимые библиотеки
- Интерфейс GitLab на /api/v4 - работают glab, python-gitlab и провайдер Terraform
- Импорт из GitHub, GitLab, Bitbucket, Gitea, произвольного URL
- Перенос забирает и запросы на слияние (GitHub, GitLab, Gitea)
- Отчёт о переносе в настройках репозитория
- Зеркалирование (pull и push) по заданному интервалу или по кнопке
- Обещание совместимости /api/v1: что в ответах не меняется и сколько живёт устаревший вызов
конвейеры CI/CD
Мощная система непрерывной интеграции и доставки со встроенным исполнителем и YAML-конфигурацией
- YAML-конфигурация в .gitriver/workflows/
- DAG-зависимости (needs:) для параллельного выполнения
- Матрица сборок с прерыванием при ошибке и ограничением параллельности
- Правила запуска (if/changes/when) с вычислением выражений
- Повторы с условиями (сбой скрипта, зависание, всегда)
- Артефакты (paths, dotenv, JUnit, отчёты покрытия)
- Кеш с интерполяцией ключей и политиками push/pull
- Сервисные контейнеры (Docker-сеть, псевдоним, переменные)
- 4 уровня переменных: установка -> группа -> репозиторий -> окружение
- Группы одновременности с автоотменой прерываемых конвейеров
- Ручной запуск задач (кнопка «Запустить» из интерфейса)
- Внешние действия (uses: owner/action@ref)
- Запланированные конвейеры (cron-выражения)
- Веб-терминал - интерактивная отладка (xterm.js + WebSocket + PTY)
- Внешние исполнители + автомасштабирование в K8s (шаблон пода, tolerations)
- Docker-в-Docker (автодетект: sysbox/rootless/privileged)
- Маскировка секретов в журналах
- Отчёты тестов и покрытия (JUnit XML + Cobertura XML)
- Чужой код ждёт разрешения человека, прежде чем занять исполнителей
- Кеш между запусками на внешних исполнителях, вытеснение забытого кеша
- Расписания хранятся в базе; страница сборок называет причину, по которой расписание молчит
Реестр контейнеров
OCI-совместимый реестр контейнеров - встроен в платформу, не требует отдельного сервиса
- OCI Distribution Spec v2 (монолитная + фрагментированная загрузка, cross-repo mount)
- Аутентификация Docker Token Auth (JWT с OCI-областями)
- Мультиархитектурные манифесты (index/manifest list)
- Сканирование уязвимостей (Trivy, SARIF)
- Правила неизменяемости тегов (glob-маски)
- Политики хранения (сохранять последние N, удалять старше N дней)
- Сборка мусора (ручная + по расписанию)
- Детали образа (слои, конфигурация, метаданные)
- Учёт квот по репозиторию
- Хранилища: файловая система + S3-совместимое
- Обнаружение расхождений образов (текущий vs ожидаемый дайджест)
Реестр пакетов
Приватные репозитории пакетов для 7 форматов и зеркало внешних реестров - бесплатно в Community
- npm (публикация, установка, метаданные, поиск)
- PyPI (PEP 503, загрузка, simple index, скачивание)
- Cargo (публикация, yank/unyank, скачивание, индекс, поиск)
- Maven (загрузка и скачивание артефактов)
- NuGet V3 (публикация, удаление, запросы, поиск, регистрация)
- Generic (загрузка/скачивание произвольных файлов)
- Интеграция с CI/CD для автопубликации
- Composer (Packagist v2)
- Зеркало внешнего реестра образов: docker pull через ваш узел
- Выдача пакетов через посредника: кеш внешних реестров, прогрев, вытеснение, отчёты
Задачи и проекты
Управление задачами и проектами с досками задач, шаблонами и полнотекстовым поиском
- Задачи с метками, назначением и вехами
- доски задач (проекты, перетаскивание, привязка к задачам)
- Шаблоны задач и запросов на слияние (.gitriver/templates/)
- Комментарии с Markdown
- Связи между задачами
- Фильтрация и полнотекстовый поиск
Запросы на слияние и рецензирование кода
Полный цикл рецензирования кода с защитой веток, CODEOWNERS и автоматическим слиянием
- Построчные комментарии к коду в diff
- Рецензирование кода: одобрение / запрос изменений
- CODEOWNERS - автоматические рецензенты по путям файлов
- Очередь слияния с CI-интеграцией и временными ветками
- Защита веток (маски, обязательные рецензии, проверки CI)
- Стратегии слияния: squash, merge, rebase
- Запросы на слияние из форков (cross-repo)
- Назначение ответственных и запросы рецензирование
- Требование подписанных коммитов
- Требование актуальности ветки
- Ветки обсуждения: ответы, пометка решённой, счётчик нерешённых
- Правило слияния «все ветки обсуждения решены»
GitOps-развёртывание (RiverCD)
Встроенный GitOps-контроллер - развёртывание в Kubernetes прямо из GitRiver без внешних инструментов
- Deployment, StatefulSet, DaemonSet, Job, CronJob
- Service, ConfigMap, Secret, PVC, Ingress, HPA
- CRD (произвольные ресурсы и манифесты)
- Волны синхронизации (порядок применения ресурсов)
- Хуки до и после синхронизации
- Обнаружение расхождений (текущее vs ожидаемое состояние)
- Проверки здоровья (по ресурсам и приложению)
- Канареечное развёртывание (постепенное переключение трафика)
- Сине-зелёное развёртывание (переключение сервиса)
- Откат к предыдущей версии
- Логи и диагностика подов из интерфейса
- Мультикластер (добавление и тестирование кластеров)
- Pull-based GitOps (авто-синхронизация при изменении HEAD)
Знание и помощник
ProMaxЗнание команды живёт рядом с кодом, а языковая модель разбирает упавшую сборку и изменения запроса на слияние
- Записи знания в .gitriver/knowledge/ - вместе с кодом и его историей
- Черновики: сборка пачки черновиков в ветку и запрос на слияние
- Проверка записи на секреты при приёме
- Вкладка знания в репозитории с поиском
- Сведение счётчиков по команде и отчёт «мёртвая память» — Pro
- Указатель по коду: вкладка «Символы», переходы к определению и к вызывающим — Pro
- Помощник: разбор упавшего задания CI — Pro
- Помощник: разбор изменений запроса на слияние машинно-помеченным комментарием — Pro
- Настройки поставщика модели, учёт расхода и пределы по людям и группам — Pro
- Пределы черновиков знания — Max
Безопасность и аналитика
ProMaxСканирование уязвимостей, проверка лицензий зависимостей и DORA-метрики - в Pro, журнал аудита, квоты и правила по адресам установки - в Max
- Сканирование уязвимостей (импорт SARIF: Semgrep, Trivy, CodeQL, OSV) — Pro
- Пользовательские маски поиска секретов (regex) — Pro
- Панель уязвимостей (критичность, статус, отклонение) — Pro
- Проверка лицензий зависимостей (белый/чёрный список, SPDX, CycloneDX SBOM) — Pro
- DORA-метрики (частота развёртывания, время до продакшена, доля сбоев, время восстановления) — Pro
- Настраиваемые роли (гибкие наборы прав для групп) — Pro
- IP-правила уровня группы (белый/чёрный список) — Pro
- Журнал аудита - запись всех действий — Max
- IP-правила уровня установки (фильтруют все входящие запросы, включая анонимные) — Max
- Квоты хранилища (по пользователям и группам) — Max
- Сканирование образов реестра на уязвимости (Trivy) - бесплатно в Community
- Проверка пароля по списку утёкших, единая наименьшая длина 12 символов
Уведомления
8 каналов уведомлений из коробки с настройкой событий и шаблонов
- Встроенные уведомления в интерфейсе
- Email (SMTP)
- Telegram
- Max (мессенджер VK)
- Slack (Block Kit)
- Discord (Embeds)
- Microsoft Teams (Adaptive Cards)
- Matrix (Element)
- Вебхуки (HMAC-SHA256, повторы, история доставки)
- Настройки email (тихий режим / упоминания / всё)
- Фильтрация событий (по веткам и авторам)
- Настраиваемые шаблоны сообщений
Резервное копирование
Полное резервное копирование с шифрованием и инкрементальным режимом - управление из интерфейса
- Полная резервная копия (БД + репозитории + реестр + CI + сайты)
- Инкрементальная резервная копия (только изменённые файлы)
- Шифрование AES-256-GCM
- Выборочное восстановление (по компонентам)
- Запланированные резервные копии (cron-расписание)
- Авторотация (ограничение количества копий)
- Проверка контрольной суммы (SHA256, потоковая)
- Потоковая загрузка в S3 (без нехватки памяти)
- Одноразовые ссылки для скачивания (безопасность)
Статические сайты и Wiki
Размещение статических сайтов и документации прямо из репозитория
- Статический размещение из репозитория (развёртывание из ZIP или CI)
- Встроенная Wiki с Markdown и историей ревизий
- Пользовательские домены
- Поддержка SPA (fallback на index.html)
- Автоматическое развёртывание из CI (артефакт public/)
- Защита от обхода путей
Аутентификация и единый вход
ProMaxГибкая система аутентификации с корпоративными провайдерами, 2FA и управлением сессиями
- OAuth2 / OpenID Connect (GitHub, Google, GitLab)
- LDAP / Active Directory (привязка, поиск, тест из интерфейса) — Max
- SAML 2.0 (метаданные SP, ACS, XMLDsig, SLO, синхронизация пользователей и групп) — Max
- SCIM 2.0 (управление пользователями и группами, синхронизация членства) — Max
- Двухфакторная аутентификация (TOTP с QR, резервные коды)
- Персональные токены доступа (области, срок действия)
- Токены развёртывания (по репозиторию, области)
- Настраиваемые роли (гибкие наборы прав для групп) — Pro
- Управление сессиями (активные сессии, удалённый выход)
- SSH и GPG ключи
- Узел как поставщик OIDC: id_token с проверяемой подписью (JWKS)
- StartTLS: ldap:// поднимается до TLS — Max
- Временная блокировка учётной записи вместо безвозвратного удаления
Установка и эксплуатация
Один бинарник на Rust и одна база PostgreSQL - от установки на ноутбуке до нескольких реплик в Kubernetes
- Один бинарник 67 МБ, 46 МБ памяти в покое (замер на сборке 1.1.0)
- Docker и docker compose, пакеты deb и rpm, чарт Helm для Kubernetes
- Несколько реплик: фоновые задачи ведёт одна, лидерство на блокировках PostgreSQL
- Установка без Docker: вся очередь CI уходит внешним исполнителям
- Встроенный SSH-сервер - без системного sshd, ключи и настройки из админки без перезапуска
- Мастер настройки при первом запуске
- PostgreSQL 15 и новее (проверки идут на 17, поставляемый compose поднимает 18)
- Документация API и текст лицензионного соглашения работают без выхода в интернет
- Выдача пакетов через посредника - работа в закрытом контуре