This repo serves a static dashboard UI with a tiny Node/Express server, packaged for Docker and Helm. All API base URLs are runtime-configurable via environment variables.
The server exposes /config.js that injects window.__APP_CONFIG__ used by script/config.js.
Environment variables:
- API_BASE_URL(default: https://api.kolosal.ai)
- DOCLING_BASE_URL(default: same as API_BASE_URL)
- MARKITDOWN_BASE_URL(default: same as API_BASE_URL)
- PORT(default: 3000)
- Install deps
- Node 18+ recommended
 
- Start the server
# Windows PowerShell
$env:API_BASE_URL="https://api.kolosal.ai"; npm install; npm startOpen http://localhost:3000.
Build and run:
# Build
docker build -t kolosal-dashboard:local .
# Run with env overrides
docker run --rm -p 3000:3000 `
  -e API_BASE_URL=https://api.kolosal.ai `
  -e DOCLING_BASE_URL=https://docling.example.com `
  -e MARKITDOWN_BASE_URL=https://markitdown.example.com `
  kolosal-dashboard:localTo run on a different port, set PORT and map the same host port:
docker run --rm -e PORT=8080 -p 8080:8080 `
  -e API_BASE_URL=https://api.kolosal.ai `
  kolosal-dashboard:localUpdate charts/kolosal-dashboard/values.yaml or pass overrides:
helm upgrade --install kolosal-dashboard charts/kolosal-dashboard `
  --set image.repository=your-registry/kolosal-dashboard `
  --set image.tag=latest `
  --set env.API_BASE_URL=https://api.kolosal.ai `
  --set env.DOCLING_BASE_URL=https://docling.svc.cluster.local `
  --set env.MARKITDOWN_BASE_URL=https://markitdown.svc.cluster.localService exposes HTTP on port 80 by default. Add an Ingress if needed.
- The UI layout is untouched; only JS was refactored to use a centralized config.
- Docling uploads use multipart/form-data at /v1/convert/file.
- MarkItDown uses specific parse endpoints: /parse_pdf,/parse_docx,/parse_xlsx,/parse_pptx,/parse_html.
- The app does not proxy requests; ensure CORS is enabled on the APIs for the dashboard origin when using remote hosts.