Skip to main content

Layered Jupyter container images and project-local JovyKit environments.

Project description

JovyKit logo

JovyKit

CI Version Python License Website

Project-local JupyterLab containers with a venv-like CLI, layered notebook images, uv-locked dependencies, and readable Docker Compose output.

.jovy is to JovyKit what .venv is to Python.

Website · Wiki · Issues · GHCR Images

Why JovyKit

JovyKit is for notebook-heavy data science and research projects that should be easy to start, reproducible later, and still inspectable when something needs debugging.

  • Create a project-local .jovy/ environment from one command.
  • Track direct project packages in jovy.toml.
  • Compile a deterministic .jovy/jovy.lock with uv.
  • Build a generated overlay image instead of mutating container state.
  • Run JupyterLab through Docker Compose without making Compose the user interface.
  • Choose notebook image layers from minimal, base, extended, and full.
  • Use a terminal dashboard for interactive project operations.

Quick Start

Install from a local checkout:

python -m pip install -e .

Create an environment, add packages, and run JupyterLab:

jovy init .jovy --image base --gpus auto
jovy add pandas scikit-learn plotly
jovy install
jovy run

JovyKit prints the local JupyterLab URL. The default token is jovykit.

Daily Commands

jovy                  # open the terminal dashboard
jovy status
jovy status --json
jovy add -r requirements.txt
jovy install --upgrade
jovy up
jovy logs --tail 100 --since 10m --timestamps
jovy shell -c "python --version"
jovy exec python --version
jovy down --timeout 10
jovy clean
jovy destroy --keep-image

Most commands accept --env PATH when you want to operate on a project outside the current directory tree.

What It Creates

jovy.toml
work/
.jovy/
  jovy.lock
  Containerfile
  compose.yaml
  state.json

jovy.toml is the project manifest. .jovy/ contains generated local environment files and should stay out of version control.

Image Layers

Published images use this pattern:

ghcr.io/mihneateodorstoica/jovykit-TYPE:latest
ghcr.io/mihneateodorstoica/jovykit-TYPE:nightly
ghcr.io/mihneateodorstoica/jovykit-TYPE:lts

TYPE is one of:

  • minimal: Jupyter runtime plus the core scientific Python stack.
  • base: everyday data science, classical machine learning, statistics, and local data access.
  • extended: advanced ML, NLP, time series, distributed compute, and API tooling.
  • full: heavier AI, graph, geospatial, big-data, and research tooling.

All image variants include git, OpenSSH client tools, rsync, and a prepared ~/.ssh directory for SSH-backed remotes and file sync.

Build a target locally:

docker build --target minimal -t jovykit-minimal ./image
docker build --target base -t jovykit-base ./image
docker build --target extended -t jovykit-extended ./image
docker build --target full -t jovykit-full ./image

Configuration

jovy.toml can customize runtime environment variables, extra volumes, restart policy, Jupyter command/logging, Compose Watch behavior, image build arguments, build target/platform, apt packages, and uv/pip install options.

Use the arrow-key editor:

jovy config

or open the dashboard and run:

config

Repository Layout

jovykit/              Python CLI package
image/                Dockerfile and layered image dependency manifests
site/                 GitHub Pages promotional website
wiki/                 GitHub Wiki page source
.github/workflows/    CI, security, website, wiki, and image automation

Documentation

The website promotes the project and lives in site/. Operational documentation lives in the GitHub Wiki, with source pages in wiki/.

Testing

Run the deterministic test suite with coverage:

pytest --cov=jovykit --cov-report=term-missing --cov-fail-under=90

Docker-facing smoke tests are opt-in:

pytest -m docker --run-docker

Contributing

Contributions are welcome. See CONTRIBUTING.md for the development workflow and CODE_OF_CONDUCT.md for community expectations.

License

JovyKit is licensed under the MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jovykit-4.3.2.tar.gz (58.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jovykit-4.3.2-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file jovykit-4.3.2.tar.gz.

File metadata

  • Download URL: jovykit-4.3.2.tar.gz
  • Upload date:
  • Size: 58.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jovykit-4.3.2.tar.gz
Algorithm Hash digest
SHA256 5521105f761d0657ff81cababc600be40c557d6c5bc7dcf113b9047cf90420a1
MD5 a25a9ae9e6977f2006cbc1d6df0c4788
BLAKE2b-256 849f59ad204b83a2fb7dd62ec8d804e9f3844927f1ddb1bbfcbf9129a2a3e3c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for jovykit-4.3.2.tar.gz:

Publisher: ci-release.yml on MihneaTeodorStoica/jovykit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jovykit-4.3.2-py3-none-any.whl.

File metadata

  • Download URL: jovykit-4.3.2-py3-none-any.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jovykit-4.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a915b49c4895d72fdb87c6b83b9e59d1da7354f2586a0da35b6daae5480791e1
MD5 8b2944b09bef00b798534a95097624a6
BLAKE2b-256 ed58c4f21c9d4afaa9be9bb11447f91b7a3012dc97ef93df8e3327a2c2fbf55d

See more details on using hashes here.

Provenance

The following attestation bundles were made for jovykit-4.3.2-py3-none-any.whl:

Publisher: ci-release.yml on MihneaTeodorStoica/jovykit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page