Commit Graph

188 Commits

Author SHA1 Message Date
stellarshenson
936fa523ca chore: use generic examples in volume-renamer help 2026-01-06 23:12:59 +01:00
stellarshenson
2618f699f5 feat: add volume-migration scripts for renaming and user migration 2026-01-06 23:03:16 +01:00
stellarshenson
3a7d697834 feat: add --refresh flag to traefik template start.sh 2026-01-06 23:00:16 +01:00
stellarshenson
4094e04a67 fix: further admin panel styling refinements
- Reduce user row hover to nearly invisible (0.003 alpha)
- Fix Add Users button: stock colors in light mode, explicit in dark mode
- Make collapse buttons more compact (0.2rem 0.3rem)
- Add username label left padding
- Update journal
RELEASE_3.5.25
2026-01-06 22:54:24 +01:00
stellarshenson
ddc9cb8382 fix: refine admin panel styling - buttons, hover, spacing
- Fix Add Users button to use stock btn-light colors (size only)
- Disable hover on expanded card tables via box-shadow override
- Add padding:0 to expanded user detail td cells
- Make collapse buttons more compact (0.2rem 0.3rem)
- Add left padding to username labels
- Add groups page styling (list items, card footer)
2026-01-06 22:47:22 +01:00
stellarshenson
c1ae9938c1 feat: comprehensive UI styling for notifications, admin panel, tokens
- Add notifications page styling (form, textarea, results table)
- Unify button font sizes to 0.8rem across all pages
- Set collapsed user card padding to 0
- Add subtle hover effect on admin user rows (0.015 alpha)
- Style Add Users form panel with dark mode support
- Style authorization and token pages consistently
2026-01-06 22:26:19 +01:00
stellarshenson
f1a8b5e6ce feat: add custom logo support via JUPYTERHUB_CUSTOM_LOGO_URI env var 2026-01-06 21:45:40 +01:00
stellarshenson
e0f5bf11e3 feat: add compact styling inspired by Stellars Sublime theme 2026-01-06 21:43:41 +01:00
stellarshenson
693ca06405 docs: update journal with recent changes, update version comment RELEASE_3.5.11_cuda-12.9.1_jh-5.4.2 2026-01-06 21:36:17 +01:00
stellarshenson
79a09db50d chore: comment out console logs in admin template 2026-01-06 21:31:46 +01:00
stellarshenson
bd63c72fd4 feat: add per-row copy icon in credentials modal 2026-01-06 21:30:07 +01:00
stellarshenson
43255f70bb fix: store password as bytes, enable COMPOSE_BAKE STABLE_3.5.10_cuda-12.9.1_jh-5.4.2 2026-01-06 21:25:10 +01:00
stellarshenson
bc99236162 fix: move spinner functions before fetch interceptor 2026-01-06 21:18:25 +01:00
stellarshenson
bc76c4f767 feat: add loading spinner during credentials fetch 2026-01-06 21:15:42 +01:00
stellarshenson
f5b8a5717e fix: credentials modal - buttons on top, scrollable list, plain styling 2026-01-06 21:13:19 +01:00
stellarshenson
c0b525d02f chore: improve version increment output format 2026-01-06 21:09:34 +01:00
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