CookbookDeployment
Single $5 VPS deployment
Run Olympus on the cheapest legitimate VPS
For a personal or small-org deployment, a single $5/month VPS is enough. This recipe shows the cheapest viable setup.
Provider choice
Hostinger KVM 1 at ~€5/month gives 4GB RAM, 1 vCPU, 50GB NVMe storage. Sufficient for:
- Olympus stack with all 14 containers.
- Self-hosted Postgres on the same VPS.
- Up to ~500 MAU comfortably.
Alternative: DigitalOcean's $6 Basic Droplet, slightly more expensive but better tooling.
Setup
Use Daedalus's Hostinger or DigitalOcean Provider step. Choose:
- Database: Self-hosted (uses the same VPS).
- Email: Resend free tier (3000/month).
- DNS: anywhere with API access (Cloudflare free tier works).
Total monthly: ~€5 + DNS (typically free).
Trade-offs vs managed Postgres
| Single VPS w/ self-hosted Postgres | Single VPS w/ managed Postgres (Neon) | |
|---|---|---|
| Monthly cost | ~€5 | ~€5 + $0-5 (Neon) |
| Backup responsibility | You | Neon retains 7 days |
| Postgres maintenance | You | Neon |
| Scale headroom | Limited by VPS RAM | Independent |
| RPO on disaster | Last backup | Last commit |
For fewer than 100 MAU, single-VPS is fine. Above that, move Postgres to Neon as the first scaling step.
Backups even on a tiny VPS
# /etc/cron.daily/olympus-backup
#!/bin/bash
podman exec olympus-postgres pg_dumpall -U postgres | gzip > /backups/$(date +%Y%m%d).sql.gz
find /backups -name '*.sql.gz' -mtime +14 -delete
rclone copy /backups/$(date +%Y%m%d).sql.gz remote:olympus-backups/See Operate, Backups (Postgres).
Monitoring
Free-tier monitoring:
- UptimeRobot, 50 monitors free. Set up:
GET https://ciam.<domain>/.well-known/openid-configurationGET https://iam.<domain>/.well-known/openid-configurationGET https://<domain>/(Site)
- Hostinger / DigitalOcean dashboard, VPS-level metrics.
When to outgrow
Symptoms:
- VPS RAM consistently >80% used.
- Postgres slow queries (Hera flow latency spikes).
- Container restarts due to memory pressure.
Then: bump to a larger VPS (~€10/month for double the RAM), or move Postgres to managed.