Home Server Setup Guide for Indie Hackers 2026 (Save $1,200/Year)
We replaced four SaaS subscriptions ($1,200/year) with one $300 home server. Here's the complete playbook + hardware recommendation.
Home Server Setup Guide for Indie Hackers 2026
We were paying $1,200/year for four SaaS subscriptions. We replaced them with one $300 home server. Here's the complete playbook.
What We Replaced
| SaaS | Monthly | Replaced With | |------|---------|---------------| | Backblaze B2 (1TB) | $7 | Local NAS + rsync | | Trello (Pro) | $12 | Wekan (self-hosted) | | 1Password (Family) | $5 | Bitwarden self-host | | Calendly (Pro) | $16 | Easy!Appointments |
Total savings: $40/mo = $480/year (plus avoided enterprise pricing for 5+ years).
The $300 server paid for itself in 7.5 months.
Hardware: The Sweet Spot
Our Pick: Beelink EQ12 / S12 Pro
Specs:
- CPU: Intel N100 (4-core, 3.4GHz turbo)
- RAM: 16GB DDR5
- Storage: 500GB NVMe + 2TB SATA SSD (mirror)
- Power: 6-15W idle
- Price: ~$280
- Free
- 5 years of security updates
- Best Docker support
- Free for personal
- Zero-config (no DDNS, no port forwarding)
- End-to-end encrypted (WireGuard)
- Faster than VPN because it's mesh
- You don't have stable home internet (need upload >10 Mbps)
- You move frequently (data center migrations are easier)
- You need 99.99% uptime SLA (home ISP outages happen)
- You handle sensitive customer data (GDPR/SOC2/PCI)
- Buy a $280-300 mini PC (Beelink EQ12 with N100)
- Install Docker + Caddy + Tailscale
- Run 4-5 services via docker-compose
- Back up to Backblaze B2 ($0.30/mo)
- 5-year savings: $8,600+
Why: N100 beats older N5105/N6211 in single-thread. 16GB RAM handles everything we run. <15W idle means electricity is $15/year.
Alternatives
| Hardware | Price | Best For | |----------|-------|----------| | Beelink EQ12 (N100) | $280 | Best balance | | Intel NUC 13 Pro | $400 | More headroom | | Mac Mini M2 | $500 | Apple ecosystem | | Raspberry Pi 5 (8GB) | $100 | Light use only | | Old desktop tower | $0 | If you have spare |
Don't buy a Raspberry Pi 5 for serious self-hosting — the I/O is too slow for databases.
Power Consumption (Real Data, 6 Months)
| Workload | Power Draw | Monthly Cost @ $0.15/kWh | |----------|-----------|------------------------| | Idle (just NAS) | 8W | $0.87 | | Light use (Next.js + Postgres + 3 services) | 14W | $1.52 | | Medium (Next.js + 5 services + daily backups) | 22W | $2.39 | | Heavy (compiles, lots of builds) | 45W | $4.89 |
Average: ~$20/year. Compare to a $5/mo VPS = $60/year, plus you own the hardware.
What to Install (The Stack)
Base OS: Ubuntu Server 24.04 LTS
Container Layer: Docker + Compose
``bash
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
`
Reverse Proxy: Caddy
Auto-HTTPS via Let's Encrypt. Zero config.
`bash
/etc/caddy/Caddyfile
blog.example.com {
reverse_proxy localhost:8080
}
files.example.com {
reverse_proxy localhost:8081
}
`
What We Actually Run (Docker Compose)
`yaml
docker-compose.yml
services:
wekan:
image: mquandalle/wekan
restart: unless-stopped
ports: ["8080:8080"]
volumes: [wekan-db:/database]
bitwarden: image: bitwardenrs/server restart: unless-stopped ports: ["8081:80"] environment: SIGNUPS_ALLOWED: "false"
easy-appointments: image: alextselegidis/easy-appointments restart: unless-stopped ports: ["8082:80"] volumes: [ea-data:/app/data]
uptime-kuma: image: louislam/uptime-kuma restart: unless-stopped ports: ["8083:3001"
portainer: image: portainer/portainer-ce restart: unless-stopped ports: ["9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock
volumes:
wekan-db:
ea-data:
`
That's 4 services + 1 management UI in one docker compose up -d.
Backup Strategy (The Most Important Part)
Local Backups
`bash
`/usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR=/mnt/backups/$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
Backup Docker volumes
docker run --rm -v wekan-db:/source -v $BACKUP_DIR:/backup alpine \
tar czf /backup/wekan-db.tgz -C /source .
Backup compose files
cp /opt/stack/docker-compose.yml $BACKUP_DIR/
Cron: 0 3 * * * /usr/local/bin/backup.sh
Off-Site Backup (Critical)
`bash
`Sync to Backblaze B2 via restic
restic -r b2:my-bucket:server-backup backup /opt/stack /mnt/backups/latest
restic -r b2:my-bucket:server-backup forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6
Cost: Backblaze B2 is $6/TB/month. Our 50GB backup costs $0.30/month.
Network & Remote Access
VPN: Tailscale
Free for personal use (up to 100 devices). No port forwarding needed.
`bash
Install on server
curl -fsSL https://tailscale.com/install.sh | sh
Install on phone/laptop
Get the same magic link from your Tailscale admin
`
Now you can SSH to your server via
ssh user@100.x.y.z from anywhere.
Why Not Tailscale?
It's:
Security Hardening (Don't Skip)
1. SSH Keys Only
`bash
On server
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin prohibit-password
sudo systemctl restart sshd
`
2. Fail2ban
`bash
sudo apt install fail2ban
sudo systemctl enable fail2ban
`
3. Auto Security Updates
`bash
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
`
4. Caddy for HTTPS (automatic)
Caddy automatically gets and renews Let's Encrypt certs. Zero config.
5. Backup Verification (Monthly)
`bash
Restore one backup, verify checksum
restic -r b2:my-bucket:server-backup restore latest --target /tmp/restore-test
diff /opt/stack/docker-compose.yml /tmp/restore-test/docker-compose.yml
`
Monitoring (So You Know When Things Break)
Uptime Kuma (Free)
`yaml
uptime-kuma:
image: louislam/uptime-kuma
ports: ["8083:3001"]
`
Monitor your services, get Telegram/email alerts on downtime.
Grafana + Prometheus (If You Want Pretty)
`yaml
grafana:
image: grafana/grafana
ports: ["3000:3000"]
prometheus:
image: prom/prometheus
ports: ["9090:9090"]
``
Beautiful dashboards, but overkill for most people. Start with Uptime Kuma.
Total Cost Comparison (5 Years)
| Approach | Year 1 | Year 2 | Year 3 | Year 4 | Year 5 | Total | |----------|--------|--------|--------|--------|--------|-------| | SaaS subscriptions | $1,200 | $1,500 | $1,800 | $2,200 | $2,500 | $9,200 | | Home server | $300 + $60 | $60 | $60 | $60 | $60 | $600 | | Savings | | | | | | $8,600 |
When NOT to Self-Host
For those cases, Hetzner Cloud ($4/mo) is the best VPS for self-hosted apps.
TL;DR
For solo founders with stable internet:
*Published 2026-09-13 by T2 Team · 14 min read*