You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: fix stale documentation across sandbox, comms, and installer guides
- sandbox docs (README/QUICKSTART) and installer README still described the
old Cohere-based code generator; code now uses MiniMax via an
Anthropic-compatible SDK (ANTHROPIC_API_KEY/BASE_URL/MODEL). Also fixed a
wrong service name (postgresdb3 -> timescaledb), wrong sandbox timeout
(30s -> 120s), a personal local path, and a fabricated TimescaleDB docs URL.
- comms-setup.md: fixed docker-compose.jitsi.yml path and the car-side
client instructions, which referenced a compose profile/service that
doesn't exist — the car client is actually a standalone CI-published image.
- LOCAL_STACK.md described a docker-compose.local.yml that has never existed
in this repo; rewrote it to use the real docker-compose.yml with explicit
service selection, and corrected the TimescaleDB port, a nonexistent admin
token file, and a nonexistent GRAFANA_DASHBOARDS_PATH env var.
- data-downloader/README.md: pointed at a .env.example that was removed when
env vars were consolidated into server/installer/.env.example.
- kvaser-bridge/README.md: corrected the WS URL field description (it's the
bridge's own server address, not the dashboard's).
- universal-telemetry-software/README.md: documented the can_uplink and
telemetry_heartbeat Redis channels added by the uplink and heartbeat
liveness-probe features.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JqNzH7QyRpyXVfmvDFksiH
Copy file name to clipboardExpand all lines: server/docs/comms-setup.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,20 +24,21 @@ Base Station RPI Car RPI
24
24
### Base Station
25
25
26
26
```bash
27
-
cd universal-telemetry-software
27
+
cd universal-telemetry-software/deploy
28
28
docker compose -f docker-compose.jitsi.yml up -d
29
29
```
30
30
31
31
Access: `http://<base-ip>:8000`
32
32
33
33
### Car RPI
34
34
35
+
The car client is a standalone headless-browser image published by CI (`ghcr.io/western-formula-racing/data-acquisition/car-jitsi-client`) — it is not part of `docker-compose.jitsi.yml`.
36
+
35
37
```bash
36
38
# Set base station IP first
37
-
export JITSI_URL=http://192.168.1.1:8000
38
-
39
-
cd universal-telemetry-software
40
-
docker compose -f docker-compose.jitsi.yml --profile car up -d car-jitsi-client
Copy file name to clipboardExpand all lines: server/installer/LOCAL_STACK.md
+27-25Lines changed: 27 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,32 +2,33 @@
2
2
3
3
Minimal stack for testing without internet: TimescaleDB, Grafana, and file-uploader only.
4
4
5
+
> There is no separate `docker-compose.local.yml` in this repo — use `docker-compose.yml` (in `server/installer/`) with an explicit service list to start only the three services below.
6
+
5
7
## First-time setup (requires internet)
6
8
7
9
### 1. Pull pre-built images
8
10
9
11
```bash
10
-
cd installer
11
-
docker compose -f docker-compose.local.yml pull
12
+
cdserver/installer
13
+
docker compose pull timescaledb grafana
12
14
```
13
15
14
-
This fetches `timescale/timescaledb:2.17.1-pg16` and `grafana/grafana:latest` from Docker Hub.
16
+
This fetches `timescale/timescaledb:latest-pg16` and `grafana/grafana` from Docker Hub.
15
17
Only needs to be done once, or when you want to update to newer images.
docker compose -f server/installer/docker-compose.yml up timescaledb grafana file-uploader
53
54
```
54
55
55
-
If `GRAFANA_DASHBOARDS_PATH` is not set, the stack falls back to `./grafana/dashboards` (the provisioned dashboards checked into this repo).
56
+
Grafana provisions dashboards from `./grafana/dashboards` (the path baked into `docker-compose.yml`) — there is no `GRAFANA_DASHBOARDS_PATH` env var to point it elsewhere.
56
57
57
58
**Authentication** — the script reads from `.env` automatically:
58
59
-`GRAFANA_API_TOKEN` (preferred — service account token)
@@ -70,15 +71,15 @@ crontab -e
70
71
## Starting the stack (offline)
71
72
72
73
```bash
73
-
cd installer
74
-
docker compose -f docker-compose.local.yml up
74
+
cdserver/installer
75
+
docker compose up timescaledb grafana file-uploader
75
76
```
76
77
77
-
| Service | URL |
78
-
|---------------|----------------------------|
79
-
| Grafana |http://localhost:8087|
80
-
| File Uploader |http://localhost:8084|
81
-
| TimescaleDB |http://localhost:9000|
78
+
| Service | URL |
79
+
|---------------|-------------------------------|
80
+
| Grafana |http://localhost:8087|
81
+
| File Uploader |http://localhost:8084|
82
+
| TimescaleDB | postgresql://localhost:5432|
82
83
83
84
Grafana credentials: `admin` / `password` (or `GRAFANA_ADMIN_PASSWORD` from `.env`)
Copy file name to clipboardExpand all lines: server/installer/README.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,8 +54,9 @@ All secrets and tokens are defined in `.env`. The defaults provided in `.env.exa
54
54
|`SLACK_WEBHOOK_URL`| Incoming webhook for notifications (optional) | empty |
55
55
|`SLACK_DEFAULT_CHANNEL`| Default Slack channel ID for outbound messages |`C0123456789`|
56
56
|`FILE_UPLOADER_WEBHOOK_URL`| Webhook invoked after uploads complete | inherits `SLACK_WEBHOOK_URL`|
57
-
|`COHERE_API_KEY`| Cohere API key for AI-powered code generation | empty |
58
-
|`COHERE_MODEL`| Cohere model to use |`command-a-03-2025`|
57
+
|`ANTHROPIC_API_KEY`| MiniMax API key for AI-powered code generation (Anthropic-compatible SDK) | empty |
58
+
|`ANTHROPIC_BASE_URL`| MiniMax API base URL |`https://api.minimaxi.com/anthropic`|
59
+
|`ANTHROPIC_MODEL`| MiniMax model to use |`MiniMax-M3`|
59
60
|`MAX_RETRIES`| Maximum retries for failed code execution |`2`|
60
61
|`DEFAULT_SEASON_TABLE`| Default season table for telemetry queries |`wfr26`|
61
62
|`DEBUG`| Enables verbose logging for selected services |`0`|
@@ -74,7 +75,7 @@ All secrets and tokens are defined in `.env`. The defaults provided in `.env.exa
74
75
|`file-uploader`|`8084`| Web UI for uploading CAN CSV archives and streaming them into TimescaleDB. |
75
76
|`slackbot`| n/a | Socket-mode Slack bot for notifications and automation (optional). Integrates with code-generator for AI queries. |
76
77
|`sandbox`| n/a | Custom Python execution environment for running AI-generated code and TimescaleDB queries. |
77
-
|`code-generator`|`3030` (internal) | AI-powered code generation service using Cohere. Generates Python code from natural language. |
78
+
|`code-generator`|`3030` (internal) | AI-powered code generation service using MiniMax. Generates Python code from natural language. |
78
79
|`health-monitor`| n/a | Monitors container health and scanner status. |
79
80
|`lap-detector`|`8050`| Dash-based lap analysis web application, tabled until GPS hardware is available. |
80
81
|`startup-data-loader`| n/a | Seeds TimescaleDB with sample CAN frames on first boot. |
@@ -93,7 +94,7 @@ All secrets and tokens are defined in `.env`. The defaults provided in `.env.exa
93
94
-**Service fails to connect to TimescaleDB** – Confirm `POSTGRES_DSN`, `POSTGRES_USER`, and `POSTGRES_PASSWORD` in `.env` are correct. Regenerate the volumes with `docker compose down -v` if you rotate credentials.
94
95
-**Re-import sample data** – Run `docker compose down -v` and restart the stack to re-trigger the data loader.
95
96
-**Slack services are optional** – Leave Slack variables empty or set `ENABLE_SLACK=false` to skip starting the bot during development.
96
-
-**AI code generation not working** – Ensure `COHERE_API_KEY` is set in `.env`. Check logs with `docker compose logs code-generator`.
97
+
-**AI code generation not working** – Ensure `ANTHROPIC_API_KEY` is set in `.env`. Check logs with `docker compose logs code-generator`.
97
98
-**Sandbox execution fails** – Verify sandbox container is running with `docker ps | grep sandbox`. Check logs with `docker compose logs sandbox`.
98
99
99
100
## AI-Powered Code Generation
@@ -108,15 +109,15 @@ The stack includes an AI-powered code generation service that allows natural lan
108
109
```
109
110
110
111
**Features:**
111
-
- Automatic code generation from natural language using Cohere AI
112
+
- Automatic code generation from natural language using MiniMax
112
113
- Self-correcting retry mechanism (up to 2 retries on failure)
113
114
- Secure sandboxed execution environment
114
115
- Auto-generation of plots and visualizations
115
116
- Direct TimescaleDB access for telemetry queries
116
117
117
118
**Setup:**
118
-
1. Add `COHERE_API_KEY` to your `.env` file
119
-
2. Optional: Configure `COHERE_MODEL` and `MAX_RETRIES`
119
+
1. Add `ANTHROPIC_API_KEY` to your `.env` file
120
+
2. Optional: Configure `ANTHROPIC_MODEL` and `MAX_RETRIES`
120
121
3. Services start automatically with the stack
121
122
122
123
See `sandbox/README.md` for detailed documentation.
0 commit comments