Nitro Contestant Runtime
The owned, reproducible runtime used by Nitro AI contestant notebooks and the
submission proxy. This repository retains the history and AGPL-3.0 license of
the original nitronlp/contestant-jupyter-server project.
Published interfaces
Python 3.11 applications can install the shared scientific/ML runtime or the same runtime plus the notebook UI:
pip install nitro-contestant-runtime==1.0.0
pip install "nitro-contestant-runtime[notebook]==1.0.0"
The package contains dependency metadata only; it intentionally installs no
importable nitro_contestant_runtime module.
The matching Linux/AMD64 fallback containers are:
ghcr.io/mihneateodorstoica/nitro-contestant-notebook:1.0.0
ghcr.io/mihneateodorstoica/nitro-submission-proxy:1.0.0
1.0 and stable are promoted only after both exact images pass the shared
runtime, proxy, Jupyter base-path, and cross-image cloudpickle checks.
Runtime contract
The notebook keeps the upstream /home/jovyan home, /opt/conda runtime,
custom OAuth login, base-path entrypoint, and outbound network isolation. It
accepts the base path as its first argument and exposes Jupyter on port 8888.
Both PROXY_URL and NITRO_SUBMISSION_PROXY_URL point at the submission proxy;
PROXY_URL_CLIENT is the browser-visible URL.
The proxy keeps the Python 3.11/nsjail prejudging sandbox, cache and API
contract, and exposes /health and the proxy API on port 9000. Required proxy
settings are JUDGE_BASE_URL, ORGANIZATION_SLUG, COMPETITION_SLUG, and
JUPYTER_BASE_URL.
Local stack
docker network create nitro_net
mkdir -p secrets
touch secrets/session_whitelist_bypass_key
cp jupyter-server/.env.example jupyter-server/.env
cp submission-proxy/.env.remote submission-proxy/.env
docker compose up --build
Edit the organization, competition, judge, and Jupyter URLs in
submission-proxy/.env before connecting to a real competition. Add
docker-compose.gpu.yml when the NVIDIA Container Toolkit is available:
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up --build
Reproducing the lock and images
pyproject.toml is the only hand-edited dependency input. uv.lock and the
two hashed pip exports are tracked:
uv lock
uv export --locked --no-dev --no-emit-project --output-file requirements/base.txt
uv export --locked --no-dev --no-emit-project --extra notebook --output-file requirements/notebook.txt
docker build -f jupyter-server/Dockerfile -t nitro-contestant-notebook .
docker build -f submission-proxy/Dockerfile -t nitro-submission-proxy .
Both Dockerfiles use the repository root so the image installs those exact
hashes and then installs the local metadata package with --no-deps.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nitro_contestant_runtime-1.0.0.tar.gz.
File metadata
- Download URL: nitro_contestant_runtime-1.0.0.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
256eb026f9412d166c3c90407b044ff8e21216e2cc45980414254ac1412b26e9
|
|
| MD5 |
4b70fc6fde0c43c3ef8f4e14d6fb8bb9
|
|
| BLAKE2b-256 |
59f9b706e582845a36bbb192c4ce76e25e6cf24a024dc55a00ffc35c37e9da3b
|
Provenance
The following attestation bundles were made for nitro_contestant_runtime-1.0.0.tar.gz:
Publisher:
publish.yml on MihneaTeodorStoica/contestant-jupyter-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nitro_contestant_runtime-1.0.0.tar.gz -
Subject digest:
256eb026f9412d166c3c90407b044ff8e21216e2cc45980414254ac1412b26e9 - Sigstore transparency entry: 2258891303
- Sigstore integration time:
-
Permalink:
MihneaTeodorStoica/contestant-jupyter-server@c06e4ffe75a13705530ef0c62ff779d48792131d -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/MihneaTeodorStoica
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c06e4ffe75a13705530ef0c62ff779d48792131d -
Trigger Event:
push
-
Statement type:
File details
Details for the file nitro_contestant_runtime-1.0.0-py3-none-any.whl.
File metadata
- Download URL: nitro_contestant_runtime-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ebe58e368e0d6bbbdc72839364a5d8dfe7b8d9dca5c95ed73754069d529ebc0
|
|
| MD5 |
6d593da8cdf85533a864663e5f1885a7
|
|
| BLAKE2b-256 |
12c1e0bfdb346f800e3c41216c413b2a1fef9fbc3707ad364b7f00eae3576bfc
|
Provenance
The following attestation bundles were made for nitro_contestant_runtime-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on MihneaTeodorStoica/contestant-jupyter-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nitro_contestant_runtime-1.0.0-py3-none-any.whl -
Subject digest:
4ebe58e368e0d6bbbdc72839364a5d8dfe7b8d9dca5c95ed73754069d529ebc0 - Sigstore transparency entry: 2258891400
- Sigstore integration time:
-
Permalink:
MihneaTeodorStoica/contestant-jupyter-server@c06e4ffe75a13705530ef0c62ff779d48792131d -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/MihneaTeodorStoica
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c06e4ffe75a13705530ef0c62ff779d48792131d -
Trigger Event:
push
-
Statement type: