ECE-BOT is configured entirely through environment variables. CopyDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Kr-Yogsa/ECE-BOT/llms.txt
Use this file to discover all available pages before exploring further.
.env.example to .env in the project root, then fill in the values below before starting the application. Variables marked as required must be set — the app will fail to start or behave incorrectly without them.
Web app
Secret used to sign and verify JWT session tokens. Change this from the default before deploying to any shared environment. A random 32-byte hex string is suitable.
PostgreSQL connection string. ECE-BOT uses this to store telemetry, operator accounts, and session data.
Public URL of the deployed application, without a trailing slash. This value is embedded in operator invitation emails so recipients can follow the link to the correct host.
API key for the Gemini LLM. ECE-BOT falls back to Gemini when a hardware chatbot’s confidence score drops below the 0.75 threshold. This variable was named
API_KEY in earlier versions of .env.example.Gemini model name to use for LLM fallback responses.
Brevo (formerly Sendinblue) transactional email API key. Used to send operator invitation emails.
Sender email address for outgoing mail. This address must belong to a domain that is verified in your Brevo account, otherwise Brevo will reject the send request.
Display name shown in the From header of outgoing emails.
Live video
ECE-BOT can display a live video stream for each machine. You can provide one global fallback URL or separate per-machine URLs. A Raspberry Pi (or any HTTP client) can also push updated stream URLs at runtime using the update token.Secret token that authorises the Raspberry Pi to update live stream URLs via
POST /api/machine-live/<machine_id>/url. Pass this value in the X-Live-Update-Token request header. Change this from the default before deploying.Static fallback stream URL applied to all machines when no per-machine URL is configured.
Static live stream URL for the CNC machine. Takes precedence over
LIVE_STREAM_URL for the CNC view.Static live stream URL for the PLC machine. Takes precedence over
LIVE_STREAM_URL for the PLC view.Static live stream URL for the MELFA robot. Takes precedence over
LIVE_STREAM_URL for the MELFA view.MQTT
These variables configure the background MQTT worker that ingests machine telemetry. All MQTT variables are optional — the web app runs without them ifRUN_MQTT_WORKER is not set.
Hostname or IP address of the MQTT broker.
TCP port of the MQTT broker. The standard unencrypted port is
1883; TLS brokers typically use 8883.Username for broker authentication. Leave blank if the broker allows anonymous connections.
Password for broker authentication. Leave blank if the broker allows anonymous connections.
Topic filter the worker subscribes to. The
+ wildcard matches a single topic level and is used to capture the machine ID from the topic path.Client identifier sent to the broker on connection. Must be unique per broker if you run multiple workers.
MQTT keepalive interval in seconds. The broker drops the connection if no packet is received within this window.
Set to
true to enable TLS for the broker connection. The broker must be configured to accept TLS on the port specified by MQTT_BROKER_PORT.Number of seconds without a telemetry message before ECE-BOT marks a machine as offline on the dashboard.
Runtime
Set to
true in the Docker environment to launch the MQTT worker in the same container as gunicorn. When false, start mqtt_worker.py as a separate process if you need telemetry ingestion.Number of gunicorn worker processes. Increase for higher request concurrency.
Number of threads per gunicorn worker. Each thread handles one concurrent request.