Okay, let me start by saying that I really do love Home Assistant. I believe that it is a fantastic piece of software, with very dedicated developers that are far more talented than I. Although, that being said, I strongly disagree with a number of their design choices.

My most recent problem has been trying to put Home Assistant behind a reverse proxy with a subpath. The Home Assistant developers flat out refuse any contribution that adds support for this. Supposedly, the frontend has hard-coded paths for some views, to me this doesn’t sound like a good practice to begin with – that being said, I mostly program in Go these days (so I’m unsure if this is something that is pretty common in some frameworks or languages). The official solution is to use a subdomain, which I can’t do – I’m trying to route all services through a Tailscale Funnel (which only provides a single domain; I doubt that Tailscale Funnels where ever designed for this purpose, but I’m trying to completely remove Cloudflare Tunnels for my selfhosted services).

The other major problem I’ve ran into, is that HAOS assumes that you would have no need to run any other Docker services other than those that are add-ons or Home Assistant itself. Which, I’m sorry (not really), Home Assistant add-ons are an absolute pain to deal with! Sure, when they work, they’re supper simple, but having to write an add-on for whenever I just want to spin up a single Docker container is not going to work for me.

Now, some smaller issues I’ve had:

  • There’s no way to change the default authentication providers. I host for my (non-techie) family, they’re not going to know what the difference between local authentication and command-line authentication is, just that one works and the other doesn’t.
  • Everything that is “advanced” requires a workaround. Like mounting external hard drives and sharing it with containers in HAOS requires you to setup the Samba add-on, add the network drive, and then you can use it within containers.

Again, I still really love Home Assistant, it’s just getting to a point where things are starting to feel hacky or not thought out all the way. I’ve considered other self-hosted automation software, but there really isn’t any other good alternative (unless you want to be using HomeKit). Also, I’m a programmer first, and far away from being a self-hosting pro (so let me know if I’ve missed any crucial details that completely flip my perspective on it’s head).

If you got to the end of this thanks for reading my rant, you’re awesome.

  • Matt The Horwood
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    Requiring a full URL will be more of security thing I would guess, as some users put HA on the internet and it could have access to open doors.

    Also I have tried things on sub paths and it got very complicated to know where a service was, a domain keeps things easy to setup and manage. As I run internet facing services for my day job, I have to look at both security and easy of maintenance when setting things up.

    I would say that if you need a path over domain, its a skill issue and you need to find a better way of working.

    • Shimitar@feddit.it
      link
      fedilink
      English
      arrow-up
      2
      ·
      9 months ago

      Not really… Your attitude is the problem.

      Sub paths are simpler to deploy: need only one certificate, need only one subdomain.

      In any case you need reverse proxy so security is not the matter here.

      Your use cases are not mine and both ways should always be possible.

      You never need a subpath over a subdomain, nor viceversa, it is (or should) always be a choice.

      • Matt The Horwood
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        Ok, I dont get your point of view. As I dont see the need to sub path things.

        What I do see is a lot of people who seem to think that a sub-path is good security, cheaper to run and lots of other things.

        First off, you can get free lets encrypt certs and even a wildcard cert if you know how. Also you can get a SAN cert with a little config of certbot.

        Second, you dont need an A record for every domain. You can use a c-name or even a wildcard to catch any domain name.

        Then the security is all crap, if the sub path is on the internet it will get found in time. A domain is just more obvious, you can also name the sub domain anything you want. Case in point is my nextcloud on an owncloud sub domain.

        If you start to look into ways to automate all that, then things are trivial to add to. I use OVH for my domains, as they provide an API that I can use with certbot to get any certificate I want for my domain. I can also use the API to provision a new subdomain, be that an A record or c-name. But I have a wildcard subdomain so that I can spin up anything on any subdomain and I dont have to do any setup.

        • Shimitar@feddit.it
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months ago

          A all my services are behind pam-auth, so nobody unless autheorized can see any subpaths. That fix it for security.

          And that make it that browser will ask you to save password and login for each subdomain… But only once for a subpaths.

          But beside this, is freedom of choice such difficult to grasp? My use cases are not yours, better be free to choose rather than forced, isn’t it?

          I do have few subdomains as well, I know perfectly how to automatize them and in fact I do, but I don’t like having two ways and specially not just because some Dev don’t want to look into supporting subpaths. The number of services not supporting subpaths is the vast minority, so there must be enough people wanting to use them after all. And in all cases, they don’t support subpaths because framework don’t support them (immich) or because devs don’t care (ha).

          Stuff like gitea, gerrit, WordPress, all wiki’s I ever tried, arrs, jellyfin, podfetch are just the first that pops into my mind that I use and support subpaths.