ATS Tracker is a lightweight server that collects and displays real-time test execution data from Agilitest agents. It provides a web dashboard accessible from any browser and a WebSocket API for live updates.
| Feature | Details |
|---|---|
| Web Dashboard | Real-time view of running and completed test executions |
| WebSocket | Live push updates to connected clients and dashboard |
| Embedded Database | SurrealDB with RocksDB — no external database required |
| Data Retention | Automatic cleanup of old executions (configurable) |
| Authentication | Bearer token for API and WebSocket access |
| Service Mode | Runs as systemd service (Linux) or Windows service |
curl (for downloading the binary)openssl (for automatic token generation)systemd (for service management)curl -fSL https://actiontestscript.org/tools/ats-tracker/linux/ats-tracker -o ats-tracker
chmod +x ats-tracker
sudo ./ats-tracker install token=your_secret_token
The installer will configure and start a systemd service. You can pass additional options:
sudo ./ats-tracker install port=3000 token=your_secret_token retention=10 refresh=5
./ats-tracker status
./ats-tracker port=3000 token=your_secret_token retention=10 refresh=5
Invoke-WebRequest -Uri "https://actiontestscript.org/tools/ats-tracker/windows/ats-tracker.exe" -OutFile ats-tracker.exe
.\ats-tracker.exe install token=your_secret_token
The installer will configure and start a Windows service. You can pass additional options:
.\ats-tracker.exe install port=3000 token=your_secret_token retention=10 refresh=5
.\ats-tracker.exe status
.\ats-tracker.exe port=3000 token=your_secret_token retention=10 refresh=5
Once installed, open your browser at http://localhost:3000 (or your chosen port) to access the dashboard.
ATS Tracker can be configured via command-line arguments, environment variables, or the configuration file.
| Parameter | CLI Argument | Env Variable | Default | Description |
|---|---|---|---|---|
| Port | port=3000 |
PORT |
3000 | HTTP server listening port |
| Token | token=abc123 |
TOKEN |
auto-generated | Master authentication token |
| Retention | retention=10 |
RETENTION |
10 | Days to keep execution data |
| Refresh | refresh=5 |
REFRESH |
5 | Heartbeat interval in seconds |
The configuration file (ats-tracker.env) uses a simple key-value format:
PORT=3000
TOKEN=7b2e8411-9293-4e4b-84a5-3d5f346e91f1
RETENTION=10
REFRESH=5
sudo systemctl status ats-tracker
sudo systemctl start ats-tracker
sudo systemctl stop ats-tracker
sudo systemctl restart ats-tracker
# Last 100 lines
sudo journalctl -u ats-tracker -n 100
# Follow logs in real time
sudo journalctl -u ats-tracker -f
sudo systemctl stop ats-tracker
sudo systemctl disable ats-tracker
sudo rm /etc/systemd/system/ats-tracker.service
sudo systemctl daemon-reload
Get-Service ats-tracker
Start-Service ats-tracker
Stop-Service ats-tracker
Restart-Service ats-tracker
Stop-Service ats-tracker
sc.exe delete ats-tracker
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | / |
No | Web dashboard |
| GET | /settings |
No | Settings page |
| GET | /status |
Optional | Health check — returns {"online":true,"authenticated":true/false} |
| GET | /data |
Yes | All executions and connected clients (JSON) |
| GET | /api/config |
No | Dashboard configuration |
| POST | /api/config |
Yes | Update dashboard configuration |
| GET | /api/stats |
Yes | Execution statistics |
| POST | /query |
Yes | Run database query |
| WS | /ws |
Yes | Client WebSocket (test agents) |
| WS | /ws/dashboard |
No | Dashboard WebSocket (live updates) |
The /status endpoint always responds (no auth required). If a Bearer token is provided, the response indicates whether it is valid:
# Without token
curl -s http://localhost:3000/status
# {"online":true,"authenticated":false}
# With valid token
curl -s -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/status
# {"online":true,"authenticated":true}
Endpoints like /data, /api/stats, and /query require a valid Bearer token. Requests without a valid token receive a 401 Unauthorized response:
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/data
After connecting to /ws, the client must send an authentication message within 10 seconds:
// Client sends:
{"type": "auth", "token": "YOUR_TOKEN"}
// Server responds:
{"type": "auth_response", "success": true, "refresh": 5}
/ws/dashboard endpoint does not require a token and is read-only.
If port 3000 is taken, change it in the configuration or use the port= argument:
./ats-tracker port=8080 token=your_token
# Check logs for errors
sudo journalctl -u ats-tracker -n 50
# Verify config file is readable
sudo cat /etc/ats-tracker/ats-tracker.env
# Verify permissions
ls -la /var/lib/ats-tracker/
# Check service status
Get-Service ats-tracker | Format-List *
# Verify config file
Get-Content "$env:ProgramData\ats-tracker\ats-tracker.env"
http://localhost:PORT locally firstAuthorization: Bearer TOKEN headerDownload the latest binary and run the install command again. It will stop the existing service, preserve your configuration, and restart with the new version.