Skip to content

Environment Variables

Configuration enters the stack at two levels: the bundle .env file (read by Docker Compose in an offline install) and per-container environment variables (set by the compose files themselves). This page lists both.

VariableDefaultEffect
AIBOARD_JWT_SECRETgenerated at installJWT signing key (≥ 32 bytes). Mandatory — the release compose refuses to start without it.
AIBOARD_HTTP_PORT80Dashboard HTTP port.
AIBOARD_ALT_PORT3000Secondary dashboard port.
AIBOARD_HTTPS_PORT443HTTPS port (TLS overlay only).
AIBOARD_TLS_ENABLED01 = serve HTTPS with the generated self-signed cert and redirect 80 → 443.
AIBOARD_TLS_HOST—Space/comma-separated IPs/hostnames baked into the cert’s SAN.
AIBOARD_TLS_DIR/opt/aiboard/tlsWhere cert.pem / key.pem live (absolute path recorded at install).
AIBOARD_CERTS_ENABLED01 = mount operator-provisioned datasource client certificates.
AIBOARD_CERTS_DIR/opt/aiboard/certsCA + client certs for secured MQTT / OPC UA, mounted read-only.
AIBOARD_MODEL_SEED_DIR/opt/aiboard/modelsSeed model directory.
AIBOARD_BACKUP_KEEP3How many database backups an update keeps in the backups folder of the install directory, newest first. Older ones are deleted after a healthy update. 0 keeps every backup. A value that is not a whole number falls back to 3.
BACKEND_IMAGE · FRONTEND_IMAGE · INFERENCE_IMAGEfrom bundle manifestImage tags to run — managed by install.sh / update.sh; do not edit by hand.
VariableDefault (release)Effect
ASPNETCORE_ENVIRONMENTProductionSelects the configuration overlay.
Grpc__InferenceService__Addresshttp://inference:50051Inference runtime gRPC target, reached over the internal container network. Port 50051 is bound to the box’s loopback address only by default (AIBOARD_INFERENCE_BIND) and is not reachable from your network.
Database__ConnectionStringData Source=/data/aiboard.dbSQLite database location (persistent volume).
AIBOARD_JWT_SECRETfrom .envJWT signing key fallback; required outside development.
CORS_ORIGINSlocalhost dev originsComma-separated allowed browser origins — override when serving the UI from a non-default host.
AIBOARD_CERTS_ROOT/certsJail root for datasource TLS certificate paths (blocks arbitrary file reads).
AIBOARD_CSV_ROOT/data/csvJail root for CSV replay/output file paths.

Deeper backend tuning (token lifetime, rate limits, model validation caps, retention windows) lives in appsettings keys; any of them can be overridden with the standard .NET double-underscore convention, e.g. Auth__Jwt__ExpiryHours=12 or LoginRateLimit__PermitLimit=10.

appsettings keyDefaultEffect
Auth:Jwt:ExpiryHours8Login token lifetime (no refresh tokens).
LoginRateLimit:*on, 5 / 60 sPer-IP failed-login gate.
ExternalApi:Enabled + ExternalApi:RateLimit:*on, 100 / 60 sExternal API-key surface and its rate limit.
ModelManagement:MaxVersionsToKeep5Version pruning on cleanup.
ModelManagement:Validation:MaxModelSizeMb500Upload size cap.
InferenceObservability:RetentionDays1Inference audit-log retention (SQLite).
InferenceObservability:PayloadRetentionHours6Retention of stored request and response payloads.
LoggingService:Retention:MaxEntries10000LogViewer store cap.
Swagger:Enabledtrue (Development only)Swagger UI at http://<box>:5000/swagger. Ignored outside Development — a shipped box runs ASPNETCORE_ENVIRONMENT=Production and serves no API docs at all. Set false to suppress it during local development.
VariableDefaultEffect
EXECUTION_MODEautoauto (CUDA, CPU as fallback), cuda, or cpu. TensorRT is not used on the TX2.
STRICT_EPoff1 = refuse to start instead of silently degrading a pinned GPU mode to CPU.
MODEL_PATH/app/models/predictive_maintenance_op15.onnxSeed model loaded at startup (volume-mounted, never baked into the image).
MODEL_STORAGE_PATH/data/modelsRegistered model versions (shared volume with the backend).
LOG_DIR/data/logs (release)Enables the rotating Warning+ forensic log file; unset = console only.
USE_REAL_INFERENCEtrueMust stay true — mock mode is retired; the service fails fast otherwise.
INFERENCE_STUB0Debug bypass that echoes zero predictions. Never enable in production.
FORCE_CPUoffLegacy alias for EXECUTION_MODE=cpu.

Jetson bundles additionally pin OPENBLAS_CORETYPE and run with runtime: nvidia — see Jetson Deployment.

VariableDefaultEffect
AIBOARD_TLS_ENABLED0Enables the TLS-aware nginx entrypoint (cert mounted from AIBOARD_TLS_DIR).

The API and hub URLs are compiled into the frontend at build time (same-origin /api + /hub/realtime) — there is nothing to configure at runtime.