trypost/docker
Hafiz Muhammad Moaz 06fd0ba53d
docs: surface per-provider AI model override env vars (#290)
* docs: surface per-provider AI model override env vars

.env.example only showed AI_TEXT_PROVIDER/AI_IMAGE_PROVIDER/
AI_AUDIO_PROVIDER (which provider to use), never the per-provider
model overrides (OPENAI_IMAGE_MODEL, GEMINI_AUDIO_MODEL, etc.) that
config/ai.php already wires up for every provider capability. A
self-hoster reading only .env.example had no way to discover these
existed.

These aren't new: laravel/ai already resolves each capability's
model independently per provider (confirmed in vendor - e.g.
OpenAiProvider::defaultImageModel() falls back to a hardcoded image
model, never to the text model), so there was never actually a
text-model fallback bug to fix in code. The gap was purely that the
override knobs were invisible outside of reading config/ai.php's
source directly.

* docs: document AI provider keys, URLs and example model values

The override block landed with bare variable names and only covered the
five providers whose API keys were already in .env.example. Filled in
what a self-hoster still could not discover:

- Example values on every model override, taken from laravel/ai's
  current per-capability defaults, so the ID format is visible (an
  Ollama tag, an OpenRouter vendor/model path and a bare OpenAI ID
  look nothing alike).
- The keys and URLs for the providers .env.example already advertises
  as valid but never documented: XAI, GROQ, MISTRAL, DEEPSEEK,
  OLLAMA_URL and the openai-compatible endpoint. Ollama was the
  scenario in the original report and OLLAMA_URL matters more there
  than OLLAMA_TEXT_MODEL does.
- GROQ/MISTRAL/DEEPSEEK text models, missing while their providers
  were listed as options.
- openai-compatible has no built-in default model and throws without
  OPENAI_COMPATIBLE_TEXT_MODEL, so that one is flagged as required.
- Corrected the audio provider list: gemini and openrouter implement
  AudioProvider too. The image and audio lists are no longer written
  as exhaustive.
- Mirrored all of it into docker/.env.docker.example, which carried the
  same block untouched and is the file Docker self-hosters copy. Its
  OLLAMA_URL points at the host instead of localhost.

---------

Co-authored-by: Paulo Castellano <paulo@castellanos.llc>
2026-08-26 11:13:06 -03:00
..
.env.docker.example docs: surface per-provider AI model override env vars (#290) 2026-08-26 11:13:06 -03:00
Dockerfile fix(docker): production build/runtime fixes from homelab deploy 2026-05-12 23:44:55 -03:00
entrypoint.sh MCP: workspace settings, viewer read access, and token access (#241) 2026-08-06 09:54:51 -03:00
nginx.conf fix(docker): add Reverb WebSocket proxy to nginx 2026-05-12 23:44:55 -03:00
php.dev.ini fix(docker): drop stripe envs and bump upload limits to 1G 2026-05-12 23:44:55 -03:00
php.prod.ini fix(docker): drop stripe envs and bump upload limits to 1G 2026-05-12 23:44:55 -03:00
postgres-init.sh feat(docker): add multi-stage Dockerfile with dev and production targets 2026-05-12 23:44:55 -03:00
supervisord.dev.conf feat(docker): add multi-stage Dockerfile with dev and production targets 2026-05-12 23:44:55 -03:00
supervisord.prod.conf feat(docker): add multi-stage Dockerfile with dev and production targets 2026-05-12 23:44:55 -03:00