A lightweight self-hosted feature flag service. Run it, point your app at it, control features at runtime without redeploying.
# Create a flag
curl -X POST http://localhost:8082/flags \
-H "X-API-Key: dev-api-key" \
-H "Content-Type: application/json" \
-d '{"key": "dark-mode", "name": "Dark Mode", "enabled": true, "rolloutPercentage": 100, "environment": "production"}'
# Evaluate it
curl -X POST http://localhost:8082/flags/dark-mode/evaluate \
-H "X-API-Key: dev-api-key" \
-H "Content-Type: application/json" \
-d '{"userId": "user-123", "environment": "production"}'
# {"key":"dark-mode","enabled":true,"reason":"enabled"}- Backend - Java 21, Quarkus 3 (native binary via GraalVM)
- Database - PostgreSQL (Neon or Supabase)
- Deployment - Oracle Cloud Free Tier, systemd
You need Java 21 and Maven.
# Fork the repo first, then clone your fork
git clone https://github.com/YOUR_USERNAME/flagctl
cd flagctl
cp src/main/resources/application.example.properties src/main/resources/application.properties
./mvnw quarkus:devRuns with an in-memory H2 database by default, no database setup needed.
The service runs on http://localhost:8082. Health check: http://localhost:8082/q/health
See CONTRIBUTING.md. Issues labeled good first issue are a good place to start.