Adding OIDC module to Jaws Deploy Stack

When running your own Stack you’ll need a standalone OIDC provider for authentication and basic user management. By default the Stack does not include such provider.

If you have such a provider running - you can use it by just configuring the .env file in the Stack bundle (variables: OIDC_AUTHORITY, OIDC_CLIENT_ID and OIDC_CLIENT_SECRET should be enough to get you started).

Otherwise - you can run your own instance of Keycloak. Include this section on the bottom of the docker-compose.yml file:

keycloak:
  image: quay.io/keycloak/keycloak:latest
  ports:
    - "8080:8080"
  command: start-dev
  environment:      
    KC_BOOTSTRAP_ADMIN_USERNAME: admin
    KC_BOOTSTRAP_ADMIN_PASSWORD: admin
  volumes:
    - keycloak_data:/opt/keycloak/data

Also make the web dependent on keycloak:

web:
  ...
  depends_on:
    - hub-001
    - keycloak

Finally add the volume for Keycloak, so it persists its state across restarts:

volumes:
  dbdata:
    keycloak_data:

After running the bundle with docker compose build and docker compose up the Keycloak admin panel is available under http://localhost:8080 (user=admin, password=admin).

More information about running Keycloak in Docker and basic configuration:
https://www.keycloak.org/getting-started/getting-started-docker.