That’s a shame. TTeck pretty much built my Homelab.
Raspberry pi4 Docker:- gluetun(qBit, prowlarr, flaresolverr), tailscale(jellyfin, jellyseerr, mealie), rad/read/sonarr, pi-hole, unbound, portainer, watchtower.
Raspberry pi3 Docker:- pi-hole, unbound, portainer.
That’s a shame. TTeck pretty much built my Homelab.
I thought the headline was not conveying the emphasise. “We’re going to be ok” says member of the owning class.
My initial inception of this box was to have it request a static IP so I knew “box.ip”. Then tape then tape some thing like this:
Box.ip Service1:port Service2:port …
Onto the case. Then in NPM have it proxy requests to “box.ip:8096” to “tailscale.ip:8096”. But alas, I couldn’t figure it out. I could get 1 service to work but not multiple.
I couldn’t ask someone to write the config for me, but if you’re certain it’s doable then I’ll learn to write a config. Thank you for the offer. I’m guessing for each service I tell nginx to “listen” at “port” instead of only listening to ports 80,443 and 81.
MDNS seems like an interesting solution though, I’m going to read about that now actually, thank you for highlighting that solution to me. If I could get that working that would be ideal. I’ll have to check if the expected devices are compatible but that would make everyone’s life easier if I could just setup a cronjob on startup.
Thank you for the reading material, it’ll be tonight project. I think I’m just going to tell people if they want to join in the family immich/mealie/etc they’ll just have to let me into their router. They’ll get memorable addresses out of it and adblocking too. I’m pretty sure that setup is comfortably within my skill set. I thought long and hard about opening ports but the security needed is beyond me currently. Down side is cost and I’ll be managing a bunch of boxe. But I can add updating them into the monthly maintenance and if/when they come back they can be repurposed into other projects.
I tried /locations but my service would rewrite the URL and break itself. I’d navigate to “box.ip/immich” and immich would change the address to “box.ip/login” and hang.
I’d need to learn how to have npm lock “box.ip/immich” and let immich append “/login”. I’ll leave my test VM up and just chip away at it. I think I need the “rewrite” flag but I’m getting dangerously close to just learning how to write an nginx config instead of having npm do it for me.
Thanks again for the pointers
Yeah, that’s a fair description. I am not comfortable exposing ports currently, I don’t think I have the skill to do it securely and my Homelab is definately not secure enough.
Not to get side tracked, and to highlight the horror, my media library is chmod 777 until I figure permissions across LXCs.
Oh, routing, I remember watching an “off site back up” video where they set up IP tables, or IP forwarding, or some such, so when their parents tried to access jellyfin locally it was routed over tailscale. Maybe I’m misremembering though, I’m not confident enough to start thinking about it seriously, so I logged it as “that’s possible” and moved on.
That way I just have to keep one instance of jellyfin/immich/etc up to date. It’s all a bit beyond my ken currently but it’s the way I’m trying to head. At least until I learn a better way.
Ideally, I give someone a pi all set up. They plug it in go to service.domain.xyz and it routes to me. Or even IP:Port would be fine, I’ll write them down and stick it to their fridge.
My parents and I run each others’ off-site back up (tailscale-syncthing), but their photo and media services are independent from mine. I just back up their important data, and they return the favour, but we can’t access or share anything.
Guides like yours are great for showing what’s possible. I often find myself not knowing what I don’t know so don’t really know where to start learning what I need to learn.
What a write up, thank you for documenting this.
I understand a lot of people in this hobby do it professionally too, so a lot is assumed to be common knowledge us outsiders just don’t have.
While my system of using tailscale’s magic dns to use lxc:port works fine for my fiancée and I, expanding this a family wide system would prove challenging.
So this guide is next step. I could send my fiancée to <home.domain.xyz> and it’ll take her to homarr, or <jellyseerr.domain.xyz>
The ultimate dream would be to give family members a pi zero and a <home.domain.xyz> and then run a family jellyfin/immich.
Just because you didn’t see value in the product doesn’t mean others don’t. It saved space for me because I don’t need a slow cooker, rice cooker, pressure cooker, yogurt maker etc. They’re all gone and replaced with a one stop shop of “if it’s wet it goes in the IP”.
It simplified processes and made them amazingly repeatable too. Stocks are a breeze: set, forget, comeback when it beeps. I don’t nurse temperatures, times and don’t stress things boiling over, boiling dry, getting too hot or not hot enough.
Sterilisation for brewing: come back when it beeps. Yogurt making: come back when it beeps. Dough fermenting: come back when it beeps. Soup: come back when it beeps. My fiancée wouldnt touch pressure cooking because she’s anxious it will explode, now she comes back when it beeps.
It doesn’t do anything as well as any dedicated device true enough, but it’s good enough to not buy those things and just use the IP. I’d have to eat a lot of rice to get a rice cooker as well as an IP.
I remember Watchtower helpfully stopping Pihole before pulling the new image when I only had the one instance running… All while I was out at work with the fiancée on her day off. So many teaching moments in so little time.
Posts on public forums get replies from the public.
As a beginner in self hosting I like plugging the random commands I find online into a llm. I ask it what the command does, what I’m trying to achieve and if it would work…
It acts like a mentor, I don’t trust what it says entirely so I’m constantly sanity checking it, but it gets me to where I want to go with some back and forth. I’m doing some of the problem solving, so there’s that exercise, it also teaches me what commands do and how the flags alter it. It’s also there to stop me making really stupid mistakes that I would have learned the hard way without.
Last project was adding a HDD to my zpool as a mirror. I found the “attach” command online with a bunch of flags. I made what I thought was my solution and asked chatgpt. It corrected some stuff: I didn’t include the name of my zpool. Then gave me a procedure to do it properly.
In that procedure I noticed an inconsistency in how I was naming drives vs how my zpool was naming drives. Asked chat gpt again, I was told I was a dumbass, if thats the naming convention I should probably use that one instead of mine (I was using /dev/sbc and the zpool was using /dev/disk/by-id/). It told me why the zpool might have been configured that way so that was a teaching moment, I’m using usb drives and the zpool wants to protect itself if the setup gets switched around. I clarified the names and rewrote the command, not really chatgpt was constantly updating the command as we went… Boom I have mirrored my drives, I’ve made all my stupid mistakes in private and away from production, life is good.
You gotta TAWK TUAH to get to know 'er.
When a company’ website doesn’t work on Firefox I don’t get angry at Firefox, I just don’t use the site. When a company makes their cookie popups are a pain in the ass I don’t get angry at the EU, I get angry at the company that made the popup. I use Firefox as a Canary that dies when a website is a piece of shit.
Maybe it’s a win-win, I don’t have to deal with Apple’s bullshit and Apple doesn’t have to waste resources on me, for me to block all their shady shit.
Really, it’s to focus on her Lemmy presence.
A mini pc, a raspberry pi 4, 3*usb HDD (2*8tb mirrored and a 1tb for local back up), some Netgear router, a whole lot of spaghetti.