Outcome and requirements#
This recipe installs the reference core stack and uses inference endpoints you
already operate or are authorized to use. Follow requirements
and download the setup. All commands run from the extracted
dicto-reference-setup directory. The pinned server is 2.4.2; see
validation scope.
Collect a public hostname, ACME email, registry access, bootstrap administrator
credentials, and each provider's full API root, API key and model identifier.
The server's network must reach those providers. A successful /v1/models
list
alone does not verify audio uploads or generation.
Configure the files#
cp secrets.env.example secrets.env
chmod 600 secrets.env
openssl rand -hex 32
Generate independent random values for database/auth/storage secrets. Replace
every REPLACE_ placeholder. Set DICTO_HOST and ACME_EMAIL. Replace
dicto.example.org in server/server.yaml, app-management/public.env
and
config/app.yaml; the hostname appears in both the public API URL and auth settings.
Set CHAT_BASE_URL, CHAT_API_KEY, TRANSCRIPTION_BASE_URL and
TRANSCRIPTION_API_KEY to the actual provider settings. Include required
/v1
or gateway prefixes. In server/server.yaml, change each provider_model
to an
ID accepted by that provider. The example IDs llm-default and whisper
are
aliases for the self-hosted recipe and may not exist on your external service.
Only advertise capabilities you have verified. See model configuration and authentication. If chat is not part of the installation, omit its configured model catalog instead of claiming a working LLM feature. Scripto may require a separate agent service.
Validate and start#
Authenticate Docker to GHCR using an authorized pull credential, then:
docker compose --env-file secrets.env config --quiet
docker compose --env-file secrets.env run --rm --no-deps migrator validate-config
docker compose --env-file secrets.env run --rm --no-deps migrator validate-config --resolve-env
docker compose --env-file secrets.env up --build -d postgres storage storage-init
docker compose --env-file secrets.env up --build -d
docker compose --env-file secrets.env ps --all
The bucket initializer and migrator must exit zero before API/jobs start. The GPU overlays and gateway profile are not enabled in this recipe. Leave their unused variables supplied as placeholders, or remove the unused gateway definition when creating your own deployment.
Verify and finish bootstrap#
Open https://YOUR_HOST/management/, sign in and verify the browser uses your
public /api URL. Run the end-to-end checklist,
including stored-audio playback, transcription and a separate chat check if enabled.
Disable seed.admin.enabled in server/server.yaml, then recreate the consumers:
docker compose --env-file secrets.env up -d --force-recreate server jobs
See management deployment for browser routing and operations before rolling out to users.
