FastAPI proxy that exposes OpenAI-compatible endpoints for WALD.
uv venv .venv
uv pip install -r requirements.txt
uv run python main.pyThe service listens on http://127.0.0.1:8000 locally.
docker build -t wald-api .
docker run --rm -p 8000:8000 wald-apiThe workflow at .github/workflows/docker-image.yml builds and pushes the image to GitHub Container Registry:
ghcr.io/<owner>/<repo>:latest
ghcr.io/<owner>/<repo>:sha-<commit>
Required repository settings:
- Enable GitHub Actions.
- After the first image is pushed, set the GHCR package visibility to public if Render should pull it without credentials.
Optional repository secret:
RENDER_DEPLOY_HOOK_URL
Set this to a Render deploy hook URL if you want GitHub Actions to trigger a Render deploy after pushing the image.
Option A: Deploy from this GitHub repo using render.yaml.
- Push this repository to GitHub.
- In Render, create a new Blueprint from the repo.
- Render will build the Dockerfile and run the web service on the free plan.
Option B: Deploy from the GHCR image.
- Let GitHub Actions publish
ghcr.io/<owner>/<repo>:latest. - Make the GHCR package public.
- Create a Render web service from an existing Docker image.
- Use
ghcr.io/<owner>/<repo>:latestas the image URL.
Required on Render:
None
Optional:
PROXY=
Use PROXY only if outbound requests to WALD must go through a proxy, for example:
PROXY=http://user:password@host:port
Render provides PORT automatically. The Docker command reads it through ${PORT:-8000}.
API credentials are not configured as server environment variables. Clients pass them per request with:
Authorization: Bearer <base64-json-api-key>