Hacker News new | past | comments | ask | show | jobs | submit login
Upgrading my home server (earth.li)
70 points by walterbell 7 months ago | hide | past | web | favorite | 66 comments

For those wanting a quiet home server for cheap, go for a well-ventilated tower PC, best with passive CPU cooler and a quiet case and power supply fan. You can put that box in a bedroom and almost never see it/hear it.

Rackmount server in home people so often brag about on the Internet is a very loud and impractical way to run network services from home, unless you have separate room for it.

For both cheap and easy, pick up a used ThinkPad. Comes witj built in console too, normally a feature only found in high end blade racks!

And a built-in UPS.

But be careful of cooling, if you want to run it with the lid closed.

Also, if you want to run RAID mirroring, a used ThinkPad might only have one 2.5" drive bay, and no M.2. But if it has an UltraBay of some kind, you can buy a SATA adapter.

(Personally, the last 24/7 data (not compute) server I built for home, I considered a ThinkPad, and I also previously had IBM 1U and beige box Linux servers, but decided to go with a mini-ITX Atom board designed for fanless use, and set up RAID with fairly cool-running and homogeneous drives. It worked very well, and silently. There was one drive failure (possibly because I stacked them in a bracket in a small ITX case rather found a way to space them out for better cooling), but it kept running for years more after I replaced the drive, and eventually I sold it.)

Re cooling, its often good to mount them on their side with cover partly open.

For a home server, you usually need backups i dependent of mirroring but not the availability optimization and associated operational complexity of raid-1.

The Supermicro 2U I used for a home server, sounded like a jet engine on take-off out of the box. But you'll find fan settings in the bios to experiment with and as long as the server's temps can handle it, you can slow the fans to almost imperceptible levels. And this is mid-2000s technology (SS-6025 and X7DB mboard). Today, I'd be looking at some of the small form-factor servers, like the Intel NUC.

Agreed, my take on the same subject although from 2 years old, but I would make the same decisions still (though maybe switch to AMD Ryzen mobo and CPU;-)

The Fractal Design Node 304 box is awesome. It's quiet, can host 6-7 disks although it doesn't have hotswap design. In practice opening the box and switching disks is not that common problem and the design makes the HDDs quieter than hotswap bays.


> Rackmount server in home people so often brag about on the Internet is a very loud and impractical way to run network services from home, unless you have separate room for it.

I definitely wouldn't have my rackmount server in my bedroom, but instead I have it in a separate office/study room.

If you get decent fans (like Noctua) it's definitely not that loud, though the main problem is it's hard to find a cheap power supply that has decent (or replaceable) fans for a 2U rack. You can replace the fans on PSUs by cutting wires and soldering but that's always felt like a bad idea to me.

There is nothing wrong with cutting wires and soldering and for fans you don't even need any soldiering. Although if you were to solder, speed of all those brushless dc fans can be easily controlled via voltage. Meaning that dc-dc step down converter (costs less than $1) is usually enough to make a fan quiet or just putting it on a 5v rail instead of 12v, although that might make it too slow to be usable. Also PC fans vendors suck, they overprice fans like crazy, sort of similar how expensive audio equipment is overpriced for audiophiles. Just use fans from a decent non-PC fans vendor, like Sunon.

I wouldn't use rackmount cases at home though, they are not designed for low noise at all and fans are not the only problem. Noise from a bunch of vibrating HDDs is not as easily fixable as from fans, not in a rackmount case.

Some people aren't going for cheap and quiet though. People who buy rack mounted home servers are doing it as a hobby unto itself.

Why not go for an RPi or mintbox? Both can be passively cooled.

And you can use an RPi to switch on a "real" server in case you need it.

I've been trying to justify that, but it's just too limited for what I want. I basically want to run ZFS, which is a bit RAM hungry, as well as some other processes. So, I basically want 4GB minimum, preferably 8. The latest RPi has 4GB RAM with me option to expand, so it might barely fit the bill for now. I'm not really a fan of the USB interface for driving hard drives, not to mention having to get separate power figured out, and the RPi 4 also runs a little hot.

So I have been looking at other options, like the Nano Pi m4 and the RockPro64, both of which have SATA expansion options. However, to get everything I'll need, it'll cost $100+ and only be a short term solution anyway.

So, I've decided to just get another stick of RAM for my old desktop (runs 4GB right now) and just eat the extra memory usage.

Perhaps check out up-squared systems. https://up-board.org/

There are pretty good pre-built current-gen passively-cooled pcs, for example Airtop 2/3 https://fit-iot.com/web/

I have my doubts over bedroom quiet if you have hard drives in it. Ssd unfortunately still too expensive for redundant home storage use.

Mine is in the kitchen for exactly that reason. No matter how quiet it is, any sort of constant noise like that of an hdd drives me nuts. But I fully agree normal desktop tower is the way to go. Enough space inside so it doesn't easily overheat and lots of room for expansion.

Using it for routing with DNS block list, media file server and off site backup.

One thing I can recommend after decades of fiddling around with home servers: If you don't need it for the high availability, don't use raid 1. Raid is not a backup. Use another drive, preferably larger, and run something like dirvish or Borg once a day or however often you see fit in your case.

I have a Fractal Design Define R5 case (https://www.fractal-design.com/home/product/cases/define-ser...) in my living room at the side of my television where I sit a few feet away in a small apartment and can not hear it unless I put my head right next to it, then I can just about hear the case fans.

It's fitted with 4 x 4TB WD Reds, a stock AMD Ryzen 2600 cooler, Corsair RM850x PSU and the cheapest graphics card I could find with a HDMI out, the graphic card has a small fan. I also have a HBA card I modded adding a small Noctua fan as they are passively cooled and designed to go in rack mount cases where they have high airflow passing over them so get to hot in a desktop.

The case has rubber mountings for the hard drives and sound reducing material on the side panels.

I built it to be quiet but didn't go massively out my way or spend massively to make it quieter i.e. I choose a good case but have stock case fans, stock cpu cooler and choose a PSU where the fan only spins up under load which I'll never hit.

It's not to hard to build something that for all intent and purposes is silent as long as you don't pimp it out with the latest fastest graphic cards, have it maxed out 24/7, or go small.

I have the same case, similar PSU setup. My latest UPS makes more noise than the system it's protecting.

Meanwhile, the low-end atom box attached to the TV has extra fans on it And constantly makes noise. My excuse is that I built it about 8 years ago.

May be someone should be a sound proof case for a JBOD..

Disks suspended with cables? Box filled with sound absorption materials? Whatever it takes.

Or if that cost ~= cost of SSDs, just buy SSDs.

Me? I have a 12 TB SAS disk connected to the system with an easy to turn off switch so I power it up only when I need to backup something. Others times it stays unmounted and powered off. My whole digital footprint is only a TB....

You can solve HDD noise issue in a tower case DIY style by suspending HDDs in some rubberry material. There is plenty of space for that where CDROMs used to be put. Or buy a tower case that has anti vibration for HDDs already.

You are right, 3.5" disks can be loud, 2.5" drives or SSDs are better in that respect. Other option is to spin down / suspend the box after inactivity.

Loudest component will usually be the drives, otherwise something else is to loud.

I don't know that I've ever seen a rackmount server where the fans weren't by far the loudest part. Granted, I haven't bought a new server from the last few years, but manufacturers seem to have very little desire to reduce fan noise, and without that it's unlikely they'll be quieter than even a rack full of drives.

If you're using consumer gear in a rackmount form factor (which I'd recommend, given that AMD Ryzen and Threadripper support ECC and are really cheap compared to Xeons), then you can get nice Noctua fans which really help make the fans much more reasonable.

Right now the PSU fan is the loudest thing in my rack, but I think I'm going to cut and solder a much quieter fan in place.

Yes! My next server is definitely going to be a custom build, probably with Ryzen. I've gotten far too tired of the problems I've had with Enterprise hardware, and forced incompatibilities. It will probably still be a tower though, in order to get it as quiet as possible for my apartment.

I've been running a gen 8 microserver with a 4C/8T Xeon for the past few years. The servers got cheap like <£200 and the Xeon was used from eBay for not very much, IIRC £100. Stuck in a cheap 8GB ECC stick of DDR3 to bring the total to 12GB and it currently runs NixOS.

I still haven't found anything with a comparably convenient form factor and the remote management is pretty useful too. Can still saturate my 1G LAN, more or less, with Samba. Other than the power draw, which I'm sure would improve with a more modern CPU, I haven't really felt the need to upgrade.

Same here. Another annoyance for me is that its fans are a bit loud unless I'm running it in fake raid mode which requires proprietary Linux drivers. But I've found nothing comparable.

If you’re okay with less airflow, you may be able to run the fans at 10V if you have a -5 and +5 available. Or just run a few diodes on the 12V supply to the fan to get 0.6x voltage drops.

Moving right now to the HPE ML110 gen10 because I wanted 8 disks that were quiet. (Previously was using a microserver gen8 with an external enclosure.)

I have been running an HP dc7800 sff, core2duo, as my home server for a number of years now. I run lxc containers for Gitlab, Nextcloud, several test environments and Plex. Highest power usage is about 60w, usually just on boot. It has an ssd and two metal disks in raid.

It’s cronned to reboot every night which from experience keeps performance ticking over. It cost me £25 on ebay. I bought another recently just for parts really.

I get a buzz making the most out of old and inexpensive gear.

My setup: AMD ryzen tower with 32GB ram and multi port PCI NICs running Debian. Internet comes into the onboard NIC, and I VLAN out the NICs to downstream devices. Server itself doesn't run anything directly, instead I use nspawn "VMs" connected to the same VLANs as necessary. I rsync to a raspberry pi with a USB HDD at a relatives house.

At a state auction, I got a dual processor 2009 Mac Pro for $250. I did spend a bit on extra hardware as it's a server and a multiseat desktop. It has 2 low watt AMD GCN cards, 48 GB RAM, 2 hexacore processors, 4 SSDs and hard drives. It's quiet and is good enough to have 1 seat playing Tomb Raider while the other is playing Hitman while having nginx forwarding to Tomcat which starts Guacamole which connects to GDM so I can get my desktop in a browser as well as other more typical stuff like sshd. I read a lot of UNIX oral history stuff and Dennis Ritchie's comments about a community forming around a single computer always stuck with me. Now, I have something like that and am enjoying the experience. If I can figure out how to add more seats, I'll enjoy it even more.

What is the best and cheapest way to make a home server available to the internet, using a standard "home use" ISP contract? Can you give it a domain name?

How do you deal with the asymmetrical upload/download speeds of most home connections?

You register a domain name, set it up on CloudFlare and use a script which checks if your IP changed and submits it to the CloudFlare REST API setting an A record: https://github.com/kissgyorgy/cloudflare-dyndns

I've used ddclient which has support for a lot more DNS services, including Cloudflare: https://github.com/ddclient/ddclient

I wrote the script because I did not wanted to use ddclient :D and it's terrible config syntax. Also, it corrupted the cache regularly for some reason.

I wanted to add my "anecdata": I've run ddclient with namecheap for years and never had a single issue.

I ran into an issue doing this a few years ago where my ISP was blocking ports 80 and 443. I could port forward from my router on non-standard ports like host1.domain.tld:10080 (wan) -> 80 (lan), but LetsEncrypt didn't really like this and it was a pain to manually enter port numbers.

My solution was to use a VPS that was doing other stuff to also act as a nginx proxy to the internal machine on a non-blocked port. So it's now host2.domain.tld:443/80 (vps/nginx) -> host1.domain.tld:10080 (wan/host1.domain.tld) -> 80 (lan).

It really depends on how things are set up at your ISP.

In college, we had dynamically assigned, but publicly accessible addresses, so I used a dynamic DNS service to tie the domain name to my computer. I used freedns.afraid.org (mentioned by someone else), though other options exist and many routers integrate with a couple services out of the box (often dyndns.org). You can check if this will work by finding out your public IP (type "what's my IP" in a web search) and checking if that corresponds to the IP on your router (should be the WAN IP). If it is, you're probably set, but you'll need to check to see if your ISP blocks any ports. To check, just set up something on your computer and mess with the port forwarding settings on your router to point to it, and then test accessing it from outside your network (easiest is to start a webserver and try to access it from your phone while running in data).

If you can access services on your computer but your ISP blocks ports you want to use, call them and ask if those blocks can get removed. If not, you can get it to work by doing a reverse proxy using a VPS (good providers are Digital Ocean, Vultr, and Linode) to point to the ports your ISP does allow.

If you can't access your computer at all, you have two options:

1. Ask your ISP if they offer static IPs (mine does for ~$5/month) 2. Set up a tunnel from your computer to your VPS (SSH tunnels, VPN, etc)

Most ISPs either offer static IPs or give you a dynamic (changing), but publicly facing IP, so you probably won't need a VPS at all and just need to figure out the dynamic DNS thing.

As for assymetric upload/download, it's really not an issue, sending lots of data one way will just be slower than the other way. There just isn't much you can do about it.

There are some free offerings available of dynamic DNS. IIRC DuiaDNS [1] is free.

In The Netherlands (a very tiny country though) Xs4all is one of the very few ISPs allowing home users to change the A/AAAA/PTR/MX records of their hostname/IP address (for both their DSL and FTTH offerings). You can get a subdomain or use your own domain, with reverse DNS. They've been doing that since forever. You can also get shell access. They're also a bit more expensive than the competition though.

Running your own server has one disadvantage (though it has gotten smaller these days): electricity costs and impact. I'm getting solar and Raspberry Pis and such are pretty marginal though. I suppose you should compare it with AWS and the like?

[1] https://www.duiadns.net

cheapest way is to sign up with a dynamic DNS service like http://freedns.afraid.org/ - choose a subdomain you like. Then run an agent on your server to monitor when/if your public IP changes - it will send the new IP to the dynamic DNS.

If you'd prefer a paid option that uses your own domain, then some providers like Digital Ocean expose DNS settings via API. Here's a google search to get you started: https://www.google.com/search?q=dynamic+dns+host+for+digital...

Afraid.org is great, note that you don't necessarily need to install any software to use it - you're given a line to paste into your crontab and it's setup. It simply wget/curls an update URL every few minutes.

Any reason they chose "Afraid" as their name? A name is just a name, but it feels a bit offputting to use that in the address of my home server, tbh.

I don't know, but they have many different domains to choose from. I'm not sure if you can even get a subdomain of afraid.org.

Ddns used to be a fancy thing, but these days everyone worth anything has their own API for DNS management. Providers specialising in ddns may have their own agents which make it easier, but you can also use a 3-line script to do it on route53.

CNAME'ing your own domain to a "dynamic DNS" provider is also an option.

Note that when using this approach, you shouldn't use the root domain; you can still use a subdomain with no issues though.

[0]: https://www.freecodecamp.org/news/why-cant-a-domain-s-root-b... [1]: https://blog.cloudflare.com/introducing-cname-flattening-rfc...

If you just want it accessible from any of your other devices in a secure/private way without fussing much with DNS and port forwarding, ZeroTier is an excellent modern solution.


I cannot really tell you about asymmetrical speeds because in the country we leave now almost all fiber connections are symmetric.

The main thing use to be the dynamic IP assignation, which can be solved using some services like no-ip or using Cloudflare API to update a DNS periodically.

Some routers (e.g. Asus) come with a free service to do that out the box. That'll be MyButterfly.asuscomm.com domain though.

>asymmetrical upload/download speeds of most home connections?

If it's something fibre like then it's probably enough for casual hosting

If you stick it behind Cloudflare then your limited upload isn't really going to matter for a simple website as it should end up cached.

>> Can you give it a domain name?

I have set up Google Cloud DNS which is updated every 15 minutes to my current external IP. This ends up costing $0.15/mo.

CloudFlare Argo Tunnel

Has anyone experimented with BL-R for home server backup (or a backup's backup)? Are there tools for home use that help automate the backup, keep track of metadata, somehow handle delta backup to new discs, etc?

I'd suggest restic for backups (it's encrypted and deduplicated automatically, with the ability to have very simple retention policies). It backs up to basically any dumb storage service (S3, Backblaze, Google Cloud) and you can sync it yourself since it's just a tree of files like a git repo. For storage on the actual machine, use ZFS or something similar so that you can do your restic backups on an atomic snapshot.

I use rclone on a SystemD timer on my NixOS box. Each night it'll sync the changes to a cloud provider. I couple this with automatic ZFS snapshots - this way in a catastrophic failure I'm at most 1 day behind, but if something gets deleted or such then I have snapshots to save (hourly). I even have those set up with "File History" with Samba/Windows so I can look at previous versions.

I have my home server in the attic, a 4U with a bunch of drives in it running ZFS. 4G RAM, Q6600 Intel chip - I've been running the same hardware for years. The fan sound is unnoticeable - it's on the other side of the insulation, and it's approximately located above my desk in my home office.

It gets hot in the attic in summer, but I've had no failures thus far (no hardware errors from overheating, no drives died). Dust filters on the fans need cleaning off every year or so.

I'm due to upgrade it, 4G ceiling is starting to get tight when using more recent software.

On Ebay you can grab a Dell R210 II with 1240v2 CPU for 150-200 USD, it is quiet, idles at 20 watt, 80 watt at full load and plenty of power.

If you need more cores, the Xeon D is another great alternative but costs a lot more.

For my home servers I do everything I can to have as much redundancy and fault tolerance that I can afford and that means insisting on ECC ram to start. It’s not a server if it’s not toting ECC ram in my book.

Depends a lot on what you do with it. ECC might be overkill for Plex or some home automation. But for a lengthy Matlab simulation it’s more than recommended.

Yeah that’s true, Plex doesn’t need ECC. I’d like the NAS that serves the media to have ECC though.

What a clever way that rack was - hanging like that. Love it and my head is spinning how I should do this with both my battlestation-PC, NAS, routers and everything.

Vertical mount may require a change in airflow/fan direction.

Yes, I was initially thinking the same, then I couldn't quite figure out exactly why so?

The first thing that comes to mind is dust build-up, but that happens anyway in standard PC chassis also.

Second is that heat goes up, which meens "forward" in the rack. So I assume blowing upwards/forwards is smarter than blowing down/back, as you're pissing against the wind instead of with it. Other than this second principle, I can't figure out anything else to worry about....?

Most rack chassis have front fans which send air to the back of the chassis, with heatsinks oriented with direction of airflow. Air is forced from the front to the back, passing through the heatsink fins.

If vertically mounted with the rack "front" at the top, the forced airflow down will be in the opposite direction of convention airflow up. Fans may have to spin faster/louder to achieve the same level of cooling.

If the front fans are reversed, the fan airflow will be aligned with convection, but will immediately exhaust from the front instead of being aimed squarely at heatsink fins. The intake vents at the back of the chassis will provide sources of air, but are likely not uniformly distributed (compared to the fans) across the width of the chassis.

For a home server that is mostly idle, there may not be much difference, but the safest path is to run some stress tests with different cooling configurations.

Edit: some chassis have back-to-front airflows, http://thenetworksherpa.com/airflow-is-important/

I'm gonna stick to just using my previous gen laptop as I upgrade.

Need fresh ones due to GPU so the old one is perfectly fine for server duty still. Stick a couple USB3 docks on there & good to go

But...now I'm unsure what to do with the old old one...

Part it out? I do that with my previous gen MacBook Air and usually get a good return.

Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact