Quick Start
Get OpenGate IAM running locally in under 5 minutes using Docker Compose.
On this page
Prerequisites
| Requirement | Minimum Version |
|---|---|
| Docker | 24+ |
| Docker Compose | v2 |
| Java (local dev only) | 21 |
| Node.js (Admin Console only) | 20+ |
Start the Stack
1
Clone the repository
git clone https://github.com/MuyleangIng/opengate-iam.git
cd opengate-iam2
Start infrastructure (PostgreSQL · Redis · Kafka · Vault)
docker compose -f docker/docker-compose.infra.yml up -dWait for PostgreSQL to be ready:
docker compose -f docker/docker-compose.infra.yml logs -f postgresDatabase initialisation
init-databases.sh automatically creates all required PostgreSQL databases on first startup.
3
Start IAM microservices
docker compose -f docker/docker-compose.services.yml up -dCheck all containers are healthy:
docker compose -f docker/docker-compose.services.yml ps4
Start the Admin Console (optional)
cd opengate-console
npm install
npm run devOpen http://localhost:3000 in your browser.
Verify Services
Run a quick health check across all services:
for port in 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089; do
status=$(curl -sf http://localhost:$port/actuator/health | python3 -c "import sys,json; print(json.load(sys.stdin)['status'])" 2>/dev/null || echo "DOWN")
printf "Port %-5s → %s
" $port "$status"
doneExpected output when everything is healthy:
Port 8080 → UP
Port 8081 → UP
Port 8082 → UP
Port 8083 → UP
Port 8084 → UP
Port 8085 → UP
Port 8086 → UP
Port 8087 → UP
Port 8088 → UP
Port 8089 → UPFirst Login
| Field | Value |
|---|---|
| Admin Console | http://localhost:3000 |
| Username | admin |
| Password | admin |
| API Gateway | http://localhost:8080 |
| Docs | http://localhost:3001 |
Change the default admin password
The default admin / admin credentials are for local development only. Change them before exposing any endpoint to the internet.
Get your first access token
curl -s -X POST http://localhost:8080/realms/master/protocol/openid-connect/token \
-d "grant_type=client_credentials" \
-d "client_id=admin-cli" \
-d "client_secret=admin-secret" | jq .You're up and running!
OpenGate IAM is live. Continue with Installation to learn about local development without Docker.