An open-source platform for managing and testing AI prompts with support for multiple LLM providers.
Genum is a full-stack application that provides:
- Backend API (
apps/core): Node.js/Express server with TypeScript, Prisma ORM, and AI provider integrations - Frontend Web App (
apps/web): React application built with Vite and TypeScript - Database Stack: PostgreSQL for primary data storage and ClickHouse for analytics
- Docker
- Docker Compose
- At least 4GB of available RAM
- 8GB of free disk space
-
Clone the repository
git clone ... cd ... -
Create environment file (optional)
Create a
.envfile in the root directory. For the Docker setup, you only need to add AI provider keys to use AI features — everything else has defaults indocker-compose*.yml.Minimal
.envfile (only AI keys needed):# AI Provider Keys (required for AI features) OPENAI_KEY=your_openai_key_here ANTHROPIC_KEY=your_anthropic_key_here GEMINI_KEY=your_gemini_key_here
Tip: start from
env.example(copy it to.env).You can add any of these keys depending on which AI providers you want to use. The application will work without them, but AI features won't be available.
-
Start the application
docker-compose up -d
This command will:
- Build Docker images for all services
- Start PostgreSQL and ClickHouse databases
- Run database migrations and seed initial data
- Start the backend API server
- Start the frontend web application
-
Access the application
- Frontend: http://localhost:3080
- Backend API: http://localhost:3010
- PostgreSQL: localhost:5432 (if exposed)
- ClickHouse HTTP: localhost:8123 (if exposed)
The application consists of the following services:
- Port: 3010 (configurable via
CORE_PORT) - Description: Express.js API server handling business logic, database operations, and AI provider integrations
- Health: Automatically runs database migrations and seeds on startup
- Port: 3080 (configurable via
WEB_PORT) - Description: React single-page application served via Nginx
- Note: Environment variables are embedded at build time
- Port: 5432 (configurable via
POSTGRES_PORT, defaults to localhost-only) - Version: PostgreSQL 17
- Data Persistence: Stored in Docker volume
genum-postgres_data
- HTTP Port: 8123 (configurable via
CLICKHOUSE_HTTP_PORT, defaults to localhost-only) - Native Port: 9000 (configurable via
CLICKHOUSE_NATIVE_PORT, defaults to localhost-only) - Version: ClickHouse 25.10
- Data Persistence: Stored in Docker volumes
genum-clickhouse_dataandgenum-clickhouse_logs
To use AI features, you need to add only these 3 environment variables to your .env file:
OPENAI_KEY: OpenAI API key for GPT modelsANTHROPIC_KEY: Anthropic API key for Claude modelsGEMINI_KEY: Google API key for Gemini models
You can add any combination of these keys depending on which AI providers you want to use. The application will work without them, but AI features won't be available.
All other environment variables have defaults suitable for local development. You only need to set them if you want to customize the configuration.
INSTANCE_TYPE: Set tolocalfor local authentication orcloudfor Auth0AUTH0_DOMAIN: Auth0 domain (required for cloud mode)AUTH0_CLIENT_ID: Auth0 client ID (required for cloud mode)AUTH0_AUDIENCE: Auth0 API audience (required for cloud mode)
CORE_PORT: Backend API port (default: 3010)WEB_PORT: Frontend web port (default: 3080)POSTGRES_PORT: PostgreSQL port (default: 127.0.0.1:5432)CLICKHOUSE_HTTP_PORT: ClickHouse HTTP port (default: 127.0.0.1:8123)CLICKHOUSE_NATIVE_PORT: ClickHouse native port (default: 127.0.0.1:9000)
See docker-compose.yml for the complete list of environment variables.
docker-compose up -ddocker-compose down# All services
docker-compose logs -f
# Specific service
docker-compose logs -f core
docker-compose logs -f webdocker-compose up -d --builddocker-compose down -v-
Check if ports are already in use:
lsof -i :3010 # Backend lsof -i :3080 # Frontend lsof -i :5432 # PostgreSQL
-
Check Docker logs:
docker-compose logs
- Verify
API_URLbuild argument matches your backend URL - Check network connectivity:
docker network inspect genum_genum-network
# Stop and remove containers, networks, and volumes
docker-compose down -v
# Remove images (optional)
docker rmi genum-core genum-web
# Start fresh
docker-compose up -d --buildFor local development without Docker, see the individual README files in:
apps/core/- Backend development setupapps/web/- Frontend development setup
Genum is distributed under the Business Source License 1.1 (BUSL).
- ✔ Personal use
- ✔ Educational use
- ✔ Research and experimentation
- ❌ Any commercial use
- ❌ Use inside a business or organization
- ❌ Internal business automation
- ❌ Enterprise deployment
- ❌ Integration into SaaS, services, or commercial tools
Genum is source-available, not open-source. There is no automatic conversion to an open-source license.
Yes. Personal use is fully allowed.
Yes. Educational and research usage is permitted.
Yes, as long as usage remains non-commercial.
No. Any organizational or business usage requires a commercial license.
No — unless you hold a commercial license from rockIT.consulting GmbH.
No. It is source-available under BUSL 1.1.
No. There is no scheduled transition to an open-source license.
Contact: enterprise@rockit.consulting
Coming soon...