A configuration script that takes a fresh Raspberry Pi OS Lite (64-bit) installation to a fully configured development server.
- Raspberry Pi with 64-bit OS Lite installed
- SSH access enabled
- Internet connectivity
- At least 2GB free disk space
curl -sL https://raw.githubusercontent.com/MannyPeterson/setup/master/setup.sh | sudo bashcurl -sL https://raw.githubusercontent.com/MannyPeterson/setup/master/setup.sh | sudo bash -s -- --hostname mypi| Category | Configuration |
|---|---|
| System | Locale (en_US.UTF-8), Timezone (America/Chicago), GPU memory (16MB) |
| Packages | build-essential, cmake, make, gh, jq, vim, git, tree, openjdk-21-jdk-headless, powerline |
| SSH | Key-only authentication, root login disabled, empty passwords disabled |
| Security | Sudo requires password |
| Interfaces | SSH enabled; SPI, I2C, Serial, 1-Wire, Remote GPIO disabled |
| Docker | Installed and configured, user added to docker group |
| Gradle | Latest version installed to ~/gradle |
| Claude Code | Installed via official installer |
| PostgreSQL | Docker container created and started |
| Shell | Powerline prompt, PATH configured for ~/bin and ~/gradle/bin |
After the script completes:
- Log out and back in for group changes to take effect
- Reboot to apply GPU memory and kernel changes
- Run
sm listto see available services
The script installs a service manager (sm) for controlling services:
sm postgres start # Start PostgreSQL container
sm postgres stop # Stop PostgreSQL container
sm postgres status # Check if running
sm postgres info # Show connection details
sm postgres psql # Connect via psql client
sm gradle status # Check Gradle daemon status
sm list # List all services
sm help # Show help- Script is idempotent - safe to run multiple times
- Designed for headless operation (no GUI dependencies)
- Wired Ethernet assumed (WiFi country set to US to avoid warnings)