Ask HN: What's on Your Home Server?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • PhotoPrism

    AI-Powered Photos App for the Decentralized Web 🌈💎✨

    - photoprism for photo storage (https://photoprism.app/)

  • Nextcloud

    ☁️ Nextcloud server, a safe home for all your data

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • sydent

    Sydent: Reference Matrix Identity Server

  • Portainer

    Making Docker and Kubernetes management easy.

  • freeipa-cloud-prov

    FreeIPA in Docker on CoreOS on DigitalOcean provisioner

    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.

  • Telegram-Photo-Album-Bot

    A Telegram Bot for collecting the photos of your children

  • Mopidy

    Mopidy is an extensible music server written in Python

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • Jellyfin

    The Free Software Media System

  • Gitea

    Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD

  • docker-minecraft-server

    Docker image that provides a Minecraft Server that will automatically download selected version at startup

  • YOURLS

    🔗 The de facto standard self hosted URL shortener in PHP

  • uptime-kuma

    A fancy self-hosted monitoring tool

  • Zabbix

    Real-time monitoring of IT components and services, such as networks, servers, VMs, applications and the cloud.

  • docker-mailserver

    Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.

  • OpenProject

    OpenProject is the leading open source project management software.

  • Mattermost

    Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..

  • Matomo

    Empowering People Ethically with the leading open source alternative to Google Analytics that gives you full control over your data. Matomo lets you easily collect data from websites & apps and visualise this data and extract insights. Privacy is built-in. Liberating Web Analytics. Star us on Github? +1. And we love Pull Requests!

  • PeerTube

    ActivityPub-federated video streaming platform using P2P directly in your web browser

  • Grav

    Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

  • changedetection.io

    The best and simplest free open source web page change detection, website watcher, restock monitor and notification service. Restock Monitor, change detection. Designed for simplicity - Simply monitor which websites had a text change for free. Free Open source web page change detection, Website defacement monitoring, Price change notification

    I rely on docker-compose, Traefik, and a few simple shell scripts for most of my setup. Each service I have in its own directory with their own `data/` and `config/` directories. Overall, self-hosting has been far less work than I expected. Generally speaking, things don't break and are quite easy to get up and running. I will put * beside strongly recommended services.

    - changedetection This monitors webpages for changes and sends you notifications on multiple streams when they change. This is the service I have found the most awkward and least useful! (https://github.com/dgtlmoon/changedetection.io)

  • send

    Simple, private file sharing. (by gitlab-timvisee)

  • Home Assistant

    :house_with_garden: Open source home automation that puts local control and privacy first.

  • awesome-selfhosted

    A list of Free Software network services and web applications which can be hosted on your own servers

    Frigate for object detection on RTSP streams. It integrates with Home Assistant so you can include detections in automations.

    Also Proxmox, Prosidy (XMPP), AdGuard Home, Jellyfin, Paperless and Photoprism.

    Also see this list for more ideas: https://github.com/awesome-selfhosted/awesome-selfhosted

  • traefik

    The Cloud Native Application Proxy

    * traefik to handle all the routing to the containers. When it doesn't work, it's very awkward to fix, but it almost always works just as you expect it to (https://traefik.io/)

  • Plausible Analytics

    Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.

  • Grafana

    The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

    - grafana for streaming logs and metrics from these services (https://grafana.com/)

  • Gotify

    A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui) (by gotify)

  • Ghost

    Independent technology for modern publishing, memberships, subscriptions and newsletters.

  • Speed-Test

    SpeedTest by OpenSpeedTest™ is a Free and Open-Source HTML5 Network Performance Estimation Tool Written in Vanilla Javascript and only uses built-in Web APIs like XMLHttpRequest (XHR), HTML, CSS, JS, & SVG. No Third-Party frameworks or libraries are Required. Started in 2011 and moved to OpenSpeedTest.com dedicated Project/Domain Name in 2013. (by openspeedtest)

  • cdk8s

    Define Kubernetes native apps and abstractions using object-oriented programming

    Always love seeing someone else create a similar solution as your own (albiet likely better!).

    I have the same setup with K3S running on a couple PIs. You have a nice CI but I decided to use cdk8s[1] which lets you compile Typescript into K8 files. For access I did almost exactly the same but with CloudFlare Tunnels (might look into Tailscale). Stealing the zigbee2mqtt and room assistant ideas.

    Where do you store volumes? I eventually just bought a NAS and mount persistent NFS volumes off it.

    1. https://cdk8s.io/

  • shairport-sync

    AirPlay and AirPlay 2 audio player

    I host a Mastodon instance, a Matrix server (using synapse and coturn), a Minecraft server for the kids, a server for an esoteric mod of Ultima Online called Ruins & Riches, and a Web server. I use Nginx for reverse proxying and Wireguard for VPN.

    I also run a bunch of Raspberry Pis around the house connected to stereos to stream audio using AirPlay (with https://github.com/mikebrady/shairport-sync).

  • kube-pihole

    - Pi-Hole : https://github.com/manibatra/kube-pihole (might be a little rough around the edges, I have to push a few updates)

  • caddy-docker-proxy

    Caddy as a reverse proxy for Docker

    - zwave-js-ui (manages the zwave based smart home devices I have...about 20 or so)

    My router/firewall is a separate devices running OPNsense.

    I run all the services with docker-compose. The server itself is a bit of a snowflake but all the critical parts of the services are in their respective docker directories so backup is a snap (aside from postgres which has a separate backup process).

    Currently I'm working on documenting a recovery procedure for Vaultwarden from our Backblaze backups so that in the event something happens to me my wife will be able to recover the Vaultwarden instance and our passwords. That's a fun exercise in documentation and simplifying the process.

    Snapcast has really been a dream for multi-room audio setup. It presents a Spotify Connect device to anyone on my wifi. It has a separate stream which comes from whatever is being played on MPD and it is easily configured to play audio from whichever of those two streams is actively playing music...so I don't have to manually switch between them.

    Caddy has been great for organizing everything and ensuring each service has HTTPS. I understand Traefik is somewhat more purpose built for doing this with a bunch of containers but I haven't had a need to switch.

    I do use https://github.com/lucaslorentz/caddy-docker-proxy for letting the containers themselves describe their respective domains and mapping.

    I do have a VPS and use it for the occasional site that needs to be more reliable than my home internet (which itself is quite reliable but I'm not counting 9s there). More and more I find I'm comfortable putting random static sites on my machine at home, though.

  • waifupaste.moe

    This project has left GitHub! The files for https://waifupaste.moe. Non-anime version: https://yld.moe/

    I've got a slew of different computers doing different things. All of them are networked together via Tailscale.

    Ubuntu 22.04 Server for the host, everything else runs in LXC containers. This is all setup on ZFS.

    - https://znc.in/ IRC bouncer

    - https://caddyserver.com/ Caddy Webserver for a few personal websites

    - https://github.com/AndroidKitKat/waifupaste.moe/ My personal pastebin

    - https://transmissionbt.com/ Torrent client that I actually use for Linux ISOs. Primarily seed different versions of Ubuntu and the latest Arch. I am looking to seed other, lesser-seeded distros, too.

    - It also runs Samba

    A second, dedicated computer also running Ubuntu Server 22.04. It only runs https://pleroma.social for me and a few of my friends.

    A third computer, this time an M1 Mac Mini that is my Plex box. It's running the latest version of macOS Ventura and runs all the *arrs and qBittorrent. It also runs Plex itself, because it's one of the only computers that I found that was low power enough but still supported hardware transcoding in Plex. I've been meaning to find a replacement for it running Linux + an AMD GPU (I have an rx470 sitting around somewhere), but no real good deals have turned up.

  • ZNC

    Official repository for the ZNC IRC bouncer

    I've got a slew of different computers doing different things. All of them are networked together via Tailscale.

    Ubuntu 22.04 Server for the host, everything else runs in LXC containers. This is all setup on ZFS.

    - https://znc.in/ IRC bouncer

    - https://caddyserver.com/ Caddy Webserver for a few personal websites

    - https://github.com/AndroidKitKat/waifupaste.moe/ My personal pastebin

    - https://transmissionbt.com/ Torrent client that I actually use for Linux ISOs. Primarily seed different versions of Ubuntu and the latest Arch. I am looking to seed other, lesser-seeded distros, too.

    - It also runs Samba

    A second, dedicated computer also running Ubuntu Server 22.04. It only runs https://pleroma.social for me and a few of my friends.

    A third computer, this time an M1 Mac Mini that is my Plex box. It's running the latest version of macOS Ventura and runs all the *arrs and qBittorrent. It also runs Plex itself, because it's one of the only computers that I found that was low power enough but still supported hardware transcoding in Plex. I've been meaning to find a replacement for it running Linux + an AMD GPU (I have an rx470 sitting around somewhere), but no real good deals have turned up.

  • Transmission

    Official Transmission BitTorrent client repository

    I've got a slew of different computers doing different things. All of them are networked together via Tailscale.

    Ubuntu 22.04 Server for the host, everything else runs in LXC containers. This is all setup on ZFS.

    - https://znc.in/ IRC bouncer

    - https://caddyserver.com/ Caddy Webserver for a few personal websites

    - https://github.com/AndroidKitKat/waifupaste.moe/ My personal pastebin

    - https://transmissionbt.com/ Torrent client that I actually use for Linux ISOs. Primarily seed different versions of Ubuntu and the latest Arch. I am looking to seed other, lesser-seeded distros, too.

    - It also runs Samba

    A second, dedicated computer also running Ubuntu Server 22.04. It only runs https://pleroma.social for me and a few of my friends.

    A third computer, this time an M1 Mac Mini that is my Plex box. It's running the latest version of macOS Ventura and runs all the *arrs and qBittorrent. It also runs Plex itself, because it's one of the only computers that I found that was low power enough but still supported hardware transcoding in Plex. I've been meaning to find a replacement for it running Linux + an AMD GPU (I have an rx470 sitting around somewhere), but no real good deals have turned up.

  • Caddy

    Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

    I've got a slew of different computers doing different things. All of them are networked together via Tailscale.

    Ubuntu 22.04 Server for the host, everything else runs in LXC containers. This is all setup on ZFS.

    - https://znc.in/ IRC bouncer

    - https://caddyserver.com/ Caddy Webserver for a few personal websites

    - https://github.com/AndroidKitKat/waifupaste.moe/ My personal pastebin

    - https://transmissionbt.com/ Torrent client that I actually use for Linux ISOs. Primarily seed different versions of Ubuntu and the latest Arch. I am looking to seed other, lesser-seeded distros, too.

    - It also runs Samba

    A second, dedicated computer also running Ubuntu Server 22.04. It only runs https://pleroma.social for me and a few of my friends.

    A third computer, this time an M1 Mac Mini that is my Plex box. It's running the latest version of macOS Ventura and runs all the *arrs and qBittorrent. It also runs Plex itself, because it's one of the only computers that I found that was low power enough but still supported hardware transcoding in Plex. I've been meaning to find a replacement for it running Linux + an AMD GPU (I have an rx470 sitting around somewhere), but no real good deals have turned up.

  • syncthing-android

    Wrapper of syncthing for Android.

    - Syncthing: i love my magic folders that just sync stuff, amazing software (https://syncthing.net/)

  • nextdns

    NextDNS CLI client (DoH Proxy)

  • arduino-remote

    Control any IR device with a simple serial protocol

    My home server is connected to my TV, so I can have a fully functional desktop environment. Probably the most useful thing on it is a little Arduino that's hooked up to a Django REST API that I can use to control my TV (lost the remote years ago).

    Also the server itself is my ancient T530, which is still quite snappy on Arch!

    Here's the remote code, for anyone interested: https://github.com/ijustlovemath/arduino-remote

  • picoshare

    A minimalist, easy-to-host service for sharing images and other files

    A few things that are well-covered in this thread, but my personal favorite is PicoShare. It is a nice, simple self-hosted file sharing app that fixes a lot of issues with other solutions.

    Email has size limitations. Many services don't like to share .exe files. Some will apply compression (unlisted youtube videos). I like this because it's a simple app that allows you to share files with others, and give them a link to share files to you.

    https://github.com/mtlynch/picoshare

    http://pico.rocks/

  • ATC_MiThermometer

    Custom firmware for the Xiaomi Thermometers and Telink Flasher (by pvvx)

    I've been using a Raspberry Pi as a home server, and it's been holding up amazingly well, given everything I've thrown at it:

    - The excellent Home Assistant, for unifying across Homekit and Google Home and tracking historical temperatures and a couple of automations. The RPi has Bluetooth built in, so I can capture the data from a few Bluetooth thermometer/hygrometers running custom firmware (https://github.com/pvvx/ATC_MiThermometer) without a 802.15.4 bridge or similar.

    - An AirPlay to Google Cast bridge, mainly for listening to Overcast or the occasional YouTube video on Google speakers

    - A SMB server, for file storage and potential Time Machine backups (but I don't currently have enough storage, and locally attached SSDs are just hard to beat in terms of performance)

    - A DLNA server, for watching photos and videos on my TV

    - Tailscale, for the occasional use of my home connection as a VPN when traveling (really glad to be having symmetric fiber for this!)

    - Caddy, as a frontend for everything web facing, to benefit from its excellent Let's Encrypt integration for automatic certificate requests and renewals

    Most of this is running in Docker containers and configured via Ansible, so that if the micrSD card burns out, I can just flash a new one with an empty image and recover from there.

  • mainframe

    IaC for Pi Cluster (Terraform and Kubernetes) (by inssein)

    This was basically my holiday project - Photo: https://i.imgur.com/2AnP4pu.jpeg.

    I'm running Longhorn for storage but haven't figured out backup yet, and haven't got to grafana / prometheus yet.

    I put up my work on GitHub as well: https://github.com/inssein/mainframe. I wanted to create a separate ingress controller for internal dashboards, but for now I just setup a separate nginx-ingress for internal, and using traefik for external, feels wrong.

  • AirConnect

    Use AirPlay to stream to UPnP/Sonos & Chromecast devices

  • ddns-updater

    A simple RFC 2136 dynamic DNS updater (by chenxiaolong)

  • bandersnatch

    A PyPI mirror client according to PEP 381 http://www.python.org/dev/peps/pep-0381/

    It looks like DevPi may just work as a caching proxy as well. I also found Bandersnatch too. https://github.com/pypa/bandersnatch which is a configurable mirror with allow / block lists.

    Essentially want something like DevPi but add the package to the bandersnatch allow list and mirror it from then on. With some extra large packages in the deny list.

    Probably possible to wire that all up reasonably well, but probably just using a caching proxy is 90%+ of the improvement anyways. So may just stick with that.

  • frigate

    NVR with realtime local object detection for IP cameras

    RE: UniFi, they need to each be flipped into "Standalone" mode and then you just follow the instructions over here:

    https://help.ui.com/hc/en-us/articles/221314008-UniFi-Video-...

    I mostly ended up and recommend Axis for IP surveillance, it has nice MQTT integrations and recessed mount options (https://www.axis.com/products/axis-t94s01l-recessed-mount) but almost anything which can do RTSP will work with either a COTS NVR, or something like Frigate (https://frigate.video).

    Another thing to read up on and use when shopping for IP surveillance is ONVIF and the various profiles offered!

  • miniflix

    Miniflix - A smaller version of Netflix powered by Cloudinary

    Is this[0] what you're referring as miniflix?

    [0]: https://github.com/unicodeveloper/miniflix

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts