Uptime monitoring system for Ethora instances.
Each check can be marked as:
- critical: affects instance rollup status (failures can make the instance red, missing data can make it amber)
- optional: never affects instance rollup status (still recorded + visible)
In config you can set:
severity: critical | optional
By default, journey checks should be configured as optional.
docker compose up --buildOpen:
http://localhost:8099(dashboard)http://localhost:8099/api/summary(JSON)
/shows a wallboard view (per-instance rollup + critical checks)- Optional checks are under “Optional checks” (expandable)
- Journey checks have a Run button (manual regression run)
- Click any check name to open history:
/history.html#<checkId>
GET /api/summary: rollup view for UIGET /api/history?checkId=<id>&sinceMinutes=1440: time series points from DBPOST /api/run-checkwith{ "checkId": "instanceId:checkId" }: run a check now and record the result
The service reads a YAML config file (mounted into the container):
- Default path in Docker:
/config/uptime.yml - Example file:
config/uptime.example.yml
If you want a check to not be scheduled, set:
enabled: false
You can still run it from the UI “Run” button (or via POST /api/run-check).
There are two supported journey levels (configured via checks[].id):
journey→ basic flow (app + users + 1 chat + add member)journey_advanced→ comprehensive flow (2 chats, membership changes, XMPP delivery, file upload)
ETHORA_API_BASE(e.g.http://host.docker.internal:8080)ETHORA_BASE_DOMAIN_NAME(base app domain slug)ETHORA_ADMIN_EMAILETHORA_ADMIN_PASSWORD
Optional:
ETHORA_APP_NAME_PREFIXETHORA_USERS_COUNT
Advanced mode requires XMPP websocket connectivity to validate message delivery:
ETHORA_XMPP_SERVICE(e.g.ws://xmpp:5280/ws)ETHORA_XMPP_HOST(e.g.localhostor your XMPP domain)ETHORA_XMPP_MUC_SERVICE(optional; defaults toconference.<XMPP_HOST>)
Run the server continuously; it schedules each check by intervalSeconds and records results.
If you prefer running checks via cron:
- Build once:
npm run build - Run one tick and exit:
node dist/runOnce.js
- This project is intended to be used both as a standalone public repo and as a monoserver module (git submodule).