OpenGate/ Docs

Quick Start

Get OpenGate IAM running locally in under 5 minutes using Docker Compose.

On this page


Prerequisites

RequirementMinimum Version
Docker24+
Docker Composev2
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-iam
2

Start infrastructure (PostgreSQL · Redis · Kafka · Vault)

docker compose -f docker/docker-compose.infra.yml up -d

Wait for PostgreSQL to be ready:

docker compose -f docker/docker-compose.infra.yml logs -f postgres

Database 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 -d

Check all containers are healthy:

docker compose -f docker/docker-compose.services.yml ps
4

Start the Admin Console (optional)

cd opengate-console
npm install
npm run dev

Open 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"
done

Expected 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  → UP

First Login

FieldValue
Admin Consolehttp://localhost:3000
Usernameadmin
Passwordadmin
API Gatewayhttp://localhost:8080
Docshttp://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.