Deployment

July 31, 2026 · View on GitHub

Serving the page

hivemind-webchat --port 9090 runs a plain-HTTP Tornado server. The HiveMind connection (browser ↔ hub) is always encrypted end to end via the V1 handshake, independent of how the page itself is served.

For anything beyond local use, put the HTTP server behind a reverse proxy with TLS (so the page loads over https://, which browsers require for Web Crypto on non-localhost origins):

server {
    listen 443 ssl;
    server_name webchat.example.com;
    # ssl_certificate / ssl_certificate_key via Let's Encrypt
    location / {
        proxy_pass http://127.0.0.1:9090;
    }
}

Caddy or Let's Encrypt with nginx both work.

Docker (all_in_one/)

all_in_one/Dockerfile builds an image that serves the UI and, optionally, starts the headless bridge:

docker build -t hivemind-webchat -f all_in_one/Dockerfile .
docker run -p 9090:9090 hivemind-webchat            # UI only
docker run -p 9090:9090 hivemind-webchat \
    --access-key KEY --host ws://HUB --port 5678 --password PASS   # + bridge

Runtime deps come from pyproject.toml, so the image just installs the package. The hub (hivemind-core) and skills/agent (ovos-core) are not bundled — run them as separate services.

Static demo (gh-pages)

A static build is published from the gh-pages branch at https://jarbashivemind.github.io/HiveMind-webchat. It is the same page this server serves, pointed at whatever hub you enter in the form. No infrastructure of your own is required to try it.


← Architecture · Home · Dependencies →