Skip to content

Raspberry Pi

Raspberry Pi is AI Butler’s favorite deployment target. A Pi 4 (4GB) handles a dozen messaging channels, smart home control, memory search, and the web chat simultaneously — all running offline if you pair it with Ollama on a beefier machine.

  • Raspberry Pi 4 (4GB or 8GB) or Pi 5
  • 32GB+ microSD card (or better, an SSD via USB 3)
  • 64-bit Raspberry Pi OS (Bookworm or newer)
  • Optional: a separate machine for Ollama if you want fully-local AI

Use Raspberry Pi Imager and pick Raspberry Pi OS (64-bit). In the advanced options, set a hostname, enable SSH, and configure WiFi.

SSH into the Pi and download the ARM64 release:

Terminal window
cd /tmp
curl -sSL https://github.com/LumabyteCo/aibutler/releases/latest/download/aibutler_Linux_arm64.tar.gz | tar xz
sudo mv aibutler /usr/local/bin/

Verify:

Terminal window
aibutler version
Terminal window
sudo useradd --system --home /var/lib/aibutler --create-home aibutler
sudo mkdir -p /etc/aibutler
sudo chown aibutler:aibutler /var/lib/aibutler /etc/aibutler

Create /etc/systemd/system/aibutler.service:

[Unit]
Description=AI Butler
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=aibutler
Group=aibutler
WorkingDirectory=/var/lib/aibutler
ExecStart=/usr/local/bin/aibutler run --config /etc/aibutler/config.yaml
Restart=on-failure
RestartSec=5s
# Hardening
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/var/lib/aibutler
CapabilityBoundingSet=
[Install]
WantedBy=multi-user.target

Enable and start:

Terminal window
sudo systemctl daemon-reload
sudo systemctl enable --now aibutler
sudo systemctl status aibutler
Terminal window
sudo -u aibutler aibutler vault set anthropic_api_key sk-ant-...

Or use a fully-local setup pointing at Ollama on a separate machine:

/etc/aibutler/config.yaml
settings:
model_provider: ollama
configurations:
model:
ollama:
base_url: http://ollama-server.local:11434
model: llama3.3

The web chat is at http://aibutler.local:3377 (mDNS) or the Pi’s IP. Connect messaging channels via the guides in Channels.

MicroSD cards are the #1 bottleneck. A cheap USB 3 SSD enclosure with a 250GB SATA SSD transforms a Pi 4 — boot times, database writes, and backup performance all improve dramatically.

AI Butler already sets WAL mode, but on a Pi you can push it further:

configurations:
database:
cache_size_mb: 64 # default 32
mmap_size_mb: 256 # default 64
wal_autocheckpoint: 1000

Running an LLM on the Pi itself is slow. Instead, run Ollama on a more powerful machine (NAS, old desktop, Mac mini) and point AI Butler at it over your LAN. The Pi handles channels, memory, and tools; the other machine handles inference.

If you run batch jobs (summaries, backups), schedule them overnight:

Terminal window
aibutler schedule create --name nightly-digest --cron "0 3 * * *" --prompt "..."
  • Use the official Pi 4 USB-C power supply (3A) — undervoltage causes silent corruption
  • Pi 5 needs the official 5A supply
  • A passive heatsink is enough for messaging-only workloads; add a fan if you push the CPU with Ollama or media processing

Back up /var/lib/aibutler/aibutler.db nightly to another machine:

Terminal window
# On the Pi, via rsync over SSH
rsync -av /var/lib/aibutler/aibutler.db backup-host:/srv/backups/pi-aibutler/

Or use the built-in remote backup target pointed at a MinIO instance on your NAS.