2026-09-13 · T2 Team · 11 次阅读

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
  • 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

  • Free
  • 5 years of security updates
  • Best Docker support
  • 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:

  • Free for personal
  • Zero-config (no DDNS, no port forwarding)
  • End-to-end encrypted (WireGuard)
  • Faster than VPN because it's mesh
  • 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

  • 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)
  • For those cases, Hetzner Cloud ($4/mo) is the best VPS for self-hosted apps.

    TL;DR

    For solo founders with stable internet:

  • 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+

*Published 2026-09-13 by T2 Team · 14 min read*

📚 相关阅读

← 返回文章列表