Summary of changes: - JupyterHub: fix DB path (absolute), Dockerfile cleanup, SimpleLocalProcessSpawner - JupyterHub: user eric created as admin - Hermes Dashboard WebUI + TUI chat service (systemd, localhost:9119, auto-boot) - OR mbtiles: generated Martinique PNG tiles (5690 tiles, 10.9MB) — needs PBF for OR - OR mbtiles: restored original PBF with corrected metadata (world bounds, Martinique center) - OR mapsettings: verified center=[-61,14.5], bounds=Martinique, minZoom=0 - Trino: added node.properties (node.environment=production) — needs restart - TODO.md: updated with current state - session_resume_consolide.md: created (per-session summary)
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
# JupyterHub configuration for Smart City VRE
|
|
|
|
c.JupyterHub.ip = '0.0.0.0'
|
|
c.JupyterHub.port = 8000
|
|
c.JupyterHub.hub_ip = '0.0.0.0'
|
|
|
|
# Authenticator: Native (username/password signup + login)
|
|
c.JupyterHub.authenticator_class = 'nativeauthenticator.NativeAuthenticator'
|
|
c.Authenticator.admin_users = {'admin'}
|
|
c.Authenticator.allow_all = True
|
|
|
|
# Spawner — use SimpleLocalProcessSpawner (default in JupyterHub 5.x)
|
|
# This spawner runs singleuser servers as subprocesses
|
|
c.JupyterHub.spawner_class = 'jupyterhub.spawner.SimpleLocalProcessSpawner'
|
|
c.Spawner.default_url = '/lab'
|
|
c.Spawner.http_timeout = 300
|
|
c.Spawner.start_timeout = 300
|
|
|
|
# Database and cookies - use absolute paths
|
|
c.JupyterHub.cookie_secret_file = '/srv/jupyterhub/jupyterhub_cookie_secret'
|
|
c.JupyterHub.db_url = 'sqlite:////srv/jupyterhub/jupyterhub.sqlite'
|
|
|
|
# Base URL
|
|
c.JupyterHub.base_url = '/'
|
|
|
|
# Trust forwarded headers from Traefik
|
|
c.JupyterHub.tornado_settings = {
|
|
'headers': {
|
|
'Content-Security-Policy': "frame-ancestors 'self'"
|
|
}
|
|
}
|
|
|
|
c.JupyterHub.shutdown_on_logout = False
|