Skip to content

Post-start

This section describes what happens after you run docker compose up -d and how to verify that the environment is running correctly.

After docker compose up -d

Once all services are started:

  • Traefik listens on ports 80 and 443 and routes requests to the appropriate service based on host and labels.
  • MariaDB (core--mariadb--db, alias scs--database) is already running from start.sh; other services (Keycloak, SCS Manager, Nextcloud, JupyterHub, OpenGDB, project website) connect to it as configured.
  • Keycloak imports the realm from the file generated by pre-install and becomes the identity provider for SCS Manager, Nextcloud, and JupyterHub.
  • Application services (SCS Manager, Nextcloud, JupyterHub, etc.) start and may run their own health checks or initialization.

Verifying services

  • List running containers:

    docker compose ps
    
    Ensure COMPOSE_FILE is set (e.g. from .env).

  • Check logs for a specific service:

    docker compose logs -f <service-name>
    
    Examples: core--mariadb--db, core--traefik--edge, keycloak--keycloak--app, manager--drupal--app, etc.

  • Ensure the database is reachable (already verified by start.sh; re-check if needed):

    docker compose exec core--mariadb--db mariadb -u root -p"${SCS_DB_ROOT_PASSWORD}" -e "SHOW DATABASES;"
    

  • Access Keycloak at https://<KC_DOMAIN> (e.g. https://auth.scs.localhost) and log in with KC_BOOTSTRAP_ADMIN_USERNAME and KC_BOOTSTRAP_ADMIN_PASSWORD from .env.

  • Access other services at their configured domains (e.g. SCS Manager, Nextcloud, JupyterHub) to confirm they respond. Some will require post-configuration before they work fully (e.g. OpenID client config, Social Login, group scopes).

Next steps

After confirming that services are up and reachable, follow the Post-configuration checklist to configure Keycloak clients and scopes, SCS Manager settings, Nextcloud Social Login, JupyterHub groups/gids, and other one-time or periodic configuration.