ArduinoPlayground/server
2026-10-24 20:19:28 +02:00
..
public Add configurable API activity columns 2026-10-24 20:19:28 +02:00
scripts Add authenticated payload API server 2026-10-24 19:50:18 +02:00
src Add configurable API activity columns 2026-10-24 20:19:28 +02:00
.dockerignore Add authenticated payload API server 2026-10-24 19:50:18 +02:00
Dockerfile Add authenticated payload API server 2026-10-24 19:50:18 +02:00
nginx.conf Add authenticated payload API server 2026-10-24 19:50:18 +02:00
package-lock.json Add authenticated payload API server 2026-10-24 19:50:18 +02:00
package.json Add authenticated payload API server 2026-10-24 19:50:18 +02:00
README.md Identify API callers and filter dashboard traffic 2026-10-24 20:13:31 +02:00

Arduino Playground-server

Compose-stacken leverer:

  • webdashboard på /;
  • REST API på /api.

Start

Opret den lokale .env fra WiFi-status-sketchens secrets og start stacken:

npm --prefix server run configure
docker compose up -d --build

Med standardopsætningen åbnes dashboardet på http://localhost:8152.

API

Læsning er offentlig:

GET /api/health
GET /api/activity
GET /api/payloads
GET /api/payloads/:id

Skrivning kræver Authorization: Bearer <API_BEARER_TOKEN>:

POST   /api/payloads
PATCH  /api/payloads/:id
DELETE /api/payloads/:id

Eksempel på body til POST:

{
  "topic": "r4/status",
  "payload": {
    "temperature": 22.4,
    "online": true
  }
}

Boardet bør identificere sig på alle kald. Aktivitetsdashboardet prioriterer X-Device-ID, derefter X-Client-Name og til sidst klientens IP-adresse:

X-Device-ID: uno-r4-wifi-01
X-Client-Name: wifi-status-sketch

Dashboardets egne forespørgsler markeres internt og gemmes ikke i aktivitetsloggen. GET-kald uden X-Device-ID eller X-Client-Name udelades også, så anonyme dashboard- og overvågningskald ikke overdøver boardtrafikken.

WiFi-oplysningerne ligger kun i den lokale .env til brug for den kommende board-sketch. De sendes ikke til browseren eller API-klienter.