After 2 years of running a home server for personal use, here's what actually drove uptime from ~95% to 99.9%. Spoiler: it's mostly boring.
What I wanted
My home server runs:
- Plex (media streaming)
- Nextcloud (file sync)
- Backup target for laptops
- Personal VPN (WireGuard)
- Home Assistant
- Misc Docker containers (~15 of them)
Total monthly cost target: under $50/year in additional electricity + subscriptions.
What broke in year 1
I tracked every outage in year 1. Here's the breakdown:
| Cause | Outages | Total downtime |
|---|---|---|
| Hard drive failure | 2 | 18 hours |
| Power outage > 30 min | 1 | 6 hours |
| UPS battery died | 1 | 4 hours |
| Software update bricked OS | 2 | 3 hours |
| Network switch failed | 1 | 2 hours |
| Accidental reboot | 3 | 30 min |
| Total | 10 outages | ~34 hours |
That's ~96.1% uptime. Below my target.
What I fixed
1. Hard drives
- Bought drives from different batches (drive failures correlate within batches — when one fails, others from the same batch often fail soon after)
- Set up SMART monitoring with smartd. Email alerts on reallocated sectors > 5
- Annual drive replacement schedule: replace oldest drive yearly as preventive maintenance
- Result: 0 drive failures in year 2
2. UPS
- Bigger UPS: APC 1500VA (was 600VA)
- Configured shutdown on low battery: NAS shuts down cleanly when UPS reports < 30% battery
- Tested monthly: pull the plug, confirm graceful shutdown
- Result: 0 unplanned shutdowns in year 2
3. Power outage > 30 min
- Generator transfer switch for the whole circuit. Loud but works.
- Solar + battery backup: overkill for me, but a friend uses this. Adds $5k upfront.
- Result: 1 outage > 30 min in year 2, lasted 2 hours, handled gracefully
4. Software updates
- Don't auto-update OS (DSM in my case). Monthly manual updates with backup before.
- Pin Docker image versions, update one at a time
- Have a recovery plan: know how to reinstall each service from scratch. Document it.
- Result: 1 minor outage in year 2 (5 min for a config error I caught immediately)
5. Network switch
- Bought a managed switch with link aggregation and dual power inputs
- Result: 0 network failures in year 2
6. Accidental reboots
- Removed physical power button access (used smart plug instead)
- Result: 0 accidental reboots in year 2
Year 2 totals
| Cause | Outages | Total downtime |
|---|---|---|
| Power outage > 30 min | 1 | 2 hours |
| Planned maintenance | 2 | 1 hour |
| Total | 3 outages | ~3 hours |
That's 99.97% uptime. Above 99.9% target.
What I'd do differently
- Skip the home automation obsession early on. I burned a month on Home Assistant before realizing my family didn't use it.
- Get the bigger UPS first. The 600VA was a false economy.
- Document everything in plain English for my future self. After 6 months I forgot why I configured half the things.
- Test backups quarterly, not annually. Found a corrupted backup in year 1 that I hadn't noticed for 4 months.
Cost summary
- Year 1 hardware: NAS $800 + drives $400 + UPS $200 + switch $100 = $1,500
- Year 1 ongoing: electricity $80 + backup cloud $60 = $140/year
- Year 2 extra: bigger UPS $300 + smart plug $30 = $330
- Total 2-year cost: $1,870 ($935/year)
- Compared to renting cloud equivalent: ~$1,200/year, savings are real after year 2
What surprised me
- Hardware failure is rare. Most outages are self-inflicted.
- Software updates cause more outages than hardware failures if you're not careful.
- Documentation matters more than monitoring. When something breaks at 2am, you want to read your own docs, not debug from scratch.
- UPS is the single best investment. Worth every penny.
What I monitor
I have Uptime Kuma pinging:
- Each Docker container
- The NAS itself (via SNMP)
- Network gateway
- UPS battery level
- Drive SMART values (daily check)
If anything's wrong, I get a Telegram notification.
My final setup
- NAS: Synology DS920+ with 4× 8 TB drives (SHR)
- UPS: APC 1500VA
- Switch: Netgear GS308T (managed)
- Power: smart plug on the NAS (no physical button)
- Software: DSM 7.2, Docker containers, monthly update cycle
- Backups: local + B2 (encrypted), quarterly restore tests
If I had to start over, I'd buy this exact setup. After 2 years, it's been rock solid.
Should you self-host?
Yes if:
- You have stable home internet
- You enjoy tinkering
- You want data ownership
- You're willing to spend 2 hours/month on maintenance
No if:
- You need 100% uptime (cloud SLA beats home)
- You can't tolerate downtime during outages
- You don't want to learn Docker/Linux basics
For most personal use cases, self-hosting is fine. The outages are rare and you get used to them.
Top comments (0)