-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Goal
Build a ready-to-flash Raspberry Pi OS image with everything pre-installed. Flash the SD card, boot the Pi, and it connects to the server automatically — no manual setup.
How it works
The image is generic. Robot-specific config is set in /boot/veezbot.config.json (FAT32 partition, editable before flashing):
{
"serverUrl": "https://api.veezbot.com",
"robotToken": "xxx"
}On first boot:
robot.service(systemd) startsupdate.shpulls the latest tarball fromveezbot/robotreleases- Robot connects to the server
Repo structure
veezbot/image
├── config/
│ └── veezbot.config.json # default config template
├── scripts/
│ ├── update.sh # pull latest veezbot/robot tarball + restart
│ └── robot.service # systemd unit
├── stage/ # pi-gen customisation
│ └── 00-install/
│ └── 01-run.sh # install Node.js, copy scripts, enable service
└── .github/workflows/
└── build.yml # build .img.gz → publish as GitHub release
Tasks
- Set up pi-gen as base (official Raspberry Pi OS build tool)
- Write
01-run.shstage: install Node.js, copy scripts, enable systemd service - Write
update.sh: download latest tarball fromveezbot/robotreleases viagh - Write
robot.service: systemd unit with auto-restart - Handle
/boot/veezbot.config.jsonconfig loading at boot - GitHub Actions workflow: build image → publish
robot-pi-vX.X.X.img.gzas release - Test: flash image, verify robot connects automatically
Notes
- Image is generic — token and server URL are set in
/boot/veezbot.config.jsonbefore flashing - Robot client updates are independent:
update.shalways pulls latest fromveezbot/robot - Build tool:
pi-gen(same tool used to build official Raspberry Pi OS)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels