Self-hosted AI customer support

Sentinel Chat: customer support AI you actually own

The AI support widget that never leaves a customer hanging. An admin panel, a chat API and an embeddable website widget in one Python process, backed by a single data file.

Sentinel Chat AI support widget answering visitor questions on a company website

1

Python process

1

SQLite data file

1

<script> tag to embed

0

Config files or env vars

What it is

Three things, one process, one file

Everything you need to put a smart support assistant on any website, with nothing to provision and no external services to keep alive.

Admin panel

A login-gated dashboard to configure the AI, author fallback answers, set rate limits and allowed origins, and manage staff. Light and dark mode, English and Bahasa Melayu.

Public chat API

A single POST /api/chat endpoint answers visitor questions, powering the widget or your own frontend, with per-visitor rate limiting and CORS control.

Embeddable widget

A vanilla-JS chat bubble you add to any site with one script tag. No framework, no build step, no API keys in the page.

The signature feature

Graceful fallback: your bot keeps answering even when the AI can't

Most chatbots throw an error the moment the AI is unreachable, unfunded or rate-limited. Sentinel Chat quietly falls back to a curated knowledge base instead: zero-downtime answers, controllable costs and no error messages in front of customers.

1. Visitor asks

A message hits /api/chat from the widget or your backend.

2. AI answers

Claude, OpenAI or your own model answers with your system prompt.

3. If the AI can't

Key missing, out of credits, rate-limited, or non-LLM mode switched on.

4. Fallback answers

Your curated knowledge base responds. No error is shown to the visitor.

Everything in the box

Serious capability, zero operational drag

Bring any LLM provider

Anthropic Claude, OpenAI, or self-hosted OpenAI-compatible servers such as Ollama, vLLM, LM Studio, llama.cpp, LocalAI and LiteLLM. Switch in one dropdown, no redeploy.

One-line website embed

Bot name, greeting, quick-action chips, brand colour and corner all come from data-attributes. No backend code on the host site.

Secure by default

API key encrypted at rest, cookies marked Secure over HTTPS, a CORS origin allowlist and per-visitor rate limiting.

You own the data

Everything lives in one data file you control. No per-seat or per-conversation SaaS billing, and no third party reading your conversations.

Zero configuration

No environment variables and no config files. Security secrets are generated on first boot.

Answers from your documents

Write keyword rules, or upload PDF, Word or text files and let the bot answer from the best-matching passages.

Sentinel Chat admin panel LLM provider, model and system prompt settings
Admin panel

Settings in a clean UI, not a config file

Provider, model, system prompt, temperature, rate limits, allowed origins, knowledge base and staff accounts are all managed from the browser.

  • Switch between hosted and self-hosted models from a dropdown
  • Force non-LLM mode at any time to cap spend
  • A login-gated demo page to test the real widget before it goes live
  • Built-in, searchable help for every setting
Knowledge base

Your answers, ready when the AI is not

Author keyword-matched answers with priorities and categories, test a question against them instantly, or upload documents as the knowledge source.

  • Rules, documents, or both as the source
  • Test any question without calling the AI
  • Enable, disable or prioritise each answer
Sentinel Chat keyword knowledge base used as graceful fallback when the AI is unavailable
Why teams choose it

Sentinel Chat vs. the SaaS bots

Same drop-in convenience. None of the lock-in, metered billing or hard failures.

Never errors out

AI-then-keyword fallback keeps the bot answering even when the AI is down or unfunded.

No vendor lock-in

Hosted or self-hosted models, swapped from a dropdown, never tied to one provider.

Predictable cost

No per-seat or per-message pricing. Cap spend by switching to non-LLM mode instantly.

Runs anywhere

One process and one SQLite file. A Docker image with a health check ships in the box.

Two ways to integrate

A client-side JS widget, or an asynchronous, signed server-to-server webhook.

Deploy in minutes

pip install, run, done. An admin user is ready on first run.

Live in three steps

From install to live widget in an afternoon

  • Install and run: one Python process, or the Docker image.
  • Configure once: log into the admin panel, pick your provider and model, add your API key (encrypted at rest) and set allowed origins.
  • Paste one tag: add the script tag to any page and customise it through data-attributes.
<script src="https://chat.yourco.com/static/widget.js"
  data-endpoint="https://chat.yourco.com/api/chat"
  data-bot-name="Assistant"
  data-greeting="Hi! How can I help?"
  data-theme="#0a5bc7"></script>

Prefer server-to-server? A signed, asynchronous webhook integration ships in the box too.

Own your support AI

One process, one file, one script tag. Ask us for a demo on your own website.

Request a demoEmail us