Prerequisites
You will need a Tailscale account with the MagicDNS and HTTPS certificates features enabled.Tailscale setup
Browse to https://login.tailscale.com/admin/acls/file to edit the access controls for your tailnet, and add the following JSON to thegrants section:
tsidp-grant.json
Prepare deployment
Before proceeding, set your Tailnet DNS name as a variable, it is referenced throughout the steps below:.env file with your Tailscale auth key and the tsidp issuer URL:
--list-secret-keys and paste it into the --quick-add-key command:
serve-config.json. This tells the Tailscale sidecar which ports to expose over HTTPS and where to forward incoming traffic:
docker-compose.yml. This defines three services: tsidp as the OIDC provider, omni-tailscale as the Tailscale reverse proxy, and omni itself. Replace <your-admin-email> with the email address of the first Omni admin.
OIDC client setup
At this point all that’s left to do is register Omni as an OIDC client in tsidp. Start up only tsidp first:https://tsidp.${TAILNET_DNS} and create a new client. For the redirect URI, use https://omni.${TAILNET_DNS}/oidc/consume.
Copy the client ID and secret that tsidp generates, then append them to your .env file:
https://omni.${TAILNET_DNS}/. You should be prompted to log in with your Tailscale user and then taken to the Omni UI.
If login fails, you may need to update the --initial-users value in docker-compose.yml to match the email address displayed on the login screen.