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.

  • hedgehog@ttrpg.network
    link
    fedilink
    English
    arrow-up
    32
    ·
    6 months ago

    Have you considered not using the Home Assistant OS? You don’t need to run it to use Home Assistant. You can instead set your host up with some other OS, like Debian, and then run Home Assistant in a docker container (or containers, plural) and run any other containers you want.

    I’m not doing this myself so can’t speak to its limitations, but from what I’ve heard, if you’re familiar with Docker then it’s pretty straightforward.

    A lot of apps use hard coded paths, so using a subdomain per app makes it much easier to use them all. Traefik has middleware, including stripPrefix, which allow you to strip a path prefix before forwarding the path to the app, though - have you tried that approach?

    • aksdb@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 months ago

      Strip prefix won’t work if the frontend expects to find paths at absolute locations. You would need to patch the html, css and js on the fly, which is somewhere between ugly and (almost) impossible.

      I would also suggest to simply use custom (sub) domains. Especially in your intranet you can have whatever domains you want.

    • MaggiWuerze@feddit.de
      link
      fedilink
      English
      arrow-up
      10
      arrow-down
      6
      ·
      6 months ago

      You can’t use add-ons when running HA as a docker container, which basically lobotomizes it.

      • Maximilious@kbin.social
        link
        fedilink
        arrow-up
        13
        ·
        6 months ago

        Yes you can. It requires those docker containers to be installed and plugged into it on a stand alone system. This is exactly what HAOS is doing behind the scenes for is users and why many stick with it.

        • Big P@feddit.uk
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          1
          ·
          6 months ago

          You don’t get the direct integration then though, as far as I’m aware there’s no way to manually setup an addon

          • infeeeee@lemm.ee
            link
            fedilink
            English
            arrow-up
            4
            arrow-down
            2
            ·
            6 months ago

            What direct integration? You get a button on the UI, vs you do everything the way you want.

            HAOS is intended for people who want everything to just work, without much fiddling. If you need something more, you need a docker based install. You can do everything there and even more, but you have to set it up manually.

            • helenslunch@feddit.nl
              link
              fedilink
              English
              arrow-up
              7
              arrow-down
              2
              ·
              6 months ago

              HAOS is intended for people who want everything to just work, without much fiddling.

              AHHHHHHHHAHAHAHAHAHA

              • fedroxx@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                6 months ago

                But seriously. I want to recommend haos to friends and family but when they ask, I always tell them it’s complicated.

                I know them. I’m their personal help desk. As a software engineer, it’s easy for me but no way could they do a fraction of what I’ve done easily.

                To an average user, yaml itself may as well be C++.

      • vzq@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        6 months ago

        Add ons are just shitty packaging of other software. Just run the other software directly.

        • JustEnoughDucks@feddit.nl
          link
          fedilink
          English
          arrow-up
          2
          ·
          6 months ago
          • No backup solutions besides manual backing up and then setting up baremetal backing up

          • no configuration editor

          • HACS works, but no custom addons

          • manual configuration of esphome/nodered/mosquitto (I prefer this though)

          I prefer docker because it is comfortable for me and I run all my services on one server, but it is indeed a bit less easy.

          • aksdb@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            6 months ago

            When I host multiple services, I need to back them up as well. I simply mount all data volumes of all containers into a unified location that gets backed up by kopia every hour.

            Since the volume is directly on disk, I also didn’t have any problems editing configuration files.

            The things I see listed as addons on the website are dedicated services anyway, that have images of their own you can easily spin up as containers.

            I think if someone is advanced enough to want to run HASS on their own together with other stuff, they prefer to have more control anyway.

    • sabreW4K3@lemmy.tf
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      This was going to be my suggestion. Just run home assistant as a Docker container, problem solved!

  • grue@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    ·
    edit-2
    6 months ago

    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.

    With the caveat that I can tell just from your post that I certainly know way less about this stuff than you do, HAOS’ assumption seems pretty reasonable to me. Isn’t the point of using HAOS (as opposed to installing HA some other way) that you’d be either (a) using it by itself on bare-metal hardware, or (b) using it in a VM? I’m running HAOS and Docker in two different VMs on Proxmox, and it’s working fine for me so far.

    (The first complaint you mentioned, about reverse proxies and subpaths, sounds a lot more legitimate. In fact, that’s something I’d like to learn more about because I haven’t yet figured out how to make my HA install – or anything, for that matter – accessible outside my LAN and “Tailscale Funnel” sounds intriguing.)

  • Matt The Horwood@lemmy.horwood.cloud
    link
    fedilink
    English
    arrow-up
    19
    arrow-down
    1
    ·
    6 months ago

    I think your missing the point of HAOS, it’s an appliance. You don’t manage it like a normal self host system.

    Once you treat it as an appliance, it’s great. Also there is a portainer agent you can run that will connect to a portainer instance.

    As for your tunnel issues, maybe the tunnel thing is your biggest issue. I run all my self host stuff on its own subdomain, if I want to route something home I use the site to site VPN I have. Even a cheap ovh vps could be a way to run stuff on subdomains

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

      Require a subdinain should not be mandatory in 2024.

      Sub paths should be such a basic feature that’s ridiculous devs don’t even take that into consideration.

      Why? Because a software requiring absolute paths is as old and obsolete as an msdos program, and the only real reason it happens today is… Bad design choices or limited frameworks.

  • ninjan@lemmy.mildgrim.com
    link
    fedilink
    English
    arrow-up
    9
    ·
    6 months ago

    I can’t grasp your use case I feel, pretty much all your complaints seem… odd. To me at least.

    First subdomain. I think HA is completely right that proxy with a subpath is basically an anti-pattern that just makes things worse for you and is always a bad idea (with very few exceptions).

    As for your tunnel I don’t know how you’ve set it up and I haven’t used tailscale but them only allowing one domain sounds like a very arbitrary limit, is it something that costs money to add? I use NetBird which I selfhost on my VPS and from there tunnel into my much beefier home setup.

    Then docker in HAOS. The proper way I feel of running HA is for sure HAOS, and also running it in its own VM / or on dedicated hardware. This because you will likely need to couple additional hardware like a stick providing support for more protocols like ZigBee or Matter. It really isn’t a good solution for running all your self hosted stuff, and wasn’t ever intended to be. Running Plex in HA for instance is just a plain bad idea, even if it can be done. As such the need for an external drive seems strange as well. If you need to interact with storage you should set up a NAS and share over SAMBA. All this to say that HA should be one VM/Device, your docker environment another VM.

    As for authentication there are 10k plus contributors to Home Assistant yearly but very few bother to make authentication more streamlined. I would’ve loved OpenID/OAuth2 support natively but there are ways to do so with custom components and in the end I quite strongly feel that if the end-users of your smarthome setup (i.e. the wife and kids) need to login to Home Assistant then you’ve probably got more work to do. Remote controls which interact with HA handle the vast majority of manual interaction and I’ve dabbled with self-hosted voice interfaces for the more complex operations.

    Sorry if this came across as writing you on the nose, that’s not my intention. I just suspect you’re making things harder for yourself and maybe have a strange idea around how to selfhost in general?

    • vzq@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      3
      ·
      edit-2
      6 months ago

      First subdomain. I think HA is completely right that proxy with a subpath is basically an anti-pattern that just makes things worse for you and is always a bad idea (with very few exceptions).

      It’s only an “anti pattern” because app developers are, on the whole, lazy bastards that start out hard coding stuff and then get discouraged at the amount of work needed to fix things after the fact.

      I should know: I am one of these people.

      It’s crap, it’s best to roll with the punches and use a sub domain.

      • ninjan@lemmy.mildgrim.com
        link
        fedilink
        English
        arrow-up
        4
        ·
        6 months ago

        That’s one part of it, but the other is that there’s no proper way to ensure you won’t cause issues down the line and it makes the configuration unclean and harder to maintain.

        It also makes your setup dependent on seemingly unrelated things. Like the certificate for the domain which is some completely different applications problem but will break your Home Assistant setup all the same. That dependency issue can be a nightmare to troubleshoot in some instances, especially when it comes to stuff like authentication. Try doing SSO towards two different applications running on different subpaths on the same domain…

  • NeoNachtwaechter@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    6 months ago

    do – I’m trying to route all services through a Tailscale Funnel (which only provides a single domain

    Seems like you have some limitation (I really don’t know tailscail funnel) in your setup, and now you expect them to work around it.

    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.

    Yes, HAOS is great when you have one dedicated machine for it, for example a RPi. That’s the whole purpose of HAOS, as far as I understand.

    If you already have a zoo full of docker containers, then you want your Home Assistant (without HAOS) in just one more of your own containers.

  • Nyfure@kbin.social
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    6 months ago

    Many systems dont support subpaths as it can cause some really weird problems.
    As you use tailscale funnels, you really want incoming traffic from the internet. I am not sure thats a good idea for e.g. homeassistant that is limited in access anyways.
    Might aswell use tailscale and access the system over VPN.

    And for anything serious i wouldnt use something like funnel anyways. Rent a VPS and use that as your reverse-proxy, you can then also do some caching or host some services there. Much simpler to deal with and full support for such things as you then have an actual public IPv4/IPv6 address to use.
    Heck, dont even have to pay for it with the Oracle Always-Free system.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    6 months ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    HA Home Assistant automation software
    ~ High Availability
    HASS Home Assistant automation software
    LXC Linux Containers
    NAS Network-Attached Storage
    Plex Brand of media server package
    RPi Raspberry Pi brand of SBC
    SBC Single-Board Computer
    SSO Single Sign-On
    VPN Virtual Private Network
    VPS Virtual Private Server (opposed to shared hosting)

    9 acronyms in this thread; the most compressed thread commented on today has 10 acronyms.

    [Thread #519 for this sub, first seen 17th Feb 2024, 08:05] [FAQ] [Full list] [Contact] [Source code]

  • Norgur@kbin.social
    link
    fedilink
    arrow-up
    2
    arrow-down
    2
    ·
    6 months ago

    I’m always very wary of systems that require a user to deviate as much from the “usual” structure almost all other services use. HAOS has really weird configs and “all the functionality” that presumably breaks when you use docker and don’t have the supervisor for docker… well… If what HA did was the way to go… whi is it that tons of services use docker’s rather powerful internal networking features just fine but HA of all things can’t do that and requires weird addons that for some reason cannot live on any other system than a Debian with weirdly specific modifications (bye bye cgroupsv2)? This will break most other functionality of that host Debian. I mean… if only there was a widespread-way to provide a highly customized Linux kernel in an ephemeral environment that can just be plugged in and out of a host machine without changing the host machine itself… Nah, can’t have that, let’s cause more overhead with a VM…

    I’m not willing to make that kind of modifications to my whole setup just for HA and in the long run, this rift between “the way it’s usually done” and “The HA-Way” will become bigger and bigger, causing more and more problems.

  • vzq@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    6
    ·
    6 months ago

    I took a look at HAOS and declared it to be junk. I admire your optimism, but you should too.

    It’s aimed at a no man’s land of people that run HA but don’t know how to manage their own docker. It’s just weird.

    • echo64@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      6 months ago

      This “no mans land” you speak of is probably 99.999% of home assistant users. Managing docker is not something that most people want to do or know about.