Skip to content
mozhno-devPublic

About

Open-core, self-hosted feature flag platform — toggle features in production without deploys, roll out gradually, segment your audience. Spring Boot + React.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

7 stars

Watchers

0 watching

Forks

Latest commit

 

History

190 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

можно.

Self-hosted-платформа управления фиче-флагами (open-core).

CI BSL 1.1 Docker Stars

English


можно. — сервер фиче-флагов для команд любого размера. Включай фичи на продакшене без деплоя, раскатывай изменения постепенно, сегментируй аудиторию — всё из одной панели.


Возможности

Категория Описание
Флаги RELEASE и KILLSWITCH, процентный роллаут, правила на основе атрибутов
Контексты Оценка флагов по произвольным атрибутам пользователя или запроса
Сегменты Переиспользуемые группы пользователей с общими правилами таргетинга
Стратегии Конфигурация на окружение: правила, сегменты, процентный роллаут
API-ключи Ключи на каждое окружение с гранулярными правами
Аудит Полная история изменений каждого флага и конфигурации
SDK Нативные клиенты для Java и JavaScript — оценка флагов локально, без сетевого вызова

Дизайн-бук (Storybook)

cd web && npm run storybook   # http://localhost:6006

Storybook показывает все 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

SDK живут в отдельных репозиториях:

Установка и документация — в соответствующих репозиториях.


Конфигурация

Переменная По умолчанию Описание
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.


API

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 dev
cd server && ./gradlew check   # Тесты сервера
cd web && npm test             # Тесты веб-интерфейса

Участие

Вклад приветствуется — начните с CONTRIBUTING.md. Пожалуйста, соблюдайте Кодекс поведения. Об уязвимостях сообщайте по политике безопасности. История изменений — в CHANGELOG.md.


Лицензия

Business Source License 1.1 · © 2026 Edgar Gilmanov

Contributing · Security · Code of Conduct · Changelog

About

Open-core, self-hosted feature flag platform — toggle features in production without deploys, roll out gradually, segment your audience. Spring Boot + React.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages