fleet-test / README.md
Gaรซlle Lannuzel
remove read-repos from README
5023a2e
|
Raw
History Blame Contribute Delete
1.68 kB
---
title: Grabette Fleet
emoji: ๐ŸŒ
colorFrom: yellow
colorTo: indigo
sdk: docker
app_port: 7860
pinned: false
hf_oauth: true
hf_oauth_expiration_minutes: 480
---
# Grabette fleet โ€” operator dashboard + command broker
A **Docker** HuggingFace Space (runs fine on the **free CPU tier**). It is the
operator dashboard *and* an in-memory command broker for one user's fleet.
```
operator (this Space, HF login) โ”€โ”€queue commandโ”€โ”€โ–ถ in-memory broker โ—€โ”€โ”€short-pollโ”€โ”€ device (Pi)
โ—€โ”€โ”€device statusโ”€โ”€ (Bearer hf_token)
device captured data โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ HF dataset (durable)
```
- **Operator** signs in with HuggingFace (native Space OAuth) and controls only
their own devices.
- **Devices** connect outbound with `Authorization: Bearer <hf_token>`; the Space
resolves the owner via `whoami` and groups devices by HF identity.
- **Transport** is short-polling โ€” which also keeps the free Space awake (sleep
is timed from the last request).
State is in-memory: a restart drops it and devices re-register on their next
poll. Durable data (device history, captured datasets) lives in HF datasets, not
here.
## Duplicate for your own fleet
One Space = one owner = one fleet. Click **โ‹ฎ โ†’ Duplicate this Space** to run your
own โ€” `hf_oauth` is auto-provisioned, so there's nothing to configure. Then point
your devices at it with `GRABETTE_RELAY_URL=https://<you>-grabette-fleet.hf.space`.
Devices are run with `device_app.py` from the grabette_connector project.