Instruction file imported from wilfriedE/buoy (
.cursor/rules/project-conventions.mdc). Copyright stays with the author.
Buoy Project Conventions
Build & Scripts
- UV manages Python scripts. Use
uv run <command>for:build,download-base,build-image,create-manifest - Build outputs go to
build/(gitignored):buoy_build.img,docker_images.tar,buoy.rpi-imager-manifest - Base images go to
image/base/(gitignored). Download viauv run download-base - Shell scripts in
image/handle low-level ops (Docker, chroot, parted). Python wrappers inimage/*.pyexpose them as UV entry points
Tech Stack
- Ansible for Pi configuration (playbook runs on first boot)
- Docker for ROS 2 (rosbridge); host networking for DDS multicast
- hostapd + dnsmasq for WiFi AP (native, not Docker)
- Node.js for command center (pnpm)
Key Paths
ansible/group_vars/all.yml– hostname, WiFi, ROS, portsansible/playbook.yml– role orderimage/build-with-docker.sh– main build script (called byuv run build-image)docker/compose.yml– ROS container definition