Ask HN: What's on your home server?

519 points by _moof ↗ HN
It's been years (over a decade?) since I've had a server at home but I'm setting one up for media and I got to thinking: what else should I do with this box? So I was wondering what cool/nerdy/weird stuff you all are using home servers for. DNS and file sharing seem like obvious applications I could set up. I already run email and web on a VPS so that's taken care of. What are you doing with your home server?

466 comments

[ 1.5 ms ] story [ 332 ms ] thread
It's absurd but I always thought it'd be so great to have FreeIPA set up. Having my computers actually be part of a real network would be neat.

I do wish it were a little less coupled. I'd rather be using better known moderm pieces like cfssl instead of dogtags for CA, OpenLDAP instead of 389ds for ldap. But FreeIPA has one of the hardest worst most terrifying jobs on the planet & it's amazing it can interoperate so deeply, and there's like, next to no hope ever we improve beyond this particular thing, unless we can somehow just ditch AD & SMB. Maybe some day Windows & filesharing will have alternative viable directory systems, but hard to imagine.

I also ran into this project on setting up Kubernetes atop FreeIPA though, and wow is it ever terrifying. https://github.com/zultron/freeipa-cloud-prov

Some more basic answer for you, Jellyfin for media-sharing. A small GoToSocial server for ActivityPub/Mastadon. Prosody for XMPP. WireGuard for vpn. Frigate for security cams. Rygel for upnp/dlna MediaRenderers (there s other good options too). Mpd/mopidy for music jukebox. Nextcloud for groupware-ish.

If you want a lot of ideas, there'a a pretty active k8s-at-home microcosm, and there's a website that indexes the projects they get up to. Even if you dont want to run kubernetes, the projects they have cover the whole gamut of services people might find useful or fun to run at home.

A while back I had a bunch of home sensors reporting to Prometheus. Temperature/humidity gauges, ambient light sensors. My favorite was making my laptops battery & charge status show up. The 2-in-1 had two batteries & was extra cool to watch drain one, then another, then see levels charge back up.

In a cloud server (hidden from the public)

  www.keycloak.org  - auth mostly for outline
  www.getoutline.com - my personal "notion"
  nginxproxymanager.com - to proxy things
  Wireguard - remote access and interconnection between zones
  cockpit-project.org - to manage VMS
  github.com/coder/code-server - To remote develop
  2x of docs.paperless-ngx.com/ (one for me and one for my partner) - I scan and destroy most of the letters I get.
  snibox.github.io/ - my terminal companion
  pi-hole (together with wireguard I don't have ads on my devices)
  uptime.kuma.pet - to be sure that things are online
  mailcow.email/ - for non priority domains
  docs.postalserver.io/ - mail server for apps and services
At home (small 6w nic with):

  HomeAssistant - To control home lights
  Cups - share printers
  Wireguard - (connected to the cloud)
> 2x of docs.paperless-ngx.com/ (one for me and one for my partner) - I scan and destroy most of the letters I get.

Ah, interesting. I have been considering finding a solution like that. How do you like it? Are there other alternatives you considered?

I used paperless for a while but ended up just saving pdfs to directories instead. I can find what I need without fancy OCR features by organizing and naming files sensibly. And I am fairly certain this will still work in 40 years, while paperless, or even Linux, might no longer exist.
That was sort of the approach I had been planning on going for (manual scanning and putting it in directories that get cloud backed up). I have a pretty good scanner app on my phone, and so just scanning after opening the mail for some important document or invoice, uploading to the document storage, and then shredding seemed to be pretty low fanfare.
Which scanner app are you using?
In the end, paperless also stores the original pdfs in a directory. You get some more goodies from it, like automatic OCR and a web interface, but your baselines is also included.
Why not do both? Use rsync to do a one way sync by keeping a filter list to the paperless consume directory so whenever you drop any new documents to your original folder structures, it copies THAT to the consume and paperless consumes it?
I can recommend paperless. I am running it locally in a Docker container and sync database/files with iCloud (so they are backed up). I've been thinking about putting them on the actual web to access them anywhere, but so far having paperless "just" on my computer was enough.
There are alternatives. I chose paperless because was the most mature opensource solution.

Be aware that there is paperless, paperless-ng and paperless-ngx.

When I did the setup last year paperless-ngx look like the most maintained.

> When I did the setup last year paperless-ngx look like the most maintained.

Just FYI, none of those were hostile forks, but in both the community taking over after the former maintainers abandoned the project. NGX is indeed the active version.

How do you keep the server hidden from the public?
One option is to use Tailscale or plain Wireguard.
I just don't assign public Ip addresses to private VM.

Public (with different public ips) I have:

  * Mailcow
  * Postal
  * Code server (just a dev machine with public ip)
  * Wireguard
  * NginxProxyManager
Private (without public ip) I have:

  * PiHole
  * containers (where i run most of the staff)
  * Monitoring
Even though I sold mailcow and stopped working on it in the past months, it warms my heart SO MUCH to see people using it. :) Really, thank you.

I have some ideas for a proper successor which would be much more scaleable, modern, flexible and would be more focused to use existing transports for piggybacking mail. A fully and safely encrypted mail storage as well as a cool interface to invite for encrypted sessions etc. Smtpd and imapd using modern Python modules.

Providers found out it was easier to block private senders instead of developing good filtering mechanisms. I kind of understand this decision, but spammers simply abuse services like Sendgrid or create spam accounts on MS.

So… nothing really changed in regards of spam. We just lose actually *wanted* mails or have to look into the Junk folders more often, all while newsletters get on the priority lane.

That makes me unsure about developing anything in this regard. :(

André

Hi Andrè! I just wanted to thank you for mailcow! We used it a few years ago at my previous job to getting a new domain up & running and got a porfessional, best-practices-configured email server in no time. Great experience also for day 2 operations! Nothing like the other mail solutions available at that time.

Wishing you the best in your next endeavors!

I absolutely _loved_ mailcow. Worked out of the box way better than my hand rolled solution, and ended up using it for some small orgs too.

Thanks for all your work on it!

To the new owners: I googled mailcow, got to the web site and found nothing to explain what it is, not even in the docs. Eventually I noticed the "People also ask" section in the Google results page:

> What is Mailcow?

> fully managed by Elestio. Mailcow is a Docker-based email server, based on Dovecot, Postfix and other open-source software, that provides a modern web UI for administration.

Hopefully this is correct but who knows.

Hi, it is now owned by tinc.gmbh

I sold it on 04/2021

Hi André.

First of all, thanks. I used hosted my own email 20 years ago, and when I saw how easy it was with mailcow, I decided to try again.

Looking forward to the mailcow successor. Is there anything up already?

Cheers.

Hi :) Not yet. I’m in a very burned out mode right now. Need to settle a bit.
Oh, and thank you for your kind words!!
Wait, what? Was mailcow sold? What does it mean for future development and features? Should we start to look for an alternative?
You can run pihole in the cloud? That is very useful information.
Why wouldn’t you be able to? Pihole is just dnsmasq with a frontend.
The biggest curse of the Raspberry Pi is a whole heap of stuff that has gone from “needs a UNIX server” to “but surely that requires an underpowered UNIX server with a very specific distribution of Linux”.
You should not open its port to the internet at large (look up: open resolvers) but yes you can run it anywhere and access over VPN, etc.
You could also use https://nextdns.io. It’s basically pi-hole in the cloud.
I pay $20/yr for their service it’s so good, and I can turn on/off quickly per-device when I need normal dns to work, instead of having to ssh and tweak pi-hole or whatever across the whole network
(comment deleted)
(comment deleted)
Thanks for sharing this list! I wasn't aware of nginxproxymanager. This is something I've been doing semi manually for years. It looks like it'll slot right in and save me some work
It's right behind me, unfortunately, due to lacking ISP, I'm currently jumping some hoops[1] to have online.

I have OpenVPN and Docker, rest runs as containers.

Mail (Postfix, Dovecot, Spamassassin)

Web: Nginx (serving sites and doing reverse-proxy for other containers)

Various containers running nodejs sites (served through nginx reverse proxy)

MySQL, Mongo, Apache/PHP,

Apparantly a minecraft server too.

- 1 http://dusted.dk/pages/aWayOut/

At the moment I just have the UniFi controller running on a Raspberry Pi. But I really do want to set up a good NAS for storage, and do some kind of encrypted snapshot backup to cloud for important things I currently just have strewn across some external hard drives and SSDs (generally at least two copies, but all the drives are at my house which isn’t great if there’s a fire or something).

I might get a small server (maybe the HPE Microserver) instead of something like a Synology, set Proxmox up on it, and then if I ever have the time I’d quite like to get a Samba 4 Active Directory controller going so I can control my few Windows machines better (and so it stops trying me to link a Microsoft account and all that).

Backups. All my Linux computers back themselves up every night to the server. The server itself mounts the Windows PCs disks and backs those up. I use dirvish to do the backups.
That's my use too, except I use macOS, and I save downloaded assets (sample libraries, mainly). I sometimes use my iTunes backup as a "media streamer", but that's often too much of a hassle.
The standard DNS and local network services, plus security cameras.

Being in California, I have tried to push as much as I can out of my home and into datacenters to save on power. That said storage is one of the most expensive things to do "in the cloud," so everything I have is backed up to my house where I can shove a ton of drives into a NAS and spin them down when idle.

Automatic compiling for my code and book hobby projects. So that there's always a latest version that I can open via file sharing.
Me too, it's been a lot of years since I bothered with a home lab, but just recently I put NixOS on a triad of Intel NUCs work was throwing away. They're fanless, quiet and decent enough for Linux with their 16GB memory and 8 cores. Way better than a RasberryPi.

Now I can do some experiments I wanted to do, but not use VMs on my laptop. Feels more real when I can see a little stack of servers I can pull the power on. All are running tailscale so I can get to them from anywhere and run some simple tests. Example: I wanted to play with a quorum of FoundationDB nodes and see how things can fail. Also I'll run k3s and do some experimenting with that. Can I use minicube on my laptop? Sure, but this is more fun.

I use an Intel NUC as a desktop. It's powerful enough for 6 virtual ubuntu machines (probably more) and running ceph and postgres nodes with Vagrant (not that I use them all the time, more for development)

Processor Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz, 1608 Mhz, 6 Core(s), 12 Logical Processor(s) 32GB RAM 1TB SSD

https://ark.intel.com/content/www/us/en/ark/products/188811/...

IntelliJ and Windows 11 runs fine.

I had this setup and then wanted more so got a Ghost Canyon one. It's not really a Nuc as its about 8x the size, but carries the badge. It'll fit a full PCI card and then you can go wild. It really is great.
For people that aren't getting free boxes from work, you can usually find used micro/tiny form factor Intel machines for around $120. That's more than a Raspberry Pi, but you can get a Core i5-6500T with 8GB of RAM, 256GB SSD, and it'll use around 10 watts at idle (and top out around 50 watts). You'll get an M.2 PCIe 3.0 4x slot and a bay for a 2.5" SATA drive and support for up to 32GB of memory.

You can put Proxmox on them if you want to run a bunch of VMs or use Windows or any of the many Linux distros that support x64 rather than dealing with less known hardware.

While 10 watts is more than the 1-2 watts of a Raspberry Pi, it comes out to around $13/year for me leaving it on 24/7. A normal desktop idling at 50-100 watts would cost me $65-130/year so it is a big difference. In fact, if you're leaving a normal desktop on 24/7 as a home server, it might make financial sense to grab a micro/tiny machine. If it costs you $120 and saves you $50-120/year in electricity, that seems like it would be worthwhile.

They're not fanless, but they are very quiet compared to most desktops.

I ended up going this route because Raspberry Pis are so hard to come by these days. A Raspberry Pi 4B with 8GB of RAM will cost $75 and then you'll need to supply your own storage (MicroSD), buy a case if you want to protect it, and a USB cable and power adapter (though you probably have that sitting around). Between the Raspberry Pi and MicroSD card, it's basically $100 and way less powerful than a Core i5-6500T (which should be 3x faster) and you're using a MicroSD card rather than a nice PCIe flash drive. Plus, if you want, you can load the micro/tiny machine up with 32GB of RAM for not that much ($40 to get it to 24GB, $70 to get it to 32GB) and you can make that decision in the future. Plus, for a lot of purposes, standard x64 hardware can be nice. Plus, you can actually get your hands on a micro/tiny form factor PC while I haven't seen Raspberry Pis in stock in a long time.

One could easily disagree, though. The operating costs are likely to be an additional $10-11/year and one could get a 1GB RAM Raspberry Pi for $35 (if they had them in stock) and get a small MicroSD and maybe only spend $40-45 instead of $120, but it feels like the utility of a $45 machine with 1GB RAM is a lot more limited and I'd (personally) rather spend the money on something I know I can use.

> A Raspberry Pi 4B with 8GB of RAM will cost $75

Do you have a link to where I can buy a Raspberry Pi 4B (8GB) for under $150? The cheapest I can find through Amazon was $202.

I bought one before the pandemic (~2019) at Microcenter for, if I recall correctly, $90?

Seriously, if you know where to find one, please share!

IIRC the approved resellers do not sell them over RRP, which you can find via the official website - when they have them in stock.

Opinions my own.

On my Synology NAS, I run the following using Docker:

- Jellyfin: Streams my movies and shows

- Paperless-NG: Where I keep OCR'd scans of my paper docs

- Airsonic: So I can stream my music using the Subsonic protocol

- Photoprism: Where I store my photos, auto-labelled with AI and geotagged

- The Synology Surveillance Suite: NVR for my home security cameras.

- Wireguard: So I can access all this on the go

It feels pretty cool to stream music and videos from my personal cloud using Wireguard while I'm e.g. travelling or in the car.

yup I have a DS920+ running docker instances of :

Plex

Tiddlywikki

trilium (x2 instances)

taiga

Homepage

Pingvin

freshRSS

pihole

minecraft server

valheim server

My ftitzbox router handles wireguard for me

Asterisk PBX (phone system) on Raspberry Pi OpenMediaVault and ownCloud (on Docker) on a Raspberry Pi

Hopefully in the near future HomeAssistant on a Raspberry Pi

36 docker containers spread between 3 computers. 250 TB raw with ~70TB free.

  - vaultwarden as password manager
  - tt-rss
  - rainloop
 for webcal & caldav :
  - baikal
  - caldavzap & carddavzap (https://inf-it.com/open-source/clients/)
Ubuntu, postgres, gitea, dotnet core, pytorch + open ai whisper, obisidian vault, some code generator experiments & custom build tools.
HomeBridge really is a game changer for making smart home devices work with HomeKit while supporting user privacy.

Also: PiHole for ad and tracker blocking.

Jellyfin and emby : For media server

ngnix-rtmp : personal streaming server

navidrome and mpd: for music streaming Gmediarender :upnp /dlna renderer

Docker containers for:

Minio : object store

sdftosvg : Molecular renderer

Observability stack : (Grafana, Prometheus, exporters)

Postgres: molecular metadata (9 billion molecules)

Molecular relaxation workers

Quantum Monte Carlo simulators

Dask workers

Websocket message pump

Insilico virtual lab server + 3 clients

Vscode server

Deep Learning model server (inference)

Deep learning model training server

Most of these are applications I have written myself, and powering my hobby project https://atomictessellator.com

Specs: 4 machines 2TB RAM total 4 GPUs (Tesla A100s) 384 CPU cores total

These are in my lounge, yes, it is noisy, yes, it is hot in here, yes, I love it

At home, on my HP DL20 I have:

  Restic (backup)
  Samba + Jellyfin (movies + music)
  Nextcloud
  my Telegram photo bot (https://github.com/nmasse-itix/Telegram-Photo-Album-Bot)
  Aeneria (energy monitoring)
  Home Assistant
  Unifi Controller
  Gitea
  Tekton (my CI pipelines)
  Keycloak
  Minio
  Miniflux (RSS Reader)
  Mosquitto (MQTT broker)
Plex, Photoprism, Calibre, ddclient (keeps my domains pointed at my non-static ip), synching, 1-3 project services, and a caddy reverse proxy container for most of the above. Also at times Minecraft/other game servers. I would figure out wireguard for access but my router can run a VPN. About half run in docker with compose, on a cheap windows hp business refurb
Nothing fancy:

- local file (media) sharing - VPN client - torrent client - slow file download

I plan to make it an automated build server.

In the past, it was also an access point.

# Work

- https://gitea.io (repos)

- https://discourse.org (forums)

- https://github.com/nektos/act (CI)

- https://www.goatcounter.com (analytics)

- https://bestpractical.com/request-tracker (support)

- https://couchdb.apache.org (a slave db to backup https://rxdb.info [client db])

- deps: nginx, redis, postgres, mqtt

# Life

- https://matrix.org (comms)

- https://www.teamspeak.com (p2p voip for gaming)

- https://nextcloud.com (files, dav, etc.)

- https://jellyfin.org (+ the sync & swarm shit, radarr, etc.)

- https://mopidy.com (audio)

- https://photoprism.app (photos)

- https://actualbudget.com (finance)

- http://tileserver.org (map tiles)

- https://github.com/FreeTAKTeam/FreeTakServer (hiking nav)

...and more (reply to initiate detail sequence)

Initiate detail sequence please
# Automation

- https://n8n.io/ (script i/o for services)

- https://www.home-assistant.io/ (script i/o for physical world)

- https://homebridge.io/ (bridge homekit for above)

# Federation

- https://misskey-hub.net/ (social network [used for game community])

- https://glitch-soc.github.io/docs/ (social network [used for biz])

- https://lemmy.ml/ (custom news aggregator for fan site)

@%4$! ADHD segfault, IOU sequence activated, post may be updated...

edit: update complete. anyone like how those categories worked out in each post? ocdgasm.

When you say you're hosting Lemmy [0] for a fan site does that mean you're hosting it for others to use? How/why did you pick Lemmy? What's your experience with it so far?

[0] https://en.wikipedia.org/wiki/Lemmy_(software)

Yes. It's the only federated news aggregator, which works well for a community that wants to share links related to their common interest, and discuss them.

Being federated allows them to use their existing identity or create one for the fediverse, and general or like minded communities to see the discussions as well. The same reason people use subreddits for fanbases, but not being beholden to reddit.

How does Misskey compare to Mastodon?
Misskey has a lot more features, but can be too much for certain scenarios.

Misskey is more geared towards "fun" communities, because of it's design and it's extra features.

Mastodon is more sterile/corporate and geared towards serious things.

I always CTLR + F these threads for Jellyfin, because most people I know use Plex and don't even know Jellyfin. Are you happy with it? I've been using it for like half a year now and am pretty satisfied.
Been using Jellyfin almost since it forked from Emby. Was a bit rough early on, but works a treat for me these days - I think there's a balance point where I've adapted myself to its idiosyncrasies as much as it has improved stability and compatibility throughout version upgrades.

I primarily use it via the Android TV app, and it's been a pretty smooth experience for at least the last couple of years.

I had to use my TVs internal (amazingly slow) web browser to access Jellyfin. Until a couple of months ago, when I was surprised with them announcing that they will release a Jellyfin app for LG WebOS. Works great, the only slightly annoying thing is that they don't seem to cache the posters. Every time I scroll through my library, all the posters load again.

Other than that, the things which don't quite work for me:

- Jellyfin is useless on my Android phone. Media with 5.1 sound is severely broken, I can only hear the background noise, the actual dialog is just barely hearable. Could be a config issue on my end, but I haven't found out what the issue is. Now I just download stuff and watch it in VLC. Works, but it's not the best UX.

- Sometimes when I add a lot of content, the metadata gathering seems to be stuck. I can refresh the libraries, refresh a single item, but nothing seems to work. Then, after a couple of hours, it magically starts to pull all the metadata and is done in a couple of minutes.

Else - I enjoy it very much. Even donated some money, which I do (too) rarely for OSS.

In the Android app, switch from one player to another, from internal to the web player in the settings. It solves the 5.1 playback issue. (Of course, it introduces others, eg. manual screen brightness but it's not as a big issue as no sound.)
Thanks for the tip, but I already tried that :(

- Web player: Video works, audio is broken.

- Integrated player or External player: Unable to load media info from server

no idea why it can't load the media info from the server, might have to dig into the logs...streaming via PC or TV works so it's not a network issue.

How about adding another audio stream to your Video files with ffmpeg? You could even automate it with a script on a cronjob or make a Jellyfin Add-on. You would first have to detect if there is already a mono or stereo stream. Then invoke something like ffmpeg -i input.mp4 -c:v copy -c:a copy -c:a aac -rematrix_maxval 1.0 -ac 2 output.mp4 (haven't tested this and it would drop subtitles)
I'm a big Jellyfin user. I run it on an opensuse server that acts as my homeserver. It's just an old PC with some extra drives. I stream mostly to Roku devices and it works awesome.
I'm Jellyfin-curious, and hear a lot about it, but I'm not really unhappy with Plex, and it passes the family-user test with ease. How easy it for the techno-novice to use Jellyfish? I think Plex's biggest advantage is it's already everywhere, from browser to smart TV. How does Jellyfin compare there?
Hm. As a disclaimer, I've never setup a Plex instance or used one, but from what I've heard, it seems to be very stable.

I think the Jellyfin UI is easily understandable for users, but what you might have to be prepared for is supporting them with technical issues. Jellyfin has apps for Android[-TV], iOS, webOS, Windows and probably more. I gave my dad access to Jellyfin and he had some issues with it related to Chromecast and his TV. On my end I can't use the Android app because I run into audio issues (could be my fault).

Jellyfin is awesome when it works and I really love it, but I've had to dive into the logs quite a few times. Sometimes it was my fault, but other times it's noticeable that Jellyfin is a smaller OSS. Stuff breaks, especially edge cases.

AFAIK you can just install Jellyfin and point it to the same libraries which your Plex uses. That way you can test it for yourself without bothering the people who use Plex. It might add some pictures, but the rest will be fine.

I think if you already have a Plex setup which works and you're happy with, I'd stick with that. I chose Jellyfin because Plex seemed too commercialized to me and I heard some things about it I didn't really like. But most people I know use Plex over Jellyfin, the only people who use Jellyfin are the ones who I managed to convince to use it :)

Plex, Calibre, Photoprism, some homebrew backup scripts that interact with other computers on the network, some private security/camera stuff, and a slew of StableDiffusion/GPT models for text/image generation (which is what the majority of the server resources are usually maxed out with). Sometimes I'll host Steam/Minecraft servers for friends.
2x14tb drives in ZFS mirror for Linux isos. 128 GB RAM for the filesystem And VMs I closing some work stuff.

All hosted with proxmox. A great homelab distro for VMs and persistent containers.

I would highly recommend paperless-ngx (organising scanned documents) and photoprism (organising photos). Both are excellent.

I have an FTP server running (open only to the local network) which allows me to have my scanner and camera upload directly to my server for ingestion into them. Similarly on my Android phone I have foldersync set up to send my photos to my server via sftp.

Which camera allows you to do that. I wish my Sony Alpha had that ability instead of using the horrendous app they require.
I have a Canon R5 but I think all the Canon DSLR/mirrorless models with WiFi have this ability too. Its a bit fiddly and only supports FTP/FTPS but it works.
Jellyfin (video), Navidrome (audio), Deluge, Paperless (document management), tt-rss, Wallabag (web clipping/archiving), Huginn, Syncthing+restic+rclone for backups, and I host a static blog generated with Jekyll.
I see Navidrome mentioned a lot. Why use that instead of just Jellyfin?
Honestly, I had Navidrome installed for music before I had Jellyfin set up for video, and now I'm used to it. :)

When I originally picked it, I really liked Navidrome's UI and the simplicity of installation, setup, upgrades, speed/performance, etc.

I have heard that Navidrome handles large libraries better (e.g. faster scanning), and I like that it's purely tag based and doesn't rely on any (slow) scrapers (I just used Musicbrainz Picard to clean things up before adding music to my collection).

Mostly media server and home security related stuff.

Box 1: Truly ancient HP Proliant N54L - Bastion/DMZ machine, router forwards all incoming traffic to it - NAS - JBOD that I cobbled together over the years, storage is only ~12TB, and mostly used for media. - NGINX - proxies traffic to the rest of my network

Box 2: Some SFF Lenovo desktop - NVR, running zonemonitor - Dedicated storage for my home security cameras

Box 3: Some HP Prokesk Mini SFF - Homeassistant - Various docker containers running homeassistant ajacent stuff

Box 4: Another HP Prodesk SFF, but with 10th gen i3: Media server - Everything in docker - Emby - Radarr - Sonarr - Transmission - etc. - Latest addition to the family, I deployed this a week ago. I have to say I'm mighty surprised by the performance of the i3 for media transcoding. It can do at least one 4k->720p transcode without even breaking a sweat.