52 comments

[ 2.8 ms ] story [ 122 ms ] thread
With Heimdall I can show additional info for each application, via its API.
Theres are a lot of these home lab dashboards out there, but this is one of the nicer and more well maintained ones I've seen. Kudos!
I tried this a few months ago. It's great with many features.

I wanted something that loads instantly for my homepage, Dashy took 2-3 seconds while Heimdall was instant.

I just created my own little dashboard app (don't want to steal focus so wont link it). But what would you consider instant? This was a focus of mine when creating it and I actually found Heimdall some what slow. On my network heimdall takes ~300ms to load while my own loads in ~60ms. Not a huge difference I know but it's some what noticeable.
Q: What is a Homelab?

It's really unfortunate that the Dashy homepage doesn't start by answering this question, and explaining why you need one.

As nice as the page is, it falls victim to the same conceit that has plagued many OSS project pages since forever, by implicitly suggesting that "if you're here, you already know what you're looking at".

It's when you have a bunch of (typically but not always enterprise-grade) computer and network equipment to play around with at home.

Check out <https://www.reddit.com/r/homelab> if you want a feel for the hobby.

Thanks for the explainer! TIL

I am sort of weirded out that having a computer and random tools that you do geeky things with needs a term, but hey, humans sure do love naming things.

Naming it does make it much easier to find community, resources, etc. A lack of nouns makes me poor google-fu.

There does seem to be a blurry and moving line between "homelab" and "selfhosting" though, which doesn't help clarify things.

Yeah, they're not strict terms. I personally think a significant differentiator though is that "homelab" tends to have a bit more emphasis on, well, the lab part. Ie., there is a certain amount of experimentation going on with some regularity. Beta software and firmware or even hardware, bleeding edge stuff, a higher tolerance for breaking things (and maybe leaving them broken for a bit when something else catches one's eye), etc. Some of the stuff attempted might not have any direct work requirement or value. It might be purely for fun and personal learning, and/or it might have some professional relation in terms of testing out new stuff in a initial way and kicking the tires before any kind of initial serious deployment. I mean, again there are certainly no hard and fast rules, but "homelab" settings often place more emphasis on dynamism than pure reliability, such as virtualizing things one normally wouldn't all on a single box. Virtual routing/firewall/edge and NAS are big examples to me that normally have their own dedicated hardware (be it on the metal or virtualized as part of one type of HA strat, but still dedicated).

Whereas selfhosting is hosting, though by oneself. The big difference is the level of dependence, how much one requires the stuff being up to the extent if it isn't that's an immediate blocker on other work. In the same way one would typically expect a commercial host to be more focused on uptime, redundancy and overall lack of surprises, selfhosting tends to be more conservative, throw more hardware at a problem, invest more time and effort in polish and smoothing interaction with the wider world, etc. Basically the stuff you'd expect for something where "if this goes down on Friday my weekend is shot" vs "if this goes down on Friday eh maybe I'll poke at it Sunday night or next week sometime".

Of course, one can also have both of these in the same home/SOHO/barn or whatever, just as businesses with decent IT will have some sort of minimal "lab" at least to do a bit of testing with before even getting to early staging. I myself am primarily on the selfhosting side of the spectrum at this point, but I do have a semi-isolated lab section as well where breaking world won't impact my work (nor result in upset family members!). No one right way to do it.

Edit: also on topic, no I don't have a dashboard :). I've at times considered products like Prometheus/Grafana/Heimdall and I guess now there's another one I could look at here, but I've never really been able to justify it vs other stuff. They're often fairly heavy or seem to have side effects to worry about (including security, I like to keep dashboards and IPMI highly isolated on VLANs or their own independent physical network entirely), and while it could be pretty and satisfying my stuff tends to either be working or it's glaringly obvious something is broken since I depend on it, or if it's an emergency condition it's blaring notifications at my phone anyway. And same as commercial service dashboards, to me it seems like to really be an addition a dashboard would need a fairly independent chain from what it's monitoring. Otherwise if the core goes down the dashboard also drops too. That means more dedicated hardware, even if only something like an RPi.

I could see a dashboard potentially being handy for unified monitoring of stats and softer errors, stuff that isn't an emergency itself but might be indicative of upcoming issues or issues with world (ISP always having problems at a certain time or failing to meet SLA say). But hasn't been truly compelling yet. Though sometimes the screenshots people put up make me quite tempted!

Edit 2: upon a bit more reflection, non-technical stakeholders are a factor as well. Just because something is selfhosted doesn't mean it's for oneself only, on the contrary selfhosters h...

I really appreciate this answer. Thanks for the thought-provocation.

Self-hosting makes a lot of sense to me. I approve of its proper noun status.

Homelab with an emphasis on testing out K8S or different configurations? Sure. It gets a pass. Sort of like how folks used to assemble their own Heathkit power supplies.

Calling any desk that has a computer, tools and a few RasPis belonging to someone who is comfortable writing code a Homelab? Still icky.

Still, everyone is free to use whatever terms they like. I’m going to finish up in my Plantlab, spend time in my Exerciselab and then go make a sandwich in my Calorielab.

It's a silly little topic but such relatively low stakes geeky discussion are definitely fun on a quiet HN Sunday (as I work to setup a new NAS unit as it happens), glad you found it interesting and a fun thing to contemplate a bit myself. I've believed in more local capabilities for various reasons (not least being in a rural area with crap internet promotes more on your own LAN), long before I heard the "homelab" term. I'm not on any of the sites that use it myself, but it didn't strike me as odd when I first encountered it either.

>Calling any desk that has a computer, tools and a few RasPis belonging to someone who is comfortable writing code a Homelab? Still icky.

Everyone starts somewhere! You can do a great deal with not much which is one of the magic things about tech these days. A few tools and RPis could be more power in some respects than state of the art facilities a couple decades ago. I think it's the spirit as much as anything, whether someone is digging and experimenting. And really don't forget our bubbles, for most people having a single RPi at all, let alone one dedicated to messing around with vs serving a specific purpose, would be unusual. And then if the bug bites them and they want to start going further, what term should be the umbrella under which they head down the 'ol rabbit hole? "Homelab" seems pretty on-point and innocuous?

>I’m going to finish up in my Plantlab, spend time in my Exerciselab and then go make a sandwich in my Calorielab.

Well, if you're actually breeding brand new experimental plants, inventing new exercises or probing the limits of your body with cutting edge bio monitoring/hacking, or spending lots of time coming up with new recipes then no matter how small scale by all means call those all $Xlabs! But by this terminology I think you might be more correct calling them your Selffarm, Selfgym, and Selfrestaurant if you're mostly using them to perform routines you're already practiced at and are interesting primarily in results... :p

There certainly is a lot of overlap between the two.

Homelab is a slightly older term, and has more of a hardware emphasis and makes me picture people with older enterprise gear (Dell R710s/R720s are perennial favorites among that group), older Cisco networking gear, actual server racks and VMWare based setups.

Selfhosted is a bit more modern, and more software focused. More likely to be someone running a bunch of stuff on kubernetes across a bunch of Pis or an old desktop, with Unifi or Mikrotik networking gear

From my understanding, homelab today is a subset of selfhosting, and means selfhosting where you have physical access to the hardware, so usually hosting at home. While Cloud-Hosting can be also selfhosted, but you usually use someone else hardware for it. And while the origins of each are a bit different, the usage today is in that way. We are long past the era were homelab only means experimentation and personal research at home.
"home lab" wouldn't be a name - it would be a description. Changing it to a name only requires removing the space.
> I am sort of weirded out that having a computer and random tools that you do geeky things with needs a term, but hey, humans sure do love naming things.

This seems unnecessarily reductive given what a “homelab” typically refers to.

This does not make sense I don’t expect every single site I visit to explain the fundamentals of everything.
Not everything, just the thing that is fundamental to the ecosystem the site belongs to.
Still a bit unreasonable if you ask me. Nothing wrong with putting the responsibility for googling on the user.
Your assertion that there's nothing wrong with not explaining why a thing exists is not backed by reality.

https://www.youtube.com/watch?v=qp0HIF3SfI4

Of course, it's their choice. But don't conflate that with being the best thing for the project or the visitor. Presumably the site exists to convince people to use it, no?

It's a really common term. Odds are if you don't know what a homelab is then you're quite far removed from anyone who would benefit from this.

While I'm completely in favour of having documentation that is explicit, there is a fine line between that and flooding your landing page with super basic content that doesn't help your target audience just so that those who don't need this can understand why they don't need it. If you can't understand why that is a problem then think for a moment who the audience is and why it's important that your content be tailored for them.

I'm a third-generation maker and inventor. My job requires that I have an intimate understanding of engineering, prototyping, hardware, software and networking. I literally have two kinds of soldering gun on my desk, alongside an oscilloscope and a signal generator. I can talk you through how traffic is routed around the internet and what happens when you press a key on your keyboard in nauseating detail.

Clearly, it's not as common a term as you believe that it is.

I said “common”, not “universal”. I accept that there will be edge cases but that doesn’t mean it is an uncommon term.

Though it does sound like you operate in a different domain. I’ve generally heard the term in relation to sysadmin and related fields. While there’s nothing stopping an electrical engineer nor inventors from having a home lab I’ve generally heard them talk about their environment in more physical terms (eg soldering station) whereas a home lab (in computing context) is often just a rack in a cupboard. So it’s more of an ethereal space. This is all hugely generally speaking, of course. But it might go some what into explaining why you hadn’t heard of the term before.

Looks very neat & I like the groupings.

I've moved away from dashboards in favour of building my own out of HTML and sticking it in a CI/CD that redeploys it on changes.

For what is essentially just a handful of links they're quite heavy & problem prone.

e.g. I spent literally hours troubleshooting a login issue on a self-hosted service. Root cause? Dashboard (heimdall) hammering the service with logins so hard that the service thought it's under attack. All to animate the shiny button on a dash...

I've seen the other day people talking about Heimdall in a thread about self-hosted things.

I do run a (distributed!) homelab, but it's not clear to me what problem these dashboards solve.

I can split the things I run on my homelab in two categories: either "infrastructure", things like VPNs, routing, DB, etc, or "actual apps", like a wiki and whatnot.

For the first category, I basically don't "do" anything to them once they're set up.

For the second, I type directly the URL as I do with any other website.

For my monitoring needs I have a bunch of Grafana dashboards connected to Prometheus. I check them from time to time because I like looking at the pretty colored graphs for some reason, but that's about it.

A lot of people don't have nice urls for their homelab services, having to memorize IP-numbers and ports is a lot harder.

Personally I get a nice feeling of accomplishment from looking at a dashboard with all the services I've set up. It's maybe not super useful but it's nice.

Fair point.

It's true that in my case, one of the first things I did was set up DNS. My lab also has a public domain name that I manage through Cloudflare, which also gives me easy SSL [0] for my services.

---

[0] "easy" as in I don't have to have an open port for Let's Encrypt. And I'm also uncomfortable with giving full DNS access to every service, because I haven't yet found a registrar with sane access control for zone management.

I've never tried this before, but take a look at https://www.eff.org/deeplinks/2018/02/technical-deep-dive-se..., specifically the CNAME and ACME-DNS methods.
I was familiar with the CNAME workaround, but it's not practical, since I'd have to manage X different zones, one for each redirection. I thought about abusing DuckDNS or something similar for this, but I figured it wouldn't be fair, so I never did.

At one point I set up an internal Smallstep CA [0], which kinda worked but was pretty fragile, so I abandoned it.

I didn't know about ACME-DNS. It looks interesting, but for the time being tunneling everything through Cloudflared works well enough for my needs.

[0] https://smallstep.com/

So what I did was put acme-dns on a publicly accessible server I have, and use DNS zone delegation to that, as like you, my provider basically gives you an all or nothing API key as far as DNS access goes.
>A lot of people don't have nice urls for their homelab services, having to memorize IP-numbers and ports is a lot harder.

There isn't much excuse for that though. In a homelab setting in particular I think you should just run your own DNS and CA with your own domain. The Name Constraints option is handy there for containing scope (also useful for restricting the scope of any other internal CAs a business might ask you to run for example via cross signing).

I don’t want to remember names either. I type in ‘hei-‘ in the browser, it autocompletes to Heimdall, then I click the shiny button of the thing I want.
Hah, I don't want to remember either. I have 18 services, so it's nice to have a catalog of what I have installed.
I don't suppose either of you have considered, you know, bookmarks in your browser ;)? And for tons of services a dashboard wouldn't be my first choice for cataloging/planning anyway, there are other tools for more or less automated planning/deployment/herding. One still often needs to actually know some addresses too just to make use of services in non-web contexts, and a way to have things not break if IPs need to be adjusted. And you still need some way to make sure everything is talking securely. More than one way to do that too but CAs scale pretty well and have decent general support even amongst end devices.

But for a homelab whatever one wants ultimately is fine, whole point is to experiment after all!

> I don't suppose either of you have considered, you know, bookmarks in your browser ?

One commenter mentioned sharing some apps with other people, so browser bookmarks may not be the best solution.

I've actually been looking into self-hosted bookmark managers yesterday, some of which can handle sharing. These may work.

My use case is somewhat similar, in that I sometimes use PCs different from my main one, and they also use different browsers. But I haven't found anything that I felt like taking for a spin.

Bookmarks don't show me the status of the apps. I also use multiple browsers in multiple devices so my bookmarks are... scattered. Very fault tolerant, because they exist in multiple locations in different forms. That's something I have to centralize. Someday.
Is that any different than me typing 'gite' and it autocompletes to my gitea DNS, or 'jell' and it autocompletes to my jellyfin?

I'm guessing if you are self-hosting these things they are used often enough that they would be in the top of your autocomplete?

In theory I agree, it's not hard and if you can run a homelab you definitely should be able to set it up. But from what I've seen a lot of people done.
If you don't have DNS you can't have publicly trusted certificates, I'm very doubtful homelabbers go through the effort of getting servers, configuring services and the lot without the most rudimentary protocol in place. Self-managed or not, it's VERY essential with functional DNS
I've got about 15 of those "actual apps", and my family and friends use some of them too.

I can share one homepage to all of them, and only update one place if there are changes.

Dashy also has status lights for services, which isn't a replacement for real monitoring, but has been useful.

Regarding your second point: When I initially configured my Cloudflare Tunnels + Access setup, I spent way too much time getting the App Launcher [0] nice and pretty. Seemed really useful seeing as I came from a setup with VPNs and internal IPs, but did not realize that because Cloudflare Access gives you free pretty URLs, I would never look at it again…

0: https://developers.cloudflare.com/cloudflare-one/application...

That’s really neat. I want to expose some self hosted services externally. Is this a good option? I see that there’s a free plan. How’s it working for you?
I'm also doing this and I like it.

One of the most useful things for my case is the access control. Basically, I want my services to be accessible from anywhere, but only by me. This allows me set up authentication before the requests even hit my server.

If you want your services to be world accessible, that works well, too. They even have an agent that initiates the connection from the server, so it works well behind ISP CG-NAT, dynamic IPs, etc, and you don't have to mess around with incoming connection filtering.

This is really cool. So I just exposed an instance of next cloud, but it requires an email verification before being accessible. Super cool.

Is the cloudflared smart enough to route connections locally? Hm, not sure how that would work.

I'm sitting at home, but accessing my nextcloud through the cloud flare. Is there a way to get it to talk to nextcloud locally or is it going through the net?

> Is the cloudflared smart enough to route connections locally? Hm, not sure how that would work.

Do you mean have cloudflared expose your local server locally? No. It's just a reverse proxy of sorts between cloudflare's network and your local server.

What you want can be achieved with local DNS, so that nc.tra3.com resolves to <cloudflare-ip> from outside and to 192.168.1.2 from inside. But you should probably also have a local certificate for this to be fully transparent.

Yeah it’s the typing bit I can’t bothered doing. Heimdall has all the IPs and ports with an easy to recognise icon. Save’s me remembering things when I want to do things.

It is my ‘job to be done’, and it does it well.

That is the problem these things solve.

I guess the distinction for my setup and the parent poster's is having an actual DNS setup? Typing foo and letting it autocomplete to foo.xyz.com in my address bar is faster than going to a dashboard and then clicking a link on the dashboard.
Some people like clicking at things.

For me, if I have the browser already open, it's control-L type a few characters enter to get to most of my usual destinations.

I just use [service].domain_i_own.com

Cloudflare Tunnels or just proxying is so ease.

Radarr, Jackett, Sonarr

I get excited every time I see the word Homelab. I am hopping to see people running research analytical lab experiments. Like dashboards of all their esp8266 IOT sensors. Live 48x64 pixel streams of spectroscopy machines. Flow rates on the micro-dosers. Looping time lapses of the past 24 hours of reactions. Tabs with KVM screens of old lab live equipment that where saved from the scrapers like electron microscopes running on 386's. Links to their fellow live HomeLabers. Gosh, I think am I just going to start my own genre of LabPunk fiction.
The woman who develops Dashy is incredibly talented, and is extremely responsive to issues and pull requests for this project. Take a look at the pipelines she has added to the GitHub repository- it’s almost ridiculous the amount of automation that can be accomplished with them.