Spaces:
Sleeping
Download README.md from scomb2/Michel-OpenWebUI: direct link, hf CLI and curl.
- Browser
- Download file 3.53 kB
-
https://huggingface.co/spaces/scomb2/Michel-OpenWebUI/resolve/main/README.md
- Command line
-
hf download hf://spaces/scomb2/Michel-OpenWebUI/README.md
-
curl -L -o README.md https://huggingface.co/spaces/scomb2/Michel-OpenWebUI/resolve/main/README.md
title: Montaigne OpenWebUI
emoji: 🪶
colorFrom: yellow
colorTo: gray
sdk: docker
app_port: 8080
pinned: false
Montaigne OpenWebUI
This Space is the production user interface of the Montaigne chatbot.
https://ask-montaigne.pages.dev redirects here; the admin dashboard (backend
user management) lives at https://ask-montaigne.pages.dev/admin.html and uses
its own cookie/CSRF auth.
The Space connects to the Montaigne FastAPI backend through an
OpenAI-compatible API exposed at /v1.
Auth Model
OpenWebUI runs with authentication disabled (guest-only, features.auth=false):
- Anonymous visitors are mapped to per-IP backend guest accounts with a 5-message limit per IP.
- At the limit, the UI patch shows a "Create free account" modal
(
POST /auth/claim-guest), which creates a backend account and sets its password at claim time. - The account token rides on
/v1requests asvariables.montaigne_token; conversation continuity is keyed byX-OpenWebUI-Chat-Id/ browser fingerprint. - There are no OpenWebUI accounts, no billing, no conversation sharing, and
no OAuth buttons in the UI. The backend
/auth/profileand/billing/*endpoints stay dormant.
UI Policy (Minimal Consumer Interface)
Standard users see a stripped-down chat-only interface. The model selector, Controls panel, advanced parameters, voice input/output, Settings menu, and all power-user surfaces are hidden. Only admins retain full access.
This is enforced in two layers:
- Persistent config — the container entrypoint syncs
config/ui_policy.jsoninto OpenWebUI's database on every boot, ensuring permissions and feature flags always match the repo state. - Runtime DOM patch —
config/minimal_ui_patch.jsis copied into the built OpenWebUI app and injected intoindex.htmlat container startup. It hides the model selector, settings entry, archived chats, keyboard shortcuts, and other power-user affordances from the public UI, and implements the guest-limit claim modal.
Updating the policy
Edit config/ui_policy.json and redeploy. The entrypoint handles first
boot (bootstrap config.json) and subsequent boots (update the config
row in webui.db).
Key fields:
| Key | Purpose |
|---|---|
default_models |
Model pre-selected for every new chat |
default_pinned_models |
Model pinned in the selector |
permissions.chat.* |
Per-user chat capabilities |
permissions.features.* |
Per-user feature access |
permissions.workspace.* |
Per-user workspace access |
features.* |
Global OpenWebUI feature toggles |
Minimal UI patch
config/minimal_ui_patch.js is intentionally lightweight: it uses a small
MutationObserver-based DOM patch instead of rebuilding OpenWebUI from source.
That keeps the Space repo small, avoids binary asset issues on Hugging Face,
and still removes the public-facing controls we do not want to expose.
If you upgrade OpenWebUI and the selectors stop matching, adjust only
config/minimal_ui_patch.js and redeploy.
Conversation Starters
Configured in config/prompt_suggestions.json. These Montaigne-style
prompts appear on the empty chat screen.
Environment Variables
| Variable | Description |
|---|---|
OPENAI_API_KEY |
Your API key for the backend LLM provider |
OPENAI_API_BASE |
Backend URL: https://tgrumb-michel.hf.space/v1 |
DEFAULT_PROMPT_SUGGESTIONS |
Optional override for the repo-managed prompt suggestions |