Run Olympus on a Raspberry Pi
Homelab Olympus on a Raspberry Pi 5
A Raspberry Pi 5 with 8GB RAM can run Olympus for a small audience (~50 MAU). Useful for: homelab, family identity provider, no-recurring-cost personal cloud.
Hardware
- Raspberry Pi 5 (8GB RAM preferred; 4GB works).
- NVMe HAT with a small NVMe SSD (256GB+).
- PoE+ HAT if you don't want power cabling.
- Reliable power supply (5V/5A USB-C).
Approximate cost: ~$120-180 USD all-in.
OS
Raspberry Pi OS 64-bit (Bookworm) or Ubuntu Server 24.04 for ARM. Either works.
sudo apt update && sudo apt upgrade -y
sudo apt install -y podman podman-composeVerify multi-arch images
Olympus images should support linux/arm64:
docker manifest inspect ghcr.io/olympusoss/athena | jq '.manifests[].platform'If linux/arm64 is listed, you're good. If not, you'll build from source on the Pi (slow, ~30 min for a full build).
Public access
The Pi is behind your home router. Two options:
A: Port forwarding
Forward router ports 80 and 443 → Pi's local IP. Use Dynamic DNS (DuckDNS, Cloudflare DNS API) to update your DNS A record when your home IP changes.
# /etc/cron.hourly/update-dns
curl "https://www.duckdns.org/update?domains=myhome&token=YOUR_TOKEN"B: Cloudflare Tunnel (recommended)
Outbound-only tunnel, no port forwarding required. See Cookbook, Cloudflare in front.
cloudflared tunnel create olympus-pi
cloudflared tunnel route dns olympus-pi ciam.your-domain
cloudflared tunnel run olympus-piPostgres
Self-host on the same Pi (managed Postgres adds cost, defeating the homelab purpose).
podman run -d --name olympus-postgres \
-v olympus-pg-data:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=<strong> \
postgres:17Daily backup to a USB external drive:
# /etc/cron.daily/olympus-backup
podman exec olympus-postgres pg_dumpall > /mnt/backup-drive/$(date +%Y%m%d).sql
find /mnt/backup-drive -name "*.sql" -mtime +30 -deleteFor off-site: rsync to another Pi at a friend's house, or rclone to Backblaze ($1/mo for 100GB).
Power and uptime
- UPS battery hat, Pi 5 has good ones available; ~$30. Bridges brief outages.
- Watchdog,
apt install watchdogand configure to reboot on hangs.
Don't expect 4-nines uptime. This is homelab.
Performance budget
For ~50 MAU with light usage:
- Login flow: ~200ms (including Postgres roundtrips).
- Token introspection: ~50ms.
- Disk I/O: NVMe makes a big difference; don't run on SD card.
Throughput limit: ~5-10 logins/second sustained. Above that, the Pi runs out of CPU.
What this is good for
- Personal SSO across your homelab (Home Assistant, Plex, Jellyfin, Frigate, etc.).
- Family auth provider for shared services.
- Olympus development environment.
What this is NOT good for
- Production customer-facing identity (Olympus on a Pi at home is a liability for paying customers).
- Anything with regulatory compliance (HIPAA, PCI-DSS).
- High availability.
Related
- Deploy, Provider, Bare metal
- Cookbook, Cloudflare in front
- Cookbook, Single VPS deployment, similar principles, real VPS.