mirror of
https://github.com/stellarshenson/stellars-jupyterhub-ds.git
synced 2026-03-07 21:50:28 +00:00
Traefik Host-Based Routing Template
Template for deploying stellars-jupyterhub-ds with local Traefik reverse proxy and self-signed certificates.
Quick Start
-
Copy this folder to create a new deployment:
cp -r extra/traefik-host-based-routing /path/to/<name>_stellars_jupyterhub_ds cd /path/to/<name>_stellars_jupyterhub_ds -
Generate certificates for your domain:
./generate-certs.sh --cn "My DEV Certificate" --dns-altnames "*.example.com,example.com,*.localhost,localhost" -
Configure (optional):
# Create .env to override defaults from .env.default: echo "BASE_HOSTNAME=example.com" > .env -
Start:
./start.sh
Structure
<name>_stellars_jupyterhub_ds/
compose_override.yml # Local Traefik + JupyterHub config
compose_cifs.yml # Optional CIFS mount configuration
start.sh # Clone/update + start services
stop.sh # Stop services
generate-certs.sh # Certificate generation (--help for usage)
install_cert.sh # Linux certificate installer
install_cert.bat # Windows certificate installer
.env.default # Default environment config (always loaded)
.env # Local overrides (optional, gitignored)
certs/
<prefix>.tls.yml # Traefik TLS configuration (auto-generated)
<prefix>/ # Certificate folder (auto-generated)
cert.pem # Certificate (import to browser)
key.pem # Private key
stellars-jupyterhub-ds/ # Cloned repository (gitignored)
Configuration
Configure via .env.default (always loaded) and .env (optional overrides, gitignored):
BASE_HOSTNAME- domain for Traefik routing (default:localhost)JUPYTERHUB_PREFIX- JupyterHub subdomain prefix, set empty to serve at root domain (default:jupyterhub.)ENABLE_CIFS- enable CIFS shared mount,0/1(default:0)
Edit compose_override.yml to customize ports (default: 80/443), environment variables (idle culler, signup), or network name.
Optional CIFS Mount
- Edit
compose_cifs.ymlwith your NAS credentials - Set
ENABLE_CIFS=1in.env
Access
After deployment:
- JupyterHub:
https://${JUPYTERHUB_PREFIX}${BASE_HOSTNAME}/(default:jupyterhub.localhost) - Traefik:
https://traefik.${BASE_HOSTNAME}/ - Localhost:
https://jupyterhub.localhost/,https://jupyterhub.app.localhost/
Certificate Installation
Import the self-signed certificate to your browser for trusted HTTPS:
Linux:
./install_cert.sh certs/<prefix>/
Windows:
install_cert.bat certs\<prefix>\
Commands
./start.sh # Clone repo (if missing) + start services
./start.sh --refresh # Pull latest upstream + start services
./stop.sh # Stop all services
To view logs:
docker compose --env-file .env.default -f stellars-jupyterhub-ds/compose.yml -f compose_override.yml logs -f jupyterhub