Last updated: 2026-05-17
This guide helps first-time operators choose the right Docker-based path in the MrWho repository.
If you only remember one rule, remember this one: follow one path at a time and do not mix MrWho published-image commands with MrWhoOidc source-build commands.
Use the MrWho repository when you want:
Use the MrWhoOidc repository only when you need to build from source, modify code, or run contributor workflows.
| Path | Use this when | Primary command | What next |
|---|---|---|---|
| Prebuilt Setup | You want the smallest working local or evaluation install | docker compose up -d |
Bootstrap, verify, then pick Redis, production, or demos |
| Proxy TLS Termination | Public HTTPS is terminated by your reverse proxy or load balancer and you do not want a local PFX in the backend container | docker compose -f docker-compose.tls-termination.yml up -d |
Validate through the public proxy URL, then add Redis or production hardening if needed |
| Prebuilt + Redis | You want Redis-backed distributed features and lower database load | docker compose -f docker-compose.yml -f docker-compose.redis.yml up -d |
Validate Redis-backed deployment, then consider production hardening |
| Prebuilt + Production | You want the hardened baseline | docker compose -f docker-compose.yml -f docker-compose.production.yml up -d |
Finish TLS, secrets, reverse proxy, and monitoring work |
| Prebuilt + Examples | You want real client integrations after bootstrap | Start the issuer once, then follow a demo README | Choose a demo by stack and flow |
| Source Build | You need local code changes, seeded dev data, or contributor workflows | Use the MrWhoOidc source-build guide instead of this repo |
Stay on the source-build track |
Use this path when you want the simplest possible install.
docker compose up -d
This path gives you:
Start here before you add Redis, try demos, or move toward production hardening.
Primary references:
Use this path when a reverse proxy or load balancer presents the public HTTPS endpoint and the backend container should run on HTTP only.
docker compose -f docker-compose.tls-termination.yml up -d
This path is a good fit when you want:
certs/aspnetapp.pfx mounted into the backend containerKey rules for this path:
OIDC_PUBLIC_BASE_URL to the public https://... URL seen by clientsFORWARDED_HEADERS_KNOWN_PROXY_* or FORWARDED_HEADERS_KNOWN_NETWORK_* whenever possibleFORWARDED_HEADERS_UNSAFE_TRUST_ALL=true only as a last resort on controlled infrastructureYou can still compose this path with the existing overlays:
docker compose -f docker-compose.tls-termination.yml -f docker-compose.redis.yml up -d
docker compose -f docker-compose.tls-termination.yml -f docker-compose.production.yml up -d
Primary references:
Use this path when the base deployment is already understood and you want Redis-backed distributed features.
docker compose -f docker-compose.yml -f docker-compose.redis.yml up -d
This path is a good fit when you want:
Suggested validation:
docker compose ps
bash ./scripts/health-check.sh https://localhost:8443 default
Primary references:
Use this path when you want the hardened compose overlay.
docker compose -f docker-compose.yml -f docker-compose.production.yml up -d
This path adds:
You should still finish the operational work around TLS, secrets, backups, reverse proxy settings, and monitoring.
Primary reference:
Use this path after the issuer is already running and verified.
Start the issuer once with the base deployment, then choose a demo that matches your goal:
.NET MVC for the clearest confidential web app exampleReact for a browser-only SPA using PKCE and PARobo-demo-api for downstream API token validationGo or Kotlin/Spring when your target stack is not .NETThe main rule here is simple: do not start with the demos before the issuer itself is healthy.
Primary reference:
This repository does not own the source-build contributor path.
Switch to the MrWhoOidc source-build track only when you need:
Use the public source-build guide or the MrWhoOidc developer quickstart instead of mixing those commands into the published-image path.