Installation
September 21, 2026 ยท View on GitHub
< Documentation index | Project README
Contents
Docker Compose
The included Compose file starts ttlequals0/minuspodjev:latest, mounts the jevproxy-data named volume at /app/data, and publishes 127.0.0.1:8080 by default.
docker compose up -d
MINUSPOD_BASE_URL and MINUSPOD_PASSWORD let the proxy name sponsors from MinusPod's live sponsor list. The TypeSafe key rides in the per-request OpenAI bearer token, so it is not normally set in Compose. If you configure TYPESAFE_API_KEY as a fallback, callers still need a bearer token unless JEV_ALLOW_UNAUTHENTICATED_FALLBACK=true.
For intentional LAN or reverse-proxy exposure, set JEVPROXY_BIND_ADDRESS=0.0.0.0 in your environment and provide appropriate network access controls.
Local development
Requires uv and Python 3.11+.
cp .env.example .env # TYPESAFE_API_KEY optional; MinusPod sends it per request
uv sync
uv run uvicorn app.main:app --app-dir backend --reload
uv run pytest backend/tests -q # upstream calls mocked; no network
Ports and outbound access
- The app listens on port 8000. In the container nginx listens on port 8080 and proxies
/api,/v1,/chat/completions, and/modelsto it. - Point MinusPod at
http://<proxy>:8080/v1, orhttp://localhost:8000/v1when running uvicorn directly. - Outbound access is HTTPS to
api.typesafe.aifor Jev andMINUSPOD_BASE_URLfor sponsors.