Self-hosted-платформа управления фиче-флагами (open-core).
можно. — сервер фиче-флагов для команд любого размера. Включай фичи на продакшене без деплоя, раскатывай изменения постепенно, сегментируй аудиторию — всё из одной панели.
| Категория | Описание |
|---|---|
| Флаги | RELEASE и KILLSWITCH, процентный роллаут, правила на основе атрибутов |
| Контексты | Оценка флагов по произвольным атрибутам пользователя или запроса |
| Сегменты | Переиспользуемые группы пользователей с общими правилами таргетинга |
| Стратегии | Конфигурация на окружение: правила, сегменты, процентный роллаут |
| API-ключи | Ключи на каждое окружение с гранулярными правами |
| Аудит | Полная история изменений каждого флага и конфигурации |
| SDK | Нативные клиенты для Java и JavaScript — оценка флагов локально, без сетевого вызова |
cd web && npm run storybook # http://localhost:6006Storybook показывает все UI-компоненты в изолированном каталоге с документацией.
| ● ● ● |
![]() |
Дашборд флагов
Все флаги на одном экране. Переключайте фичи в продакшене и разработке одной кнопкой — без деплоя, без ожидания, без риска для пользователей.
![]() |
Панель активации
Настройте процент раскатки — 30% пользователей, VIP-сегмент, только РФ. Всё в одном окне: слайдер, выбор сегментов, условия. Никаких конфигов.
| ● ● ● |
![]() |
Обзорный дашборд
Главный экран после входа. Ключевые метрики проекта в одном месте: статус флагов по окружениям, дрифт между средами, лента активности и чеклист онбординга для новых проектов.
Запустите проект локально (
make dev) чтобы увидеть интерфейс.
# docker-compose.yml
services:
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: feature_flags
POSTGRES_USER: flags_user
POSTGRES_PASSWORD: flags_password
volumes:
- pgdata:/var/lib/postgresql/data
mozhno:
image: mozhnodev/mozhno:latest
ports:
- '8080:8080'
environment:
MOZHNO_DB_URL: jdbc:postgresql://postgres:5432/feature_flags
MOZHNO_DB_USERNAME: flags_user
MOZHNO_DB_PASSWORD: flags_password
MOZHNO_JWT_SECRET: ${MOZHNO_JWT_SECRET}
depends_on:
- postgres
volumes:
pgdata:# Сгенерируйте JWT-секрет для продакшена (≥32 символов или Base64 ≥32 байт).
# Для dev — можно пропустить: сервер сгенерирует случайный ключ.
export MOZHNO_JWT_SECRET=$(openssl rand -base64 32) # или обычный текст ≥32 символов
docker compose up -dОткрой http://localhost:8080 — веб-панель уже встроена в сервер.
Полный compose с healthcheck и pgAdmin —
docker-compose.yml.
| Модуль | Назначение |
|---|---|
mozhno-spi |
Интерфейсы сервис-провайдеров |
mozhno-core |
Бизнес-логика, движок оценки флагов, хранение |
mozhno-web-api |
REST-контроллеры, Spring Security 6, JWT, OpenAPI |
mozhno-app |
Точка входа, статические ресурсы, миграции БД (Flyway) |
Сервер — Spring Boot 4.0 / JDK 25. Веб-интерфейс — React 19 SPA (Vite, Tailwind CSS 4, Radix UI). SDK загружают правила флагов один раз и принимают решение локально.
Модель доступа: активный проект хранится в JWT (claim project_id).
Все ресурсы (флаги, сегменты, контексты, API-ключи, аудит и т.д.) ограничены этим
проектом; права на изменение зависят от роли (ADMIN/DEVELOPER/VIEWER).
Проект создаётся один раз при bootstrap и не может быть удалён — используйте сброс.
SDK живут в отдельных репозиториях:
- Java SDK —
dev.mozhno:mozhno-client-java, JDK 17+ - JavaScript/TypeScript SDK —
@mozhno/client-js, browser + Node.js
Установка и документация — в соответствующих репозиториях.
| Переменная | По умолчанию | Описание |
|---|---|---|
MOZHNO_DB_URL |
jdbc:postgresql://localhost:5432/feature_flags |
JDBC URL базы данных |
MOZHNO_DB_USERNAME |
flags_user |
Пользователь БД |
MOZHNO_DB_PASSWORD |
flags_password |
Пароль БД |
MOZHNO_JWT_SECRET |
(рекомендуется для прода) | Ключ (≥32 символов) или Base64 (≥32 байт). Для dev опционален — генерируется случайный ключ. Сгенерировать: openssl rand -base64 32 |
MOZHNO_BASE_URL |
http://localhost:8080 |
Публичный URL сервера |
MOZHNO_CLIENT_MAX_METRICS_BATCH_SIZE |
1000 |
Максимальный размер батча метрик от SDK |
MOZHNO_CLIENT_INSTANCE_RETENTION_DAYS |
30 |
Срок хранения данных о клиентских инстансах |
MOZHNO_MANAGEMENT_PORT |
9090 |
Порт для actuator-эндпоинтов (health, metrics, prometheus) |
MOZHNO_SERVER_PORT |
8080 |
HTTP-порт |
Все переменные окружения
Полный список переменных (rate-limit, webhooks, cache, SMTP и т.д.) — см. .env.example.
Swagger UI — http://localhost:8080/swagger-ui.html. Спецификация OpenAPI 3.1 — /v3/api-docs.
Требования: JDK 25 (сервер), JDK 17+ (SDK), Node.js 24, PostgreSQL 15+.
Быстрее всего — через make (корневой Makefile):
make dev # Postgres + подсказки по запуску server/web
make server-run # сборка web-статики + запуск сервера (dev-профиль)
make web-dev # web UI с HMR
make server-test # тесты сервера
make web-test # тесты webЗапуск вручную
docker compose up -d postgres
cd server && ./gradlew :mozhno-app:bootRun
cd web && npm ci && npm run devcd server && ./gradlew check # Тесты сервера
cd web && npm test # Тесты веб-интерфейсаВклад приветствуется — начните с CONTRIBUTING.md. Пожалуйста,
соблюдайте Кодекс поведения. Об уязвимостях сообщайте по
политике безопасности. История изменений — в CHANGELOG.md.
Business Source License 1.1 · © 2026 Edgar Gilmanov


