Skip to content
v2.19.1GitHub

Semaphore UI

Sign in to Semaphore UI with Pocket ID.

  1. In Pocket ID, open Administration → OIDC Clients and click Add OIDC Client.
  2. Enter a name such as Semaphore UI and add the callback URL https://semaphore.example.com/api/auth/oidc/pocketid/redirect/.
  3. Click Create and copy the Client ID and the Client secret. The client secret is only shown once.
  4. On the client’s Access tab, select the groups that may sign in under Allowed User Groups, or choose All Users.

Add the following to your config.json file for Semaphore UI:

"oidc_providers": {
"pocketid": {
"display_name": "Sign in with Pocket ID",
"provider_url": "https://id.example.com",
"client_id": "<client-id>",
"client_secret": "<client-secret>",
"redirect_url": "https://semaphore.example.com/api/auth/oidc/pocketid/redirect/",
"scopes": [
"openid",
"profile",
"email"
],
"username_claim": "email",
"name_claim": "given_name"
}
}

Semaphore UI versions after 2.14 support a Docker environment variable for this. A single environment variable, SEMAPHORE_OIDC_PROVIDERS, lets you configure providers using a JSON string matching the oidc_providers structure.

SEMAPHORE_OIDC_PROVIDERS: >-
{
"pocketid": {
"display_name":"Sign in with Pocket ID",
"provider_url":"https://id.example.com",
"client_id":"<client-id>",
"client_secret":"<client-secret>",
"redirect_url":"https://semaphore.example.com/api/auth/oidc/pocketid/redirect/",
"scopes": [
"openid",
"profile",
"email"
],
"username_claim":"email",
"name_claim":"given_name"
}
}