Commit Graph

250 Commits

Author SHA1 Message Date
stellarshenson
f126571fb2 docs: update journal with production readiness work
- Document visual enhancements with Font Awesome icons
- Note GitHub Actions CI/CD implementation
- Record architecture diagram addition to README
- Document critical custom_handlers import fix
- Note built-in config feature
- Record git history cleanup (removed co-authoring)
- Version progression 3.0.20 -> 3.0.23
2025-11-04 23:33:49 +01:00
stellarshenson
09e69e9467 fix: prevent Docker Compose from pulling image after build
- Add pull_policy: build to jupyterhub service
- Forces Docker Compose to use locally built image
- Prevents unnecessary pulls from Docker Hub after building

Now 'docker compose up' will use the local image built with 'make build'
2025-11-04 23:30:22 +01:00
stellarshenson
db483de36d feat: build jupyterhub_config.py into Docker image by default
- Change Docker build context from services/jupyterhub to project root
- Copy config/jupyterhub_config.py into image at /srv/jupyterhub/jupyterhub_config.py
- Users can still override with volume mount if needed
- Update all COPY paths in Dockerfile to reflect new build context
- Enables container to work out-of-the-box without external config file

Benefits:
- Image is self-contained and ready to run without dependencies
- Volume mount remains optional for custom configurations
- Default config includes GPU auto-detection and self-service features
2025-11-04 23:25:17 +01:00
stellarshenson
e8bf0b7c54 updated 2025-11-04 23:20:46 +01:00
stellarshenson
e985786499 fix: add /srv/jupyterhub to Python path for custom_handlers import
- Add /srv/jupyterhub to sys.path before importing custom_handlers
- Separate shell scripts and Python files in Dockerfile COPY commands
- Resolves ModuleNotFoundError for custom_handlers module
- JupyterHub now starts successfully with custom API handlers
RELEASE_3.0.21 STABLE_3.0.21_cuda-12.9.1_jh-5.4.2
2025-11-04 11:06:25 +01:00
stellarshenson
274237ee7c docs: remove fill colors from architecture diagram for transparent background
- Remove fill colors from mermaid diagram nodes
- Keep stroke colors and widths for visual distinction
- Improves compatibility with different GitHub themes (light/dark mode)
2025-11-04 10:54:10 +01:00
stellarshenson
a296338db1 docs: reorganize README with architecture diagram and improved structure
- Add mermaid diagram illustrating JupyterHub architecture and user flow
- Move screenshots higher in document under dedicated User Interface section
- Visualize relationships between Traefik, Hub, Spawner, and user containers
- Show per-user volumes and shared storage configuration
- Improve document flow: Architecture -> UI -> Features -> Setup
2025-11-04 10:53:12 +01:00
stellarshenson
d03faf4f2a chore: remove specific tag format from CI/CD workflow
- Remove tag-based trigger constraint from GitHub Actions workflow
- Workflow now triggers only on push to main, PRs, and manual dispatch
- Simplifies workflow triggers and removes version-specific pattern
2025-11-04 10:51:46 +01:00
stellarshenson
64e2a9d557 fix: pin JupyterHub base image to version 5.4.2
- Replace 'latest' tag with explicit version 5.4.2
- Resolves hadolint DL3007 warning in CI/CD pipeline
- Ensures reproducible builds and prevents unexpected breaking changes
2025-11-04 10:51:04 +01:00
stellarshenson
d9896a7073 feat: add icons to buttons and auto-refresh on stop, implement GitHub Actions CI/CD
UI Enhancements:
- Add Font Awesome icons to all control buttons (stop, start, restart, manage volumes)
- Auto-refresh page after server stop with smooth UI transitions
- Hide/show appropriate buttons based on server state (Restart vs Manage Volumes)
- Re-inject icons removed by JupyterHub's DOM manipulation

Technical Implementation:
- MutationObserver watches for JupyterHub DOM changes after stop
- Immediate UI state correction before page refresh
- Comprehensive console logging for debugging

CI/CD:
- Add GitHub Actions workflow for Dockerfile validation with hadolint
- Triggers on push to main, version tags, and pull requests
- Uses hadolint to ensure Dockerfile best practices
2025-11-04 10:49:32 +01:00
stellarshenson
99236350d4 docs: add release notes for v3.0.14 2025-11-04 10:26:19 +01:00
stellarshenson
c06baa8372 docs: add features section and screenshots to README v3.0.14
Documentation enhancements:
- Add comprehensive Features section highlighting key capabilities
- Document GPU auto-detection, user self-service, isolated environments
- Include production-ready features (Traefik, TLS, Watchtower)
- Add Self-Service Volume Management subsection with visual examples
- Include three screenshots demonstrating UI features:
  - Restart Server button (active state)
  - Manage Volumes button (stopped state)
  - Volume selection modal (checkbox interface)
- Position screenshots prominently after feature list
- Provide one-sentence descriptions for each screenshot

Technical updates:
- Increase Stop Server refresh delay to 3 seconds for stability
- Update version to 3.0.14

Screenshots stored in .resources/ directory for future reference
2025-11-04 10:16:45 +01:00
stellarshenson
cd74fc71db feat: evolve user self-service to multi-volume management v3.0.12
Major enhancements to self-service features:
- Transform single volume reset to multi-volume selection (home/workspace/cache)
- Add Font Awesome icons to buttons (fa-rotate, fa-database)
- Fix Bootstrap 5 modal compatibility (data-bs-*, btn-close)
- Fix template inheritance to properly extend default home.html
- Wrap JavaScript in RequireJS callback for proper module loading
- Implement page refresh after Stop/Manage/Restart actions
- Update API endpoint to /api/users/{username}/manage-volumes
- Backend processes multiple volumes with detailed response
- Add Makefile logs target for container log monitoring

Technical fixes:
- Add default JupyterHub templates to template_paths configuration
- Convert modal triggers from Bootstrap 4 to Bootstrap 5 syntax
- Update JavaScript to use Bootstrap 5 Modal getInstance API
- Add json import to custom_handlers.py for request body parsing

Version: 3.0.12_cuda-12.9.1_jh-5.4.2
2025-11-04 10:07:07 +01:00
stellarshenson
bc16b0ca4b debug: add console logging to custom handlers for troubleshooting
- Add console.log statements to track button clicks and API calls
- Log username, base URL, and button existence on page load
- Log success/error responses from API calls
- Help diagnose why restart server button does nothing
2025-11-03 20:44:18 +01:00
stellarshenson
0468a0da98 fix: properly extend jupyterhub default home template
- Replace custom template with proper extension of default home.html
- Keep all default functionality (Start/Stop, named servers, admin panel)
- Use correct template variables (default_server.active, base_url)
- Add custom buttons alongside existing controls
- Preserve default JavaScript (require home.js)
- Fix 404 errors on spawn and admin panel access
2025-11-03 20:39:29 +01:00
stellarshenson
2660d6a659 feat: add stop target to makefile
- Add stop target to gracefully stop and remove containers
- Respects compose_override.yml if present
- Stops containers without removing images or volumes
2025-11-03 20:32:39 +01:00
stellarshenson
a18024f1d9 fix: implement manual permission checking in custom handlers
- Remove non-existent @admin_or_self decorator
- Replace with manual permission validation using current_user
- Check authentication and admin/self access explicitly
- Use tornado.web.HTTPError for 403 responses
2025-11-03 20:28:37 +01:00
stellarshenson
c375c51c6d docs: update journal with feature implementation 2025-11-03 20:24:36 +01:00
stellarshenson
3e52a91924 feat: implement reset home volume and restart server features
- Add custom API handlers for volume reset and server restart
- Create custom home.html template with self-service buttons and modals
- Register handlers in jupyterhub_config.py with @admin_or_self permissions
- Update Dockerfile to copy templates and handlers
- Add custom templates path to JupyterHub configuration
- Update .claude/CLAUDE.md with feature documentation
- Reset Home Volume: DELETE /hub/api/users/{username}/reset-home-volume
- Restart Server: POST /hub/api/users/{username}/restart-server
- Both features use Docker API directly via /var/run/docker.sock
2025-11-03 20:24:20 +01:00
stellarshenson
be8c8f2428 feat: add project documentation, feature plan, and version management
- Add .claude/CLAUDE.md with comprehensive architecture documentation
- Add .claude/JOURNAL.md for tracking substantive work
- Add FEATURE_PLAN.md for Reset Home Volume and Restart Server features
- Add project.env with version tracking (1.0.0_jh-4.x)
- Update Makefile with increment_version and tag targets
- Implement auto-versioning on build and dual-tag push workflow
2025-11-03 20:18:52 +01:00
Konrad Jeleń
b28cbe7570 Remove GitHub Stars badge from README
Removed GitHub Stars badge from README.
2025-10-26 18:43:57 +01:00
stellarshenson
cfd62254dd feat: add docker pulls and github stars badges to readme
Added Docker pulls badge and GitHub stars badge alongside existing Docker image size badge for better project visibility and metrics tracking.
2025-10-26 17:37:56 +00:00
stellarshenson
4aa047e103 added line to pull jupyterlab 2025-10-26 11:36:19 +01:00
stellarshenson
42b23a547d returned back to CUDA 12.9.1 2.11.35_cuda-12.9.1_jh-5.4.2 v2.11-cuda-12.9.1 2025-08-10 21:55:59 +02:00
stellarshenson
f76ee8711a makde package leaner v2.10-cuda-13.0.0 2025-08-10 04:42:06 +02:00
stellarshenson
fd991f3d4d updated to have certs still sourced from a volume 2025-08-10 04:39:02 +02:00
stellarshenson
3e0780a41b added certs for traefik 2025-08-10 04:33:47 +02:00
stellarshenson
15d7b023fc removed need to certs volume 2025-08-10 04:33:04 +02:00
stellarshenson
a5ffcdb1f8 updated to have certificates mounted externally 2025-08-10 04:31:59 +02:00
stellarshenson
254d5670d6 updated to support latest CUDA 13.0 v2.9 2025-08-10 04:22:21 +02:00
stellarshenson
6502e8a109 updated with the latest CUDA version 13.0.0 2025-08-10 04:02:22 +02:00
stellarshenson
d034d41dd4 updated permissions 2025-08-08 20:16:08 +02:00
stellarshenson
41dabb0dcb added restore script for backup volumes 2025-08-08 20:01:52 +02:00
stellarshenson
fba2347463 updated readme 2025-08-08 01:46:26 +02:00
stellarshenson
ba81dd63c2 updated with configurable nvidia autodetect image 2025-08-08 00:52:17 +02:00
stellarshenson
51106cb81b updated with enhanved autodetection routine for nvidia v2.8 2025-08-08 00:50:41 +02:00
stellarshenson
1f0def6823 small bugs 2025-08-07 22:43:33 +02:00
stellarshenson
dccd14d6cc updated env variables 2025-08-07 22:42:12 +02:00
stellarshenson
99713fc557 updated to fix the issue with test container 2025-08-07 22:37:05 +02:00
stellarshenson
f5fd86adbf another fix 2025-08-07 22:29:37 +02:00
stellarshenson
293e2af741 fixed the way nvidia autodetection works 2025-08-07 21:52:56 +02:00
stellarshenson
caeb47d0bd updated nvidia detection 2025-08-07 21:40:24 +02:00
stellarshenson
713706f6c9 standardised network name 2025-08-07 21:07:43 +02:00
stellarshenson
fd3e591aab updated with the fix to the shared volume 2025-08-07 21:05:44 +02:00
stellarshenson
800c259bee updated with the nvidia autodetection v2.7 2025-08-07 20:08:36 +02:00
stellarshenson
cb8e6e106f updated permissions v2.6 2025-08-07 17:22:30 +02:00
stellarshenson
8d8d874a1c updated names of the enable variables 2025-07-23 23:56:01 +02:00
stellarshenson
d856089b64 small fixes to the documentation of the config files 2025-07-22 09:45:39 +00:00
stellarshenson
c43b622caa reduced default number of mlfow workers 4 -> 1 2025-07-22 00:28:04 +02:00
stellarshenson
c98349a111 updated readme with shared cifs example 2025-07-19 14:06:24 +02:00