Install

This guide installs a secure, multi-user DTaaS deployment that uses an external GitLab instance for OAuth 2.0 authorisation.
Download dtaas-secure-server-xx.zip from the latest release / pre-release page.
For the full configuration reference, see config.md.
Overview
This package deploys DTaaS with Traefik, OAuth forward-auth and two user workspaces.

A path such as /user1 is the URL route of that service, for example
https://intocps.org/user1.
The thick arrow is the forward-auth check: Traefik asks
traefik-forward-auth to authorise each request before it routes it.
The docker-compose.yml starts the following services:
| Service | Purpose |
|---|---|
| traefik | Reverse proxy with TLS termination |
| client | DTaaS React frontend |
| logger-ms | Logger microservice |
| user1 / user2 | JupyterLab user workspaces |
| libms | Library management microservice |
| traefik-forward-auth | OAuth 2.0 authorisation middleware |
Prerequisites
| Requirement | Details |
|---|---|
| Docker Engine | v28 or later with Compose plugin |
| Domain name | Public DNS name or server IP |
| TLS certificates | fullchain.pem and privkey.pem for the target domain |
| OAuth provider | External GitLab (gitlab.com or self-hosted GitLab) |
Quick Start
1. Create Configuration Files
Edit config/.env:
SERVER_DNSUSERNAME1USERNAME2OAUTH_URLOAUTH_CLIENT_IDOAUTH_CLIENT_SECRETOAUTH_SECRET
Edit config/client.js:
REACT_APP_CLIENT_IDREACT_APP_AUTH_AUTHORITYREACT_APP_REDIRECT_URIREACT_APP_LOGOUT_REDIRECT_URI
See config.md for details.
2. Create User Workspace Directories
The logger microservice writes its events to logs/logger. Create the
directory and give it to uid 1000, the user that runs the logger:
3. Add TLS Certificates
If the certificates are missing or invalid, Traefik falls back to self-signed certificates.
4. Configure OAuth 2.0 Applications in GitLab
-
Create user accounts (see GitLab docs). The usernames must match
USERNAME1/USERNAME2inconfig/.env. -
Register two OAuth 2.0 applications in GitLab (Admin Area → Applications):
-
DTaaS Client Authorization for the React SPA frontend. See the client auth docs.
-
DTaaS Server Authorization for the Traefik forward-auth backend. See the server auth docs.
-
Put the generated OAuth 2.0 credentials into the configuration files:
- Set
REACT_APP_CLIENT_IDandREACT_APP_AUTH_AUTHORITYinconfig/client.js. - Set
OAUTH_URL,OAUTH_CLIENT_IDandOAUTH_CLIENT_SECRETinconfig/.env.
5. Start Services
6. Verify
| URL | Expected result |
|---|---|
https://<SERVER_DNS> |
DTaaS web interface |
https://<SERVER_DNS>/user1 |
User 1 workspace after sign-in |
https://<SERVER_DNS>/user2 |
User 2 workspace after sign-in |
https://<SERVER_DNS>/lib |
Library service |