Ansible playbook to configure fresh Rev Pi OS for raptor-controls kiosk mode.
| Component | Configuration |
|---|---|
| Password | Standardized to b8rqse (from factory default) |
| Auto-login | Boots directly to desktop as pi user |
| Chromium | Opens raptor-controls.vercel.app on boot |
| raptor-core | Cloned from GitHub, running via docker-compose |
| Docker | Installed, enabled, containers set to restart always |
| GPU | CMA-256 for better graphics performance |
| CPU | 2.4GHz, performance governor |
| Swap | Zram compressed swap enabled |
| Hostname | Unique per Pi (raptor-01, raptor-02, etc.) |
brew install ansibleansible-galaxy collection install community.dockerEdit inventory.yml - each Pi needs its IP and a unique ID:
all:
vars:
ansible_user: pi
hosts:
raptor-01:
ansible_host: 192.168.1.101 # Pi's IP address
raptor_id: "01"
raptor-02:
ansible_host: 192.168.1.102
raptor_id: "02"
raptor-03:
ansible_host: 192.168.1.103
raptor_id: "03"Since each Pi ships with a different factory password, use --ask-pass:
cd raptor-pi-setup
# Configure a single Pi (enter factory password when prompted)
ansible-playbook -i inventory.yml playbook.yml --ask-pass --ask-become-pass --limit raptor-01
# After first run, password is standardized to 'b8rqse'
# So for subsequent runs or other Pis with same password:
ansible-playbook -i inventory.yml playbook.yml -e "ansible_password=b8rqse ansible_become_password=b8rqse"- Connects to Pi with factory password
- Sets standardized password (
b8rqse) - Installs packages (docker, chromium, git, etc.)
- Clones
raptor-corefrom GitHub - Runs
docker-compose up -d --build - Configures auto-login + kiosk browser
- Sets GPU/CPU performance settings
- Sets unique hostname (
raptor-01, etc.) - Reboots Pi
After reboot, Pi will:
- Auto-login as
pi - Open Chromium to
raptor-controls.vercel.app - Have
raptor-corerunning in Docker
- Make changes on your dev Pi
- Update
playbook.ymlto reflect those changes - Commit to GitHub
- Run playbook on new Pis
git add .
git commit -m "Added new feature to Pi setup"
git pushAnsible is idempotent - just run the playbook again:
# Update all Pis
ansible-playbook -i inventory.yml playbook.yml -e "ansible_password=b8rqse ansible_become_password=b8rqse"
# Update specific Pi
ansible-playbook -i inventory.yml playbook.yml --limit raptor-02 -e "ansible_password=b8rqse ansible_become_password=b8rqse"If you just pushed changes to raptor-core and want to update Pis:
ansible all -i inventory.yml -m shell -a "cd ~/raptor-core && git pull && docker-compose up -d --build" -b -e "ansible_password=b8rqse ansible_become_password=b8rqse"- Make sure Pi is on the network
- Check IP address is correct in inventory
- Try:
ping <pi-ip-address>
- Rev Pis ship with unique passwords printed on label
- Use
--ask-passand enter the password from the label
- SSH in manually:
ssh pi@<ip> - Check logs:
cd ~/raptor-core && docker-compose logs