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.