• 1 Post
  • 12 Comments
Joined 1 year ago
cake
Cake day: June 29th, 2023

help-circle

  • So it can be done, it just–required a lot of steps and me making a mapping spreadsheet of all the containers. But! Automations and scripts run in the homeassistant container, while when you ssh, you’re going into the ssh addon container which should have been obvious and really was once I finished mapping all the containers.

    Goal: I need /usr/local/bin in the ssh container so I can run scripts over ssh and access my function library script easily without ./path/to/script.

    Summary: ssh into HAOS from the homeassistant container with an HAOS root user (port 22222), run docker exec to get into the ssh addon container, then make your symlinks for /usr/local/bin.

    (Note: this is ridiculously complicated and I know there has to be a better way. But this works so I win.)

    1. Get access to HAOS itself as root: https://developers.home-assistant.io/docs/operating-system/debugging. Verify you can login successfully.
    2. In homeassistant container:
    • a. create an .ssh folder (/config/.ssh)
    • b. add the authorized_keys file you made for step one.
    • c. add the public and private keys you made for step one (should be in the ssh addon container).
    • d. set permissions;
    chmod 600 /config/.ssh/authorized_keys
    chmod 600 /config/.ssh/PRIVATE_KEY
    chmod 644 /config/.ssh/PUBLIC_KEY
    chmod 700 /config/.ssh
    
    • e. In /config/shell_scripts.yaml or wherever you put your shell scripts, add the script you want to use to update /usr/local/bin: UPDATE_BIN_SCRIPT: /config/shell_scripts/UPDATE_BIN_SCRIPT
    • f. Restart HA.
    • g. Check it in Developer Tools->Services

    I have no idea how consistent the ssh addon container name is usually but it’s different on all three of my installs, so insert your container name for SSH_ADDON_CONTAINER_NAME

    Steps: login to HAOS, go into the SSH Container, and do the update. This is horribly messy but hey, it works.

    UPDATE_BIN_SCRIPT

    #!/bin/bash
    
    # OPTIONAL: Update some of the very outdated alpine packages in both homeassistant and the ssh addon (figlet makes cool ascii art of my server
    # name).   You'll need to run it twice; once for the homeassistant container, then again in the ssh container.  Assuming you want to update packages,
    # anyway
    # update homeassistant container packages
    apk add coreutils figlet iproute2 iw jq ncurses procps-ng sed util-linux wireless-tools
    
    # ssh into HAOS and access docker container
    ssh -i /config/.ssh/PRIVATE_KEY -p 22222 root@HA_IP_ADDRESS << EOF
    	docker exec SSH_ADDON_CONTAINER_NAME \
    	bash -c \
           'apk add coreutils figlet iproute2 iw jq ncurses procps-ng sed util-linux wireless-tools; \
    	if [ ! -h /usr/local/bin/SCRIPT1 ]; then echo "SCRIPT1 does not exist"; \
    	ln -s /homeassistant/shell_scripts/SCRIPT1 /usr/local/bin/SCRIPT1; echo "Link created"; \
    	else echo "Link exists";fi; \
    	if [ ! -h /usr/local/bin/SCRIPT2 ]; then echo "SCRIPT2 does not exist"; \
    	ln -s /homeassistant/shell_scripts/SCRIPT2 /usr/local/bin/SCRIPT2; echo "Link created"; \
    	else echo "Link exists";fi'
    EOF
    
    echo "Done"
    

    I am going to feel really stupid when I find out there’s a much easier way.


  • Docker containers are designed to be immutable. The moment they’re stopped and recreated, any changes to them ads thrown out. You’re supposed to add a layer to your Docker image if you want to add command lines and such. That’s why it’ll keep deleting your stuff every time you update.

    It took me until I put Home Assistant on my server in a docker container to realize what was going on there. I use docker more now, but it’s really, really nothing like this.

    Running the script inside Docker should put it in the right place, but I wouldn’t advice doing it that way.

    That’s what I’ve been doing manually over regular ssh (not the 22222 port one).

    To work around the path issue, maybe consider using hard links rather than soft links?

    That’s what I think I need to do, but the only ‘hard’ links–at least according to multiple find -name/find -iname searches on the ssh 22222 port–are all in /mnt/data/docker/overlay2 and /var/lib/docker/overlay2. I get there’s a working pattern with the overlays but dear God why.

    Alternatively, you could figure out where HAOS stores the Docker config and add a volume definition of your own. You’ll probably be able to put all of your files in /usr/local/bin by adding a line like “- /path/home/host:/usr/local/bin” in the right place. I don’t know where this config is stored, though.

    Okay that makes sense. I guess the first step is to get the container structure and volume.

    Thanks so much! I’ll update if I find the solution or die trying.



  • Logically, I want to say no, not really, but I also would have thought the blackout and ongoing protests wouldn’t really affect Reddit and they’d ignore it. Reddit itself, however, seems incredibly determined to pursue a course of action which requires performing This Does Not Affect Us At All as dramatically and publicly as possible given the slightest opportunity whether anyone cares or not. This doesn’t even include the admins playing subreddit roulette that encompasses actively rebelling subs, subs deep in malicious compliance, and subs that have no idea wtf is going on they just want to talk about their weird NSFW fetish in peace.

    So no, I don’t think so, but I’m beginning to wonder if Reddit thinks there is and what they’re seeing on their side that I’m not.


  • I semi-regularly distro-hop, but Xubuntu is the distro I keep coming back to between hops to take a break or when one goes (temporarily) dormant. It’s currently running on my primary server/linux machine.

    Reasons: 1.) It’s light on resources 2.) It’s very simple and clean. 3.) It works with all the programs I use regularly; only one needs to be hand-compiled (but that one has to be compiled for literally any Linux machine). 4.) I know it. Scrub/partition/install/configure in under an hour. I can pick up any of my projects again immediately where I left off.


  • The only reason I have social media accounts under my wallet name is to avoid anyone wondering why I’m not on social media (also: grandparents). Everyone IRL who I care enough about to actually explain know I login once a year in a separate browser (under incognito) and check every privacy setting from my checklist and update if it’s important (like job change). LinkedIn I check regularly, but that’s because a.) I only connect with people from work and a lot of them do think it’s important to have strong networks (and they could be right, no idea) and b.) LinkedIn has an education section that my job really likes because it has free classes and when I get bored at work, I can do a quick class in something (nothing they actually want us to do; I have to work in the nightmare that is Agile, do not make me take yet another class about the benefits of this software development hellscape, thanks).

    Honestly, I try to give the impression I’m not into social media IRL; there are like, three people in my daily life who are allowed into my online life and one because we more or less both got the internet at the same time and started a mailing list together. Don’t get me wrong, I know a lot of nice people IRL, but not the type I want to introduce to the friends I made online.


  • Egg boiler. On the surface it’s just the most gadgety pointless product invented but I literally wore it out because suddenly I could have hard boiled eggs and no risk of setting my apartment on fire because I forgot about the eggs. After I move, it’s the first thing I’m getting for my kitchen because low-risk hard boiled eggs are totally worth it.

    There’s a lot of seemingly ‘useless’ kitchen gadgets like this: full size food processor, waffle maker, breadmaker, even my ridic large instapot. I don’t use them every day or even every week and no, I don’t need them for daily life. Yes I can mince fifty thousand vegetables for this really complicated soup by hand or make bread from scratch or do whatever you do to make a pot roast without them–but I won’t do those things. I know me pretty well now; if I want to make that soup, make some fresh bread, or do that thirty-step fancy pot roast, I need those tools or I’ll default to frozen pizza and maybe have fresh Italian bread if I went to Central Market recently and remembered to grab it from the bakery.


  • I’m a QC analyst and we are fully Agile, so I’m required to attend ever. team. meeting. Discovery, story point estimation, design spikes, any day can be poorly handled emotional regulation day and whoever’s feeling it is making it everyone’s problem when all we want is to finish a few maintenance items and maybe add a comma to some text. Though the testers have nothing to do with this after story point until there actual code migrated to one of the testing environments, we are forced to bear witness to entire dev teams made up of people from three to eight countries, whose only common language is English and as often the only native speaker, I am the only one who can’t mutter not very goddamn quietly in my native tongue that no one else understands; this may have been my motivation at one point to learn Welsh on Duolingo. A Project Manager making three times more than anyone else in the room sometimes swoops in during SCRUM two weeks into our sprint cycle to be perky at us and–on far too many occasions for this to be random–informs us the acceptance criteria had a couple of updates before swooping back out to PM something else’s life. We all hate her quietly until someone who went to check JIRA notes there are double the number of criteria and the user story is not the same in any way;. then everyone but me gets to hate her verbally with no one the wiser. I maintain bitterly grudging silence because everyone in the room speaks English, sometimes better than I do, and they have been in Texas long enough to pickup conversationally hostile Spanish. Our scrum master will either grimly pretend it’s always been this way or very blatantly not care.

    At final demo as the tester, I will perform a dramatic rendition of ‘page with comma’ and ‘title:justfication left’ or run batch scripts in terminal while they watch absolutely nothing happening and nod wisely. Half the people in attendance wears suits for a living and have never used a computer; they have secretaries for that. Two worked with my mom and are quietly judging my performance and find me lacking. One stakeholder will ask a thousand questions, five of which have any relation to what we’re doing and I am expected to answer with no discernible change in my performance. Someone is watching TV and can’t be fucked to turn down the volume. Everyone else sits in eerie silence and I might hear a snore. Every one of these people are considered qualified enough to decide if we’re did a good job and sign off on it so we can finally end the sprint and the code can be added to the next release to production. No one feels a sense of relief or satisfaction; at least one dev hasn’t slept since the PM destroyed our lives and may be clinically insane.

    Our sprints last four weeks with a prep week in between; we will experience some version of this cycle of dev hell roughly eight times a year and sometimes involving the legislature making their lack of time management all of our problem. Only one sprint will go as planned. One.

    The worst part is; despite this, knowing full well what hell is before me, I went back to college for software development of my own free will.


  • So after twenty-something years on social media, along with mailing lists, messageboards, usenet, this is a topic I think about literally every time I have to add, change, migrate, delete my account as I migrated from platform to platform like some virtual vagabond between text-driven city-states. A virtual vagabond with no worldly goods, no name, no history, and completely invisible to all. To exist, I must apply to the City Leader, and if accepted, I get a name, a nice studio apartment, and visibility as well as contact with other humans after watching a short commercial every five or so humans. If I leave, am thrown out, or the city is burned down, I can’t take anything the city gave me with me. By ‘gave’, I mean ‘loaned’ btw; none of those things were actually mine.

    All the discussion of whether or not to federate with Threads were interesting in that in general, it’s kind of pointless. A server instance isn’t a democracy; the owner’s opinion is the only one that matters. If you don’t like it, leave. And I don’t argue their right to do so; they’re paying the bills, doing the upgrades, eating grapes with robot butlers, I don’t know their lives. Federated means anyone can run their own not-twitter or not-reddit; go for it. All you need is money, free time, and the knowledge of how to register a domain name, get, run, secure, and maintain servers, and install and configure the program, lure people in, and avoid breaking any national or international laws. Like I said: I really seriously do not argue the owner’s right to decide anything for their server. i know how to do all those things and I ran several websites and archives: I wanted a nap before installation step.

    Fediverse is a massive step in loosening the stranglehold megacorporations had on our ability to shitpost in peace and talk about our cats without feeling stalked by people wanting to sell us shit or sell our browsing habits, blood pressure, and underwear size to those who will the try to sell us deeply individualized shit; it’s the circle of life, man.

    Wow this got long but feelings.

    So at this point–two decades and change of social media, the rise and fall of social empires, so much virtual vagabonding across the virtual desert to find a new city-state…I don’t think it’s too early to consider getting around to a productive discussion of how we go about separating the individual identity from the community and define what is theirs to keep no matter where they are. If there was ever a place and time to start building a model, it’s where all the city states are allies and the individuals can interact with each other no matter what city they’re in. The account transferability in Mastodon is a really good start, but it’s not a solution, much less the solution. It’s a beginning.

    I don’t expect to have a working, finished, flawless product in six to eight weeks or six to eight months; I expect it to slide in three weeks and two days after the announcement that it’s ready for alpha testing and immediately break the first time a tester opens it; it’ll be another month before it goes into testing again. I expect it will be a weird buggy mess of wtf after months of virtual warfare and everyone will hate it before the rough draft of the design documents are even released. I expect there will be one weird guy who really thinks everything should be written in Rust because he’s insane and never sleeps. Five to eight devs will dramatically quit; one will quietly move to Utah and farm emus. None of them will be the Rust guy; you’re stuck with him. I expect the working version after testing is done will be hated by everyone and probably kind of crappy. But it will also be amazing, because as of it’s release–no matter how shitty, buggy, or how many inexplicable design choices are made–the individual exists outside of being community property and that no matter where we go or how much we pissed off that admin or if our city-state was nuked from orbit, there are things that are ours and we get to keep them.


  • I’ve been thinking on that and assuming fosstodon and lemmy.world both agree to defederate with Threads, I’m going to go ahead and set up regular donations. I only use DW a few times a year, but I renew my premium membership every six months and it’s not cheap. I want to keep supporting it because its model does not include ads at all (premium gives you lots of icons, too, and I used to be a huge icon person, so I can’t say that’s not a consideration). Unless I lose my job or something, I’ll keep paying until death or dw closes whether I ever use it again; it’s worth supporting.

    I was already considering it–when i joined mastodon I bought their stickers to show my appreciation–but this is been a wake-up call. If lemmy.world decides to federate, I mean, I’m not going to leave, but I am going to email lemmy.ml about why my application is still pending and use that for my primary.


  • Hard agree.

    I don’t really think federating with them is doomsday, tbh (though I go back and forth on this one), but that doesn’t affect my primary reason for my nope. Threads consolidates everything I hate about corporate social media–and for that matter, all social media–without a single part I actually liked and made dealing with the other parts worth it. This is not a twitter clone; it’s like someone asked chatGPT to create a social media network based on twitter for other chatGPT bots to talk to each other. For fuck’s sake, it doesn’t think its users should control what they see on their own feed.

    I am perfectly willing–even eager–to perform melodramatically about things that annoy me in public for fun and when I’m bored and applaud others doing the same; it’s fun times for all and possibly my favorite thing ever. This is not that.

    Threads makes my skin crawl on concept. This is not ‘they do not align with our values’ because come on, Fediverse contains a multitude of values and invents more and i bet if asked, everyone here would list off a different set of values they believe encompass Fediverse and now I’m tempted to see because it would be hilarious. But we can’t even get that far; Threads has no values. This would be a marriage of convenience to a real doll fueled by Facebook’s algorithms and sponsored by Wal-Mart; whether or not it’s a danger to Fediverse shouldn’t even have come up because the first question that should be on anyone’s minds is ‘wait, this is actually a serious question?’ and have been answered ‘lol of course it’s a joke, I just forgot to add the /s’.

    I’m still waiting for that /s.


  • Both specific and in general 1.) Nectar mattress. The only mattresses i’d ever bought were from amazon and very on sale. Important Life Advice: whatever you have to do to make i happen, get a good mattress. Even my bed approves and it thinks everything is beneath it, including me.

    2.) My bed.

    Oh boy, here we go. This goddamn bed.

    I bought it roughly twenty years ago and it literally took my entire tax return at my first job and then some to get it and the very first piece of furniture I personally picked out and bought for myself which may explain absolutely nothing about how I ended up like this.

    It’s fairly straightforward, plain four poster queen bed but so incredibly melodramatic no matter the room I put it in, this thing will dramatically not fit and carry on like it’s actually in a castle tower in 1700s Frances waiting for a princess to sleep in it (it did not act like this at the store, okay). It has an unnecessary number of parts (some really could have been consolidated and a couple I’m not sure even have a function other than to add time to assembling it) every piece of it is awkward to move, even the parts that have no reason to be and don’t look like they are, and every single piece is ten times heavier than than look or is reasonable, sane, or really should even be possible. The wood is dark and does a very cool dark gleaming thing, and it takes hours to clean and oil it to a soft gleam (so. goddamn. many. parts). Twenty-four hours later it’s sitting there dull and dramatically telling everyone who sees it I never clean it and also use substandard wood oil

    It takes a very base minimum of two people to even attempt to put it together and you better not have plans for the rest of the day because it doesn’t matter how many times you have done this, somehow, you will always get six parts wrong because whoever designed this has another job making complicated puzzle locks that you will never solve and will die mad about it (this person is a sadist). Just looking at it in any given bedroom I live in, it makes me feel I should be wearing something long, white, and flowy while waiting for my angsty vampire lover to visit me in the dead of the night and not taking my night’s sleep shorts and a tank top.

    This bed is a snobby, judgemental asshole who acts like I didn’t buy it at the goddamn Roomstore at ten percent off because it was a floor model.

    But. it’s a goddamn tank that’s been in substandard moving vans and the backs of multiple trucks and dropped down stairs and sometimes forgets to at least look scuffed. It will survive all the wars and still give its occupants a great night’s sleep. Those deceptively slim posts are strong enough to joust with a burglar, beat him to death, and then put back and rehang my very melodramatic bed curtains on them (though I’ll need a little hysterical strength to hold them up for very long; I am not kidding how stupid heavy those thing are and should not be). I love this bed, it is my soulmate, and it is where I will sleep until I move to a convenient grave. I hope all of you are able to have one of these in your life and if you already do, you have my condolences; but it’s ride or die now.

    3.) The best headphones I can afford and a budget for potential upgrade/replace every two years (you don’t have to use that timeline,but it works for me). Related: Sonos speakers. No, they are not the best in any class but they are good to really good in multiple speaker classes and are affordable–if you budget strictly and buy a piece at a time or watch for amazon sales like it’s your job–for normal people.

    4.) Kindle may actually be the most important single decision I have made in my life. I like books; I didn’t want to use a screen. I did it and a decade and change greater with slowly degrading eyesight I bless the day I decided to try it every day. Currently on an Oasis.

    5.) Giving up and budgeting specifically to pay a ridiculous amount of money for my jeans. Sure, the receipts legit horrifies me, but they fit perfectly, are crazy comfortable, can pretty much survive anything I do to them (and I am hard on my clothes) and some have been with me since before the Obama administration and don’t even have a loose thread on them. I have literally every single pair i ever bought and they still look great (and I never add up the cost of them all and what thing I could have bought with that much money, God).