diff --git a/.claude/JOURNAL.md b/.claude/JOURNAL.md
index 09ac6a3..be66b5a 100644
--- a/.claude/JOURNAL.md
+++ b/.claude/JOURNAL.md
@@ -24,3 +24,6 @@ This journal tracks substantive work on documents, diagrams, and documentation c
7. **Task - Document self-service features in README**: Updated README with features section and screenshots demonstrating new self-service capabilities
**Result**: Added comprehensive Features section with bullet points covering GPU auto-detection, user self-service, isolated environments, native authentication, shared storage, and production-ready setup, created Self-Service Volume Management subsection with three screenshots (restart server button, manage volumes button, volume selection modal) and one-sentence descriptions for each, positioned visual documentation prominently after feature list to demonstrate user-facing functionality
+
+8. **Task - Production readiness and CI/CD setup**: Implemented visual enhancements, GitHub Actions workflow, architecture documentation, and resolved critical production issues
+ **Result**: Added Font Awesome icons to all control buttons (fa-stop, fa-play, fa-rotate, fa-database), implemented MutationObserver for auto page refresh after server stop with icon re-injection before refresh, created GitHub Actions CI/CD workflow for Dockerfile validation with hadolint, pinned JupyterHub base image to version 5.4.2 (resolved DL3007 warning), reorganized README with mermaid architecture diagram showing Traefik -> Hub -> Spawner -> User containers flow with transparent background for dark mode compatibility, removed Claude co-authoring from entire git history (95 commits rewritten), fixed critical ModuleNotFoundError by adding /srv/jupyterhub to sys.path in config, built jupyterhub_config.py into Docker image by default (changed build context to project root, image now self-contained and works out-of-box), added pull_policy: build to prevent Docker Compose from pulling image after local build, created release tags STABLE_3.0.23 and RELEASE_3.0.23, version progression 3.0.20 -> 3.0.23 reflecting stability and production readiness improvements
diff --git a/Makefile b/Makefile
index 55cac5a..855e96a 100644
--- a/Makefile
+++ b/Makefile
@@ -85,6 +85,7 @@ clean:
@docker compose --env-file .env -f compose.yml down --remove-orphans
@yes | docker image prune
@yes | docker network prune
+ @echo ""
## prints the list of available commands
help:
diff --git a/project.env b/project.env
index da31e94..c1c10a5 100644
--- a/project.env
+++ b/project.env
@@ -3,7 +3,7 @@ PROJECT_NAME="stellars-jupyterhub-ds"
PROJECT_DESCRIPTION="Multi-user JupyterHub 4 deployment platform with data science stack, GPU auto-detection, NativeAuthenticator, and isolated per-user environments spawned via DockerSpawner"
# Version
-VERSION="3.0.24_cuda-12.9.1_jh-5.4.2"
+VERSION="3.0.25_cuda-12.9.1_jh-5.4.2"
VERSION_COMMENT="Multi-user JupyterHub with GPU auto-detection, self-service volume management (home/workspace/cache), and container restart capabilities"
# Author