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) starts
update.sh pulls the latest tarball from veezbot/robot releases
- 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
Notes
- Image is generic — token and server URL are set in
/boot/veezbot.config.json before flashing
- Robot client updates are independent:
update.sh always pulls latest from veezbot/robot
- Build tool:
pi-gen (same tool used to build official Raspberry Pi OS)
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/robotreleasesRepo structure
Tasks
01-run.shstage: install Node.js, copy scripts, enable systemd serviceupdate.sh: download latest tarball fromveezbot/robotreleases viaghrobot.service: systemd unit with auto-restart/boot/veezbot.config.jsonconfig loading at bootrobot-pi-vX.X.X.img.gzas releaseNotes
/boot/veezbot.config.jsonbefore flashingupdate.shalways pulls latest fromveezbot/robotpi-gen(same tool used to build official Raspberry Pi OS)