Before starting, flash the correct OS image:
| OS Image | Compatibility | Download |
|---|---|---|
| Raspberry Pi OS Lite (32-bit) | All Pi models (recommended) | Download |
| Raspberry Pi OS Lite (64-bit) | Pi 3/4/5 only (more RAM usage) | Download |
| DO NOT USE — interferes with kiosk mode | — |
Why Lite? DataOrb creates its own minimal display server. The Desktop version conflicts with kiosk mode.
The Ansible playbook in ansible/ handles full provisioning — OS config, dependencies, services, kiosk mode, and OTA. See the playbook README for details.
git clone https://github.com/internetblacksmith/dataorb.git
cd dataorbBackend:
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtFrontend:
cd frontend
npm install
npm run buildRun:
cd backend
source venv/bin/activate
python3 app.pyConfigure via the web interface at http://<pi-ip>/config (PostHog tab), or manually:
cd backend
cp device_config.example.json device_config.json
# Edit device_config.json with your PostHog API key and Project IDNote: The app reads credentials from
device_config.json, not.envfiles.
On a provisioned Pi:
sudo systemctl start pi-analytics-backend pi-analytics-display
sudo systemctl status pi-analytics-backend- Dashboard:
http://<pi-ip>(port 80 in production, 5000 in dev) - Configuration:
http://<pi-ip>/config - Kiosk shortcut:
Ctrl+Shift+Copens config
sudo ~/dataorb/config/hyperpixel-setup.sh
sudo reboot- Go to
http://<pi-ip>/config - Click "Updates" tab
- Enable OTA updates and select branch
- Save configuration
OTA endpoints require admin authentication:
# Get an auth token (localhost only)
TOKEN=$(curl -s http://localhost:5000/api/auth/token | python3 -c "import sys,json; print(json.load(sys.stdin)['token'])")
# Check for updates
curl -H "Authorization: Bearer $TOKEN" http://localhost:5000/api/admin/ota/check
# Apply update
curl -X POST -H "Authorization: Bearer $TOKEN" http://localhost:5000/api/admin/ota/updatesudo systemctl status pi-analytics-backend
sudo systemctl status pi-analytics-display
sudo journalctl -u pi-analytics-backend --no-pager -n 50curl http://localhost:5000/api/health
curl http://localhost:5000/api/stats/classicsudo systemctl restart pi-analytics-backend pi-analytics-displaypython3 scripts/network-manager.py status
python3 scripts/network-manager.py scan
python3 scripts/network-manager.py start-ap
python3 scripts/network-manager.py stop-apFalls back to AP mode (DataOrb-Setup) when no network is available.
python3 dev.pyStarts both the React dev server and Flask in debug mode.
Once installed, DataOrb will:
- Auto-start on boot
- Display analytics dashboard in kiosk mode
- Auto-update from Git (if OTA enabled)
- Provide web configuration at
/config