ACME HQDemo work items and pages, made up for Emargen's demo. Not a real company.
Engineering / Engineering

Local development and the SAML test IdP

By Piet de Vries · created 16 Sep 2024, 08:20 UTC · last updated 8 Sep 2026, 13:40 UTC · version 9

local-developmentsamldockeronboarding

Everything runs in Docker on your laptop. Plan an hour the first time.

What you get

ContainerPortNotes
identity-service8080Laravel, with the queue worker and scheduler
postgres5432PostgreSQL 15
redis6379
notifier8090Mailcrest and Textbridge replaced by local fakes
mail-viewer8025every email notifier "sends"
saml-idp8443the SAML test IdP from tools/saml-idp
portal5173Vite dev server, in the portal repository

First run

git clone git@github.com:Emargen/acme-identity-service.git
cd acme-identity-service
cp .env.example .env
docker compose up -d
docker compose exec app php artisan migrate --seed

The seeders make three test clients: one on passwords, one with phone codes, and one with single sign-on on two of its depots. Nothing in them is real.

Then the portal:

git clone git@github.com:Emargen/acme-portal.git
cd acme-portal && npm ci && npm run dev

Sign in at http://localhost:5173 as admin@test-client.example with the password in .env.example.

The SAML test IdP

tools/saml-idp is a small SAML identity provider for local work and for reproducing customers' problems.

SMS and email locally

Phone codes are printed in notifier's log and shown at http://localhost:8025. No real SMS leaves your laptop.

Common problems

Change history

VersionDateWhoWhat
628 May 2026PietPhone codes locally
722 Jun 2026MarekOkta-style users in the test IdP
816 Jul 2026PietLast update before handing over
98 Sep 2026Jonasarm64 image, first-run steps checked on a new laptop