# Self-hosting OpenJev

> The server behind Codiv is open source under Apache-2.0. Run it on your own GPU with Docker.

Source: https://codiv.ai/docs/guides/self-hosting

## Run with Docker

You need an NVIDIA GPU that supports the NVFP4 checkpoint. OpenJev is developed on an RTX PRO 6000 Blackwell.

Shell:


```bash
git clone https://github.com/razorback16/openjev && cd openjev
docker compose up -d        # one container: vLLM + OpenJev on 127.0.0.1:8080
curl localhost:8080/v1/models
```

Point any SDK at it:

Shell:


```bash
export TYPESAFE_BASE_URL=http://127.0.0.1:8080
```

## Configuration

| Variable | Default | Meaning |
|---|---|---|
| `OPENJEV_UPSTREAM` | unset | External vLLM server URL; when set, the container does not start its own |
| `OPENJEV_CANVAS` | `64` | Canvas length; also sets the built-in vLLM's `--diffusion-config` |
| `OPENJEV_MAX_INFLIGHT` | `64` | Reads in flight to vLLM |
| `OPENJEV_MAX_QUEUE` | `512` | Waiting requests before the server returns 529 |
| `OPENJEV_API_KEY` | unset | Require `Authorization: Bearer <key>` |

## How it works

DiffusionGemma denoises a whole canvas of tokens at once instead of generating left to right. OpenJev writes the answer template onto the canvas and leaves only the answer slots as noise. One read-only denoising step then yields a distribution over each question's labels. The vLLM support comes from [vllm-project/vllm#57250](https://github.com/vllm-project/vllm/pull/57250).

> **Warning.**
> That vLLM pull request is not merged yet, so OpenJev pins a fork at a fixed commit.
