soju backend¶
Purpose: Run the FastAPI Soju API (OpenAI-compatible chat/embeddings proxy + local TTS).
Install with uv sync, then:
uv run soju backend --help
Config search order: --config path → ~/.config/soju/backend.yaml (if present) →
packaged defaults under src/soju/backend/config/files/. Compose mounts
docker/soju/backend.yaml into the backend container.
Reads |
Packaged |
Serves |
|
Exit codes |
|
Usage: soju backend [OPTIONS]
Run the Soju FastAPI backend (LLM + TTS OpenAI-compatible API).
╭─ Options ──────────────────────────────────────────────────────────────────╮
│ --config -c <file> YAML override path (default: │
│ ~/.config/soju/backend.yaml │
│ if present, else packaged │
│ defaults) │
│ --host <str> Bind host (overrides YAML │
│ server.host) │
│ --port <int range> [1<=x<=65535] Bind port (overrides YAML │
│ server.port) │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────╯
uv run soju backend --help
uv run soju backend --config docker/soju/backend.yaml
uv run soju backend --host 127.0.0.1 --port 14322
With uv run poe up, the UI is on http://localhost:14321, the API on
http://localhost:14322, and docs on http://localhost:14323.
With uv run poe up-prod / docker compose up, only nginx is public:
http://localhost:8080/ (UI), /api/ (FastAPI), /docs/ (Sphinx).
See AI practice & chat and Local TTS (speech).