Dicto clients and the management app connect to the backend API. The backend uses PostgreSQL for application data and object storage for recordings/files. API, migration and jobs containers use the same release and configuration. Transcription and text generation run in separate inference services.
Browser / desktop client ── HTTPS ── reverse proxy ── Dicto API
Management browser app ──── HTTPS ────────────────┘ │
├─ PostgreSQL
├─ object storage
├─ transcription endpoint
└─ chat/LLM endpoint
Migration container ── PostgreSQL Jobs ── shared config + uploads
An optional LLM gateway supplies stable model aliases and routes requests to Whisper, a text model or other configured providers. It does not run model weights. Transcription can work without a chat model; a working chat model does not establish transcription, realtime or diarization compatibility.
Public and private addresses#
The reference deployment follows the maintained path layout:
| Audience | Address in the example | Purpose |
|---|---|---|
| Browser/client | https://dicto.example.org/api |
Public API base URL |
| Administrator | https://dicto.example.org/management/ |
Management app |
| API/jobs | http://storage:9000 | Private S3-compatible storage |
| API/jobs | http://llm-server:8000/v1 | Optional inference gateway |
| Proxy | server:3000, management:80 |
Private forwarding targets |
Container names are resolved on the Docker network, not in users' browsers.
The proxy strips /api before forwarding to the backend and preserves
/management/ for the management app. Configure both the browser-facing URLs
and internal provider URLs explicitly.
Pick a complete recipe#
Choose existing inference endpoints or self-hosted AI. Both use the same downloadable core configuration. Start with requirements, then use the component guides when adapting one service.
