--- categories: - jupyterhub - python date: '2025-12-01' layout: post title: Auto-build JupyterHub images with GitHub Actions --- Overview: is a template that ships a JupyterHub-ready single-user image with common scientific Python tooling and sensible defaults. Just edit `requirements.txt` in GitHub and the built-in GitHub Actions workflow auto-builds and publishes a new image—no local Docker required. See the README for the detailed package list and CI steps. How to use it in JupyterHub: - Build or pull the image, then point your spawner at it, e.g. `c.DockerSpawner.image = "ghcr.io/your-org/custom-jupyterhub-docker-image:TAG"` (or the equivalent field for your spawner/Helm chart). - Restart JupyterHub so new servers launch with the custom image. Adopt it via GitHub templates: click “Use this template” to create your own copy (no fork history), tweak `requirements.txt`, and push to your namespace to trigger the build. Where the image lives: the workflow can publish to GitHub Container Registry. Publish/pull docs: .