stellarshenson
6f85208352
fix: change credentials endpoint from /api/users to /api/admin
2026-01-06 21:00:21 +01:00
stellarshenson
63633420dd
chore: track .claude directory in git
2026-01-06 20:55:50 +01:00
stellarshenson
d5cfbebed5
fix: URL handling in admin fetch interceptor and nav links
...
- Handle URL objects (not just strings) in fetch interceptor
- Strip query params before checking isUserCreation endpoint
- Remove duplicate 'hub' prefix from authorize/change-password links
2026-01-06 20:52:12 +01:00
stellarshenson
7ee223b193
fix: Dockerfile to copy from templates_enhanced (was reverted)
2026-01-06 20:46:04 +01:00
stellarshenson
cbf0a3c0dc
docs: update journal with admin user creation feature
2026-01-06 20:40:20 +01:00
stellarshenson
6370255746
fix: handle URL objects in fetch interceptor
2026-01-06 20:39:38 +01:00
stellarshenson
139fe144fa
feat: admin user creation with auto-generated credentials modal
...
- Add after_insert event listener to auto-create NativeAuth UserInfo
- Generate memorable 3-word passwords for admin-created users
- Auto-approve users created by admin (is_authorized=1)
- Add after_delete listener to clean up UserInfo on user deletion
- Add GetUserCredentialsHandler API for credential retrieval
- Add password cache (5min expiry) for secure credential handoff
- Enhanced admin.html with credentials modal (copy/download)
- Add templates_enhanced directory with customized templates
- Add NativeAuth nav items (Change Password, Authorize Users)
- Bump version to 3.5.8 (manual)
2026-01-06 20:20:05 +01:00
stellarshenson
d3fe78bb39
fix: sync NativeAuthenticator on admin panel rename
...
- SQLAlchemy event listener on orm.User.name intercepts ALL renames
- Removed broken SyncedUserAPIHandler (extra_handlers doesn't override)
- Removed RenameUserHandler (redundant with event listener)
- Added version display in browser console (styled badge)
- Build scripts source project.env for VERSION
FIX_RENAME_SYNC_3.5.0
2026-01-06 17:27:35 +01:00
stellarshenson
79393273ab
fix: sync NativeAuthenticator on admin panel rename
...
- Add SyncedUserAPIHandler extending UserAPIHandler
- Override /api/users/{username} to intercept rename operations
- Sync UserInfo.username after successful JupyterHub rename
- Fixes broken login after admin panel rename
2026-01-06 16:58:35 +01:00
stellarshenson
e001169663
feat: add user rename API and ENABLE_SIGNUP env variable
...
- RenameUserHandler: PATCH /hub/api/users/{username}/rename
preserves NativeAuthenticator authorization on rename
- ENABLE_SIGNUP env var controls self-registration (default: 1)
- Updated README, compose.yml, Dockerfile with new config
3.5.1_cuda-12.9.1_jh-5.4.2
2026-01-06 16:43:06 +01:00
stellarshenson
835742bb71
feat: added scripts / helpers for CA Root Truststore cert install
CHECKPOINT_BEFORE_ADDUSER_ENHANCEMENTS
2026-01-06 14:23:35 +01:00
stellarshenson
acd62e92bf
feat: add CERTIFICATE_DOMAIN_NAME env variable for cert generation
...
- Add CERTIFICATE_DOMAIN_NAME to compose.yml (defaults to localhost)
- Update 00_generate_ssl_cert.sh to use env variable
- Allows custom domain names for self-signed certificates
3.4.4_cuda-12.9.1_jh-5.4.2
2026-01-05 15:09:32 +01:00
stellarshenson
0411f34749
feat: add localhost SAN to certificate generation
2026-01-05 15:06:45 +01:00
stellarshenson
b5b00cbb6a
added documentation
2026-01-05 14:40:31 +01:00
stellarshenson
292402cfeb
fix: added domain for localhost
2026-01-05 14:39:44 +01:00
stellarshenson
55351ba50a
chore: update journal with template refactor entry
2026-01-05 13:55:56 +01:00
stellarshenson
7515248d74
refactor: update traefik-host-based-routing template
...
- Remove Makefile (use start.sh/stop.sh directly)
- Add root path routing with JUPYTERHUB_BASE_URL=/
- Update start.sh to pull images and use --no-build
- Update README to reflect simplified workflow
2026-01-05 13:55:10 +01:00
stellarshenson
ba7cfa8121
chore: update journal with base URL fix entry
3.4.3_cuda-12.9.1_jh-5.4.2
2026-01-05 13:50:49 +01:00
stellarshenson
4e4ee47ee9
fix: normalize base URL prefix to avoid double slashes
...
- Add JUPYTERHUB_BASE_URL_PREFIX that handles root path case
- When BASE_URL is '/', '', or None, prefix becomes empty string
- Prevents //hub/home redirect issue when using root path routing
2026-01-05 13:34:39 +01:00
stellarshenson
dd0ce86add
feat: add traefik host-based routing deployment template
...
Add extra/traefik-host-based-routing/ template for creating local
deployments with Traefik reverse proxy and self-signed certificates:
- compose_override.yml with YOURDOMAIN placeholder
- Makefile with start/stop/pull/logs/status targets
- start.sh (clone/pull + start services)
- stop.sh (stop services)
- generate-certs.sh (creates wildcard cert for given domain)
- certs/tls.yml template for Traefik file provider
- .gitignore (excludes certs and cloned repo)
Usage: copy folder, run generate-certs.sh, edit compose_override.yml,
run start.sh to clone repo and start services
2026-01-05 09:39:51 +00:00
stellarshenson
30e21709ec
updated
2025-12-19 02:21:28 +01:00
stellarshenson
d089283b5a
docs: update journal with watchtower self-update exclusion
2025-12-19 02:19:45 +01:00
stellarshenson
0bc9e28d5d
chore: exclude watchtower from self-updates
...
Added com.centurylinklabs.watchtower.enable=false label to prevent
watchtower from updating itself during scheduled runs.
2025-12-19 02:19:19 +01:00
stellarshenson
de7496d4b4
docs: update journal with privileged container fix
2025-12-12 16:10:33 +01:00
stellarshenson
14734c0961
fix: use extra_host_config for privileged container mode
...
DockerSpawner requires extra_host_config['privileged'] = True instead of
spawner.privileged. Bumped version to 3.4.1.
2025-12-12 16:10:02 +01:00
stellarshenson
2674703317
feat: split docker access into docker-sock and docker-privileged groups
...
- docker-sock: mounts /var/run/docker.sock (container orchestration)
- docker-privileged: runs with --privileged flag (hardware access)
Updated pre_spawn_hook to check both groups and set spawner.volumes
or spawner.privileged accordingly. Documentation updated.
2025-12-12 15:54:47 +01:00
stellarshenson
e6ef8b46df
fix: correct watchtower cron to 6-field format with seconds
...
Changed from '0 0 * * *' (5-field, ran hourly) to '0 0 0 * * *'
(6-field with seconds, runs daily at midnight UTC).
CHECKPOINT_BEFORE_PRIVILEGED_DOCKER_GROUP
2025-12-08 17:14:34 +01:00
stellarshenson
5bfcbb358d
docs: update journal with watchtower flag fix
2025-12-08 17:12:13 +01:00
stellarshenson
17d60ae85b
fix: remove unsupported --no-startup flag from watchtower
...
nickfedor/watchtower fork doesn't have --no-startup flag.
Default behavior (without --update-on-start) is to not check on startup.
2025-12-08 17:11:31 +01:00
stellarshenson
d46e0c1c28
chore: bump version to 3.3.4
2025-12-08 17:08:48 +01:00
stellarshenson
65e0f96abd
chore: update version comment to reflect 3.3.x features
2025-12-08 17:07:34 +01:00
stellarshenson
6328ffbc65
chore: bump version to 3.3.3 with watchtower fix
2025-12-08 17:06:56 +01:00
stellarshenson
861ea0cd8c
fix: prevent watchtower from checking images on container restart
...
Added --no-startup flag to Watchtower command in compose.yml.
Previously, Watchtower would check for image updates on every container
startup/restart. Now only runs at scheduled time (midnight daily).
2025-12-08 17:06:23 +01:00
stellarshenson
25efd91bb6
docs: clarify GPU detection uses separate container in journal
...
Updated journal entry #16 to specify nvidia/cuda container spawning.
Version bump: 3.3.2 -> 3.3.3
2025-12-04 19:10:37 +01:00
stellarshenson
dea9e75fbb
chore: cleanup startup scripts and bump version to 3.3.2
...
Removed obsolete 01_nvidia-smi.sh (GPU detection handled in jupyterhub_config.py).
Renamed 02_ensure_groups.py to 01_ensure_groups.py for sequential ordering.
2025-12-04 19:01:11 +01:00
stellarshenson
2ced4851c8
chore: add compose_override.yml to gitignore
2025-11-27 00:03:02 +01:00
stellarshenson
9357d8bdd6
chore: update watchtower to maintained fork (nickfedor/watchtower)
...
Changed from containrrr/watchtower:latest to nickfedor/watchtower:latest.
New image is actively maintained and compatible with latest Docker versions.
Version bump: 3.2.11 -> 3.3.1
2025-11-27 00:00:36 +01:00
stellarshenson
d8bf7fb67b
docs: add paypal donation badge
2025-11-15 17:38:14 +00:00
stellarshenson
af15336364
docs: update badges with github actions, jupyterlab 4, and kolomolo branding
2025-11-13 15:55:56 +00:00
stellarshenson
dacb0ee223
chore: update journal with volume architecture diagram work
2025-11-12 11:47:10 +00:00
stellarshenson
8f2670eb39
docs: add note about user volume reset capability
2025-11-12 11:46:12 +00:00
stellarshenson
5954db2ef0
docs: improve arrow alignment for shared volume in diagram
2025-11-12 11:42:42 +00:00
stellarshenson
01ddabf9ee
fix: represent /mnt/shared as single shared resource across containers
2025-11-12 11:40:54 +00:00
stellarshenson
18de422fea
docs: show multiple users sharing jupyterhub_shared volume in diagram
2025-11-12 11:40:02 +00:00
stellarshenson
f01aa75979
docs: simplify user container label in volume diagram
2025-11-12 11:39:25 +00:00
stellarshenson
57be9a0911
fix: escape underscores in volume architecture diagram node IDs
2025-11-12 11:36:21 +00:00
stellarshenson
2380c33252
docs: add volume architecture diagram
...
Added Volume Architecture diagram showing four persistent volumes per user with Docker host to container mount mapping. Diagram illustrates jupyterlab-{username}_* naming pattern for user-specific volumes (home, workspace, cache) and shared jupyterhub_shared volume. Shows mount points and example contents for each volume type, with note about CIFS mount capability for NAS integration.
2025-11-12 11:35:55 +00:00
stellarshenson
b10b685138
docs: add configuration flow, gpu auto-detection, and user workflow diagrams
...
Added three mermaid diagrams to README documenting system architecture and workflows. Configuration Flow diagram shows how environment variables from compose.yml flow through jupyterhub_config.py to spawned user containers, including DOCKER_SPAWNER_VOLUMES, VOLUME_DESCRIPTIONS, BUILTIN_GROUPS, pre_spawn_hook, extra_handlers, and template_paths. GPU Auto-Detection diagram illustrates the auto-detect mechanism with temporary CUDA container spawning nvidia-smi for detection. User Self-Service Workflow diagram demonstrates home page state management for restart server and manage volumes features. Converted HTML alert divs to GitHub-style WARNING blocks for better rendering.
2025-11-12 10:48:56 +00:00
stellarshenson
8e3315eff2
chore: enhanced gitignore to encompass more
2025-11-12 09:57:23 +00:00
stellarshenson
ca9f163365
updated gitignore
2025-11-12 00:32:31 +00:00