If you already have a working IdentityServer installation up and running then this walkthrough is for you.
This walkthrough will take you through the entire Docker configuration process, resulting in a working environment for the IdentityExpress AdminUI, with the UI and backend API running on the same machine and targeting an existing IdentityServer. This will also include migrating your user store to the AdminUI Identity Schema.
This walkthrough will assume you already have Docker installed on your machine.
Before beginning the installation, ensure Docker is configured as per the Docker prerequisites instructions.
Ensure that your IdentityServer site is either:
AuthorityUrlsetting must then use the IP address of the local Docker network device.
Any used databases must accept remote connections. If this database is on your Docker host machine, you can use the IP address of your Docker network device in the connection string.
If you are running IdentityServer and the database locally to the Docker host machine, also ensure that your firewall allows connections on those ports.
The first time you run AdminUI, it will automatically migrate your user store to the AdminUI schema to a new database. This is a non destructive operation.
The first run will also extend your existing IdentityServer database with new tables and create Client and Resource entries for the AdminUI site.
For more details on the migration process, including how and when it runs, check out the Integrating with IdentityServer documentation.
The Admin UI and API Docker images are designed to be scaled separately. This means you can place each image on separate machines each with their own load balancing policies.
Individual Docker Compose files are not available for the UI and API, however you can easily create these with a bit of Docker know-how, or use the docker run command directly.
docker run identityserverregistry.azurecr.io/idxui
This will run the UI image alone. A similar approach can then be taken with the API image, where the image is tagged
Ports used can then be set as
-p 5000:5000 and environment variables as
If you're running Docker on a Linux host and you're having issues running these commands, check you have suitable permissions.