659: Truth Trapper Keepers - podcast episode cover

659: Truth Trapper Keepers

Mar 23, 2026β€’53 minβ€’Ep. 659
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

The self-hosted app that turned Chris into a family Time Lord, then we iterate on a long-desired hardware hack.

Sponsored By:

Support LINUX Unplugged

Links:

Transcript

⁠¢ Intro

Chris

Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.

Wes

My name is Wes.

Brent

And my name is Brent.

Chris

Hello, gentlemen. Well, coming up on the show today, I'm going to talk about the self-hosted app that turned me into a family time lord and the perfect mobile server we found just a little too late. Then we're going to round it out with some boosts, some great picks, and I mean some great picks and a lot more. So before we get to all of that, let's do the right thing and say time-appropriate greetings to our virtual lug. Hello, Mumble Room.

Mumble

Hey, Chris, hey, Wes, and hello, Brent.

Brent

Hello, hello.

Wes

Hello, handsome mumble room.

Chris

Yeah, and shout out to that packed, quiet listening, too. Nice to see you all up there. Whew! It's going to be a big show. And good morning to our friends over at Defined Networking. Go to defined.net slash unplugged and meet Managed Nebula. Defined Networking has Managed Nebula, and it's a decentralized VPN built on top of the open-source Nebula platform. We love it, and you're going to love it, too. And what really sells me is the long term story. This isn't like something to just shove away.

Like you should think about when you're building infrastructure, what really it looks like for you long term. Critical infrastructure shaped by endless VC rounds, you know, or shifting priorities to try to make the free version of funnel to the enterprise version that come with big tech log in dependencies, all of these things. It's not what I want when I'm building my infrastructure.

And Nebula gives you real control, operational, self-hosted lighthouse nodes that you can make sure your network is reliable.

⁠¢ Wibbly Wobbly, Timey Wimey

And they have the resilience that you can stack on top of, build on top of, and run for years. And you can get started with 100 hosts for free at Define Network. You can go to defined.net slash unplugged. Redefine your VPN experience today and support the show at defined.net slash unplugged. Big thank you to our king chief sponsor of the show over there.

Wes

Yes.

Chris

Really, really big thank you.

Wes

Keeping our packets flowing.

Chris

So I want to talk about becoming a Time Lord. So I'll back up a little bit. Some people may be able to relate to this problem.

Wes

You hope.

Chris

I have too many calendars. You know, like, first of all, I've got accounts that have been around for 200 years that have got calendars on them. And then I've got, like, My personal calendar that has also shared with some family members and my ex-wife for the kids stuff. And then I've got a calendar with my wife and then my wife has her calendar. And then I've got the JB calendar and then I've got the show calendars.

Wes

Live streams.

Chris

It's actually, it's something like 12 or something. I don't know. It's a lot of calendars. And what inevitably happens is I'm checking one or I've got a couple of configured on a device or somebody books on one calendar, but somebody also books on the other calendar and the two conflict. and then I've got to sort it out if I even notice it, which sometimes I don't.

Wes

Well, that's the other part, right? It's like really most of your time is focused either on your family or- The shows. The shows, right, yeah. You don't really have a lot of sort of admin office time built into this schedule.

Chris

And so over the years, I've tried like having great calendar apps where I like pull in all the feeds from the various calendars and then I have one big meta calendar. That's sort of how I've solved this for a long time, but it doesn't solve it for the people that are trying to book with me.

Wes

Right. It gives you a single pane of glass, but they don't necessarily get the like, oh, nope, he's reserved here. Sorry. Yeah.

Chris

So also when you're trying to build like automations or you're trying to just look at your calendar in one snapshot, like it's never really easy outside this one meta calendar app that I've set up. So this is where it's kind of a newer app. They just hit version 2.0. It's called Keeper.sh. It's a simple self-hostable open source calendar syncing tool. It allows you to pull events from all your different iCal or ICS feeds and then push them into one feed with all of the details.

And the app also has a self-hosted version, or I mean a hosted version, if you would rather just use their service. I think it's pretty cheap, but they also offer multiple ways to host it, which I'll get into. And it's got a very simple UI. The app itself is not a calendar app. It's a feed management app, and it creates a source of truth for your calendars. So instead of having a calendar app where I have a ton of feeds now,

I have all my calendar apps with one feed. and it all comes from Keeper. And Keeper makes it simple now because when somebody books on one of my different calendars, I can now identify the conflicts and catch them quickly. And I can also provide my family a synchronized feed so they don't book or mistake gaps of time or whatever because of its cross calendars. It gives my family one source of truth or you guys, people I work with,

a single source of truth. And so it's so, so much a game changer when it comes to just planning and looking at availability. And then the other thing that if you want to push it even further that I really appreciate is it also provides a model context protocol server. So if you do the claw thing or whatever, it also gives you agentic access to your calendar. And that can be really powerful, too.

Wes

Yeah, right. Then you have a chat interface to go make new appointments.

Chris

And so the app itself is surprisingly straightforward. forward it keeps track of the different time slots and things like that uh it does i'd say there's the big limitation is it only supports iCal and ICS for ingest it does support a range of cloud accounts as well for publishing those so if you have a google calendar an outlook calendar or a bunch of other vendors you can have keeper published to those calendars which is not import yeah it just uses ICS or iCal for import

um and they do have a hosting offering and if you read through their GitHub readme document. They have a discount code in there. It's already cheap. But with the discount code, just read their readme and you'll find it. But I wanted to self-host. There's seven different options for self-hosting. Did you see this?

Wes

Not only is there like just a lot of containers involved in general, but then there's different versions of containers depending. It's almost like the next class situation.

Chris

That's a good, that's a good equivalent. What is it about calendaring and all of this that requires? It is a hard problem to solve, I guess. I mean, here we are. So there are seven images available, but two of them are really sort of the all-in-one kind of everything's included in a single stack.

Wes

Keeper standalone, everything you need. or if you want just redis and the database outside okay that's that's kind of nice actually so keep the stateful bits yourself this will run the rest of the app side okay yeah.

Chris

They're trying to accommodate people's different various hosting setups.

Wes

Or you can run the pieces yourself.

Chris

And then, of course, there's the MCP server in there as well, if you want, which is optional. So instead of going the Docker route with an environment file, I decided to kind of go the one really big Nix config route. This was kind of a monster, I'll admit. It ended up being a 234-line Nix config, which is one of my biggest ever. But it generates system-to-unit files. It sets up a Podman network. It sets up the NGINX virtual host, the TLS certification, and it manages all

of the secrets from one declarative source of truth. So that's really, really nice. And so instead of doing it with Docker Compose, I'm doing it with declarative Podman containers and then wiring it up through Nginx to do the reverse proxy to put it behind a nice pretty URL. And it's working really well because then it's a memorable URL. And so when I need to put the calendar feed into one of my calendar apps, it's really easy to boop, boop, boop, slash ICS, boom.

That's been fantastic. So I kind of went totally a different direction than the project, but used it as kind of a base.

Wes

And I guess since their coordination point was containers, that's all you needed, and set the right end vars or whatever else.

Chris

Yeah. And so the other, I'd say, limitation to be aware of this app is the MCP server is also read-only.

Wes

Oh. But the API is not just the MCP?

Chris

I haven't tried that because, for my age, and I can just also write to all the source calendars. So I've solved it already. The agent already has that. I just prefer a single source of truth feed for the actual calendars. But man, is this not just one of the small things you can do that's totally transparent in a way to the family, but just makes things so much nicer.

Wes

I do see that there are also some modules coming, applications coming through maybe, including CLI mobile and SSH.

Brent

Even more ways to use it.

Wes

Don't know what that means, but SSH into your calendar?

Chris

Yeah.

Wes

I don't know. I love it.

Chris

And also CLI. It's great.

Brent

I do have a usage question.

Chris

Uh-huh, yeah.

Brent

Like you need family approval more than just wife approval this time, and maybe you even need approval from the two of us. From their perspective, let's say they have right access. Let's say Wes has right access to the JB calendar, but you're providing him with Chris's everything calendar. Now, is he getting duplicate entries because you have the JB calendar on there and then he also has write access to it and all of a sudden you have double calendaring?

Chris

That's a good question. So you can generate feeds for folks. I'm trying to see if I can. I don't know if I can pull it up here at the studio because I don't know if I have. Oh, I do. You can generate feeds that exclude certain calendars.

Brent

Ah, that's brilliant.

Chris

But I actually find it really for everyone else. I don't really need to have them make any changes. They're just writing to the calendar they've always written to. They just have access to that calendar, which is fine. They don't, like, you guys don't really need to know when my kid appointments are. You just need to know if I'm available.

Brent

Uncle Brandon needs to know sometimes.

Chris

Well, yeah. So it's sort of, you can slice and dice it depending on how you want to use it.

Brent

Very nice.

Chris

Yeah. And they just hit version 2.0. It's been out, I think they're just over, like, maybe six, seven months. I can't quite recall. But it's very active. The developer, this is a Sunday morning. and the developer just committed uh something two hours ago uh it's agpl 3.0 and uh it's uh mostly written in typescript and then of course there's javascript in there and a little bit of shell and stuff but mostly a typescript application.

Wes

It does sound like um the developer was scratching an itch that the same one you had which is kind of funny it's had this working on some project three calendars across business work and personal and.

Brent

How did you find this, Chris? And why did you solve this problem? Because you've had this problem for a very long time. Why this week?

Chris

I was trolling GitHub and Reddit and X for a solution and came across.

Brent

Nice.

Chris

Yeah. And then I tracked down the developer's post on our self-hosted for the new 2.0 release. I was like, oh, it just came out. What a great time to talk about it now that the new 2.0 is out. And he just released 2.914 an hour ago. I already got an update, boys.

Brent

Wait another day to get 3.0.

Chris

Yeah. Yeah, it's not a big update. It's just a calendar off fix, which I didn't run into. But really nice. I mean, a guy's clearly dedicated to it as well. So very cool to say.

Brent

Let's not burn them out.

Chris

I'm not sure. It's Rita. I'm not sure. R-I-D-A is the developer's first name or handle. But great project. And if you've had this problem, I definitely recommend it. And if you solve this another way that you think might be even better, please do post that or boost us or emails because totally willing to even solve this a better way. It's been good, but perhaps a better solution exists. No sponsor right here, so we'll just say thank you for being a member.

And if you're not a member yet, you can go to linuxonplugged.com slash membership and become a core contributor or support the entire network at jupyter.party. You get access to the bootlegs, which is a lot more show. We're clocking in at 54 minutes, almost 55 minutes right now for the members.

Wes

We have so much more to go.

Chris

Yeah, yeah. And there's often really good conversations about making the main show, not intentionally it's just because it's a really organic discussion kind of.

Brent

It's a hangout.

⁠¢ On Screen!

Chris

Yeah it's a hangout and so we've gotten in some really good conversations there and it's additional content and uh you also uh you also could get an ad-free version so when we do get some advertising support if you don't like it there's an ad-free version of the feed as well of course the ads aren't in the bootleg either but uh either way we appreciate your support it's linuxunplugged.com membership or jupiter.party for the whole gosh darn thing.

Wes

Well, you two have been up to a lot of things this week. I've only been getting little snapshots here and there. So last I heard, y'all have been working on not one, but I think two diesel heaters. And clearly, Brent must have the itch for embedded development. Because when I got to the studio today, he walks in and hands me a little black box with the radio. From CubeSail? What is this?

Chris

Ah, there's quite a story behind that. There is quite a story. So how would you describe that, Wes? What would you?

Wes

An industrial-looking sort of like professional metal case. It's got what I assume is a Wi-Fi antenna, good connectivity, USB-C for power, Ethernet, HDMI.

Chris

Full HDMI.

Wes

On the front, it says PiBox. And it's got that little screen. It's also got nice little indicators for disk CPU and power. It feels heavy, well-built. Is that a Noctua fan in there?

Chris

Yes. Good eye, Wes.

Brent

So, Wes, now you can just like kind of slide it like a clamshell.

Wes

Oh.

Brent

And it'll reveal itself. So maybe you can try to decipher what's in there.

Chris

I'd say it's as thick as like two, three and a half inch disc stacked, but shorter. So it's not, it's not particularly thin. You would notice it in the bag, but it's not huge either. And then Wes is now, Wes has taken the, uh, the back off.

Wes

Oh, okay. This looks like a Raspberry Pi.

Chris

Yeah. It's a CM4.

Wes

Oh yeah. The compute module four. And then with, um, a larger carrier board. Yeah.

Chris

Yeah.

Wes

Cube sale hat compatible GPIO. Ooh.

Chris

Yeah, that carrier board is very interesting. That's why you get the larger HDMI. You get a few additional features in there, including a backplane for SATA disks.

Brent

Yes, it's so great.

Wes

Proper storage?

Brent

Yes. In a tiny little box.

Chris

It has room for two 2.5 SATA SSDs.

Wes

Oh, and there's one in here.

Chris

Yes. So we did scrounge up a precious 480 gig SSD and stuck it in there.

Wes

Okay, CM4. So that's like Pi 4 era, but was the CM4 like slightly better?

Chris

Yeah, yeah, yeah. Slightly better. Depending on the model you got at the time, it came with up to 8 gigs of RAM and 32 gigabytes of eMMC storage built in. So you're not fussing about with an SD card. It's got built-in EMCC storage, eMMC. It has a gigabit Ethernet port. It has two USB 2.0, like you mentioned, a Type-C.

It's also got a micro SD card slot on there and then on the front of the box We'll put a link if you want to see this it has three LEDs and a little LCD screen as well as a GPIO connector on there and That lets you see what the system is up to while it's working away and then it has these two powered SATA SSD slots and at launch, The PiBox CubeSale was $299.

Wes

Whoa.

Chris

Yeah. It was initially a Kickstarter, which I think is maybe how I caught this. Unfortunately, they are no longer around. And it's one of these where we were both really disappointed when Brent and I discovered this. In 2025, they said so long and thanks for all the pods, and they announced they shut down. And they did the good guy thing, and they open-sourced their code. They open-sourced a lot of stuff.

Wes

Including their OS.

Chris

Oh, that's great.

Wes

I mean, sad, but best case, I guess.

Chris

The cube sale comes from they were using Kubernetes.

Wes

I was going to ask. Was this meant to be like a host to run Kubernetes on the Pi platform?

Chris

Yeah, and then deploy applications and install SSDs and have a tiny low power NAS. And looking back at it, they were just early. It's a really good idea. They started in 2019 and I think they just couldn't make it work.

Wes

How long do they go?

Chris

2025.

Wes

Oh, wow. So you just missed them.

Chris

Yeah. So they don't make it anymore, which is such a shame because we love it. It's neat.

Brent

The just hardware quality, I would say, and the thoughtfulness in their design, especially even of their PCB. They wrote like docs on their PCB about how to use this thing.

Wes

It's very well labeled. Yeah. What is this?

Brent

Oh, it's so nice.

Wes

It also has this, what's this switch on there?

Chris

Yeah. So that's on the carrier board.

Wes

One says normal. The other side says RPI boot.

Chris

There you go.

Brent

Well, this gets us into a fight that Wes had to break up between Chris and I about how to deploy to this thing. Because we have this big-brained idea of how to use this fancy little box that we somehow found in the corner of the studio.

Chris

We should talk about that and then talk about the fight.

Brent

Yeah, okay. Let's talk about the goal. So we've had a problem to solve for years now.

Chris

Yeah.

Brent

And just having come back from scale... It is obvious we still have this problem, despite my, let's say, efforts to solve it with the wrong hardware.

Chris

Yeah, Airbnb TVs suck. They suck so bad. And we're often there for a week, and we just want to watch Star Trek.

Wes

I feel like Hisense must be paying them to put these TVs in. It's the only reason you do it.

Chris

And Hisense just announced that these TVs are now going to, while they're booting, which takes forever, they're going to play advertisements.

Brent

Don't solve the problem of making a boot faster. Just take advantage of the slowness to sell you stuff.

Chris

And listeners, you need to understand that priority one, when we arrive at an Airbnb, is to get Star Trek going. A bench of an Airbnb, a benchmark is how fast can you get Star Trek? Because what you're actually, you're benchmarking the quality of the television, the quality of the Wi-Fi, the wiring job.

Wes

The instructions from the host.

Chris

Yeah, it's an interesting benchmark immediately. And so really before we've unpacked, before we've even picked rooms, we've got Star Trek going. and we want to get the window of time down on that and remove the frustration. And then additionally, Airbnb Wi-Fi is terrible, always terrible. I would say every other time the Wi-Fi is in the other building and we're getting scraps of signal.

Wes

Or this time we had one where the actual speed and signal was great, but they did client isolation. So we couldn't actually talk to anything else.

Chris

Yeah. And we've had one where the Wi-Fi went out and it was in the owner's house, which was next door, and the owner wasn't there. And so then we just didn't have Wi-Fi when we needed to do the show on Sunday at our night at our last Airbnb, which is right next to L.A., right next to Pasadena. The Wi-Fi was so bad from the area in the Internet that we did the show off of our cell phones.

So that's a problem we need to solve. So we want this device to be a media server as well as an AP that will either extend the Airbnb's Wi-Fi or connect to an LTE network. But the goal is, is that all of our client devices always are just attached to the same SSID. So when we arrive and the Wi-Fi becomes available, we don't have to play this game of, hey, what's the password? What's the password? Hey, did you get the password?

We all already have the Wi-Fi set up on our devices. It connects to this box. And then this box handles the actual Internet. And it has, on top of that, a jellyfin server with storage on this SSD that's built in now or slotted in. And maybe it runs a Samba server. Maybe it runs ersatz TV or tunar or something like that, which we'll come back to. And it becomes essentially a media NAS Wi-Fi repeater that gives us consistency everywhere we go.

But you want something that isn't as big as even a one liter PC is too big because it's going in the bag or the backpack.

Brent

It has to be super travel friendly. I started trying to investigate this problem by thinking, well, maybe a cell phone is an interesting way to solve this because you can have independent internet if you need it. You can throw up a hotspot. You can throw it in a bag anywhere. It's so gosh darn portable. And modern cell phones maybe can run like Linux containers.

Chris

And they have HDMI out through USB-C.

Brent

Also true. That's also true.

Chris

And you have a Jellyfin app.

Brent

And everybody's got a used cell phone in their closet.

Chris

It was not a bad idea.

Brent

Yeah, the problem is I picked the absolute worst device to showcase it at our last Airbnb. Wes will... I think, agree with me that we took a listener's device. It was a Bind phone, which turns out ancient, even when it was made first. But it ran Linux, which is, I thought, going to solve a lot of problems. So I deployed it. I worked many, many days and then deployed it at our Airbnb.

Chris

And how'd that go, Brent?

Brent

Well, it was very entertaining.

Chris

Yeah, it was. Yeah, it was.

Brent

It didn't go very well.

Wes

You may have harmed your...

Chris

Friendship with producer json yeah yeah that's true it started when you it took you 20 minutes to get it on the wi-fi there was that that was sort of a bad sign yeah.

Brent

I still don't know.

Chris

Why that was but.

Brent

Anyways it was a means of starting this wheel going and then having us solve this problem we've had for years and i think having that failed experiment got us to a point where i think maybe we got this.

Chris

Yeah so now we had the pie box we discovered it in the studio's archive and it was time to give it a little love. I probably talked about it years ago when it was brand new, but dusted it off and actually had a real use case for it now. And it really came down to, well, how do you deploy on this thing? I would love to see the Pi get a little easier to deploy on.

Wes

I assume you didn't even try to get the KubeSail software in Kubernetes running?

Chris

No, no, because it's also pretty old now at this point, Debian and whatnot.

Wes

Yeah.

Chris

And once you have an OS flash to the EMMC, it's a lot harder to just boot off external media. Because the way you change the boot order and whatnot is you modify the boot order on the installed OS. And you change hex codes in the boot order and stuff like that. And I just didn't want to play it.

Brent

Just the expression on your face, Chris, when you found out that's what you needed to do. So where we came to, where Chris and I were holding up fists and Wes had to solve us tearing each other's hair up.

Chris

There may have been some yelling.

Brent

Was how do you deploy to this thing?

Chris

Yeah.

Brent

So Chris had a method and I had an experimental method that I wanted to try because I read it on the PCB.

Chris

The irony is we probably should have reversed our attempts.

Brent

Really? But I'll get to that.

Chris

I'll get to that. So I advocated for just pulling down existing ARM binary images and flashing them to a USB stick and booting the thing with that. That was my approach, and I figured that would probably be a 20-minute gerb.

Brent

That's far too reasonable.

Chris

Brent over there wanted to go the route of, like, pulling down all the ARM packages on his x86 machine, spinning up an ARM VM, building them in the ARM VM, and then deploying a fully ready ARM image. as an image to the MMC, using this RPI boot mode that you can flip the carrier board into. So you've got to install the RPI boot app, and then it can flash and write. So the board, the carrier board for this and the CM4, they come out of the unit.

You have to unplug them from the SATA backplane, and then you connect them to your laptop or whatever over USB-C. So now it's getting powered from your laptop, and when it's in RPI boot mode, when that toggle switch is flipped, it shows up as a mass storage device of types.

Wes

Oh, interesting.

Chris

Not a regular mass storage device. But A-type. Yes. And then RPiBoot can write to it. And so what Brantley is going to do is build all these on his X86 PC in an ARM VM.

Brent

Sounds great.

Chris

And then flash them using RPiBoot.

Wes

To- This isn't his sort of factory assembly line that he turned your RV into?

Chris

You are not kidding. My wife's been out of town for a week. And if she was in town, my goodness, boy.

Brent

I would have never attempted to take over an eighth of the RV.

Chris

Oh, boy. Anyway, so my approach was pull down the images that are already built and flash them. But the irony was is that I was on an ARM laptop and Brent's on an x86 laptop and I'm doing the prepackaged route and he's doing the package build route.

Brent

Yeah. You should have been building the packages on your ARM laptop.

Chris

Although I did kind of want you to win. I think Wes ultimately sided with me a bit here. He didn't really take a side, but he's like, well, the prebuilt packages makes the most sense if you're on x86. That was good.

Wes

Well, I remember I tried the cross-compile path way back when I first tried getting NixOS on a Pi.

Chris

Yeah.

Wes

And just remembered that unless you had a fairly beefy rig, it was kind of painful.

Chris

Yeah, so I wanted to see it work, so Brent gave it a go.

Brent

Well, the reason I thought this might work more than you both seem to have any faith in me was that I deployed to a Raspberry Pi previously using this method. And then when I saw that nice little switch on the board, I thought, okay, this is the way they want this to be done. Maybe not the cross-compiling stuff or the cross-building. But I really wanted to try plugging this in and just having it be a mass storage device that I could write to.

Because, Chris, you ran into an issue of you had the image.

Chris

Yeah. I'd have to edit the OS to boot from the USB stick.

Brent

Yeah, and so it didn't seem necessarily that much simpler.

Chris

Yeah.

Brent

So I went down the crazy path and did the cross-building. and it turned out with a little bit of, you know, finessing that totally worked.

Chris

It did with one thing I would say people need to watch out for is the config that ended up in the image, which was great because Brent was able to set it up with user accounts and whatnot. So it just worked. But the downside, the first one, like you got to watch yourself because it'll do key-based SSH login. And if you don't set that up right, you can't get in.

Wes

You're locked out.

Chris

But the second gotcha is that now when it builds, even locally, it's like configured to do a remote build, but it's doing a remote build on itself.

Brent

Yeah.

Chris

So it's SSHing into itself and building.

Brent

Be careful which config you deploy to this thing. You can't just take what's on your laptop and send it over there.

Chris

Yeah, right. But that aside, we do have a provisioned system with Jellyfin and Samba and that 480 gigabyte drive. And Wes, get ready for this.

Brent

Hmm.

Chris

I went with XFS.

Wes

You know, I wonder, because I walked in the studio, and I guess this thing was booted up. I didn't know it at the time, but I just, I hadn't realized, because I guess I haven't watched the kernel boot XFS. It still says SGI XFS.

Chris

Yes, it's great, isn't it? Yeah, I don't know. It just, we had a moment, and Brent claims that he is a Bcache FS hater now. No, I'm kidding. No, I just wanted to try it, I guess. We could always reformat.

Brent

We tried Bcache FS first, and there was, I guess, an error in the current builds in NixOS. Yeah. So we just skipped over it. But it'll come.

Wes

I mean, you got NixOS, so you don't strictly need it unless you have plans for around what you need to snapshot.

Brent

Wes will fix it.

Chris

So what we're going to do is we're going to seed that thing with all like my Blu-ray rips of Star Trek and my DVD copies and put it on the hard drive. So we'll always have Star Trek. I think we'll put like season one or two of Baywatch on there. We should have put some staples that we always watch at Airbnbs.

And then Brent found a usb adapter that you can plug an mvme disc into that we took from an old busted laptop, um and so we're going to use that for like the more current stuff like the updated stuff so you want to just you just swap out right you plug it in your machine you update it and then when we boot that thing up you plug it in and you've got your extra new shows as well jellyfinal index oh.

Wes

I love this classics and currents.

Chris

The thing that's missing that we're working on and i don't know because brent was up till 2 a.m working on this i don't know how far he got well.

Wes

We're gonna need to join it to a Nebula network.

Brent

It's so true.

Chris

It is going to be, we're going to have it. We'll have a Nebula network for all of this. So it'll be able to route. That thing will become a Nebula router for us. That is definitely part of it. But you think about the big component that's missing that we haven't talked about yet. We'd need this thing to be able to actually plug into a television and display jellyfin.

Wes

Yeah. Can it do that?

Chris

Well, it's got a full-fledged HDMI port, and the docs say it supports up to 4K resolutions. So I bet, you know, all the TVs we go to are like 1080p crappers.

Brent

Yeah.

Chris

And, you know, worse. So, like, we just have to figure out how to do a super low-key, probably Wayland, I would imagine, on that hardware, like kiosk almost. So where did you get to on that?

Brent

Yeah, I found a little project. Kind of last minute, so I haven't told you about it yet.

Chris

All right.

Brent

Something called Cage or Cage Kiosk, which is a Wayland-based kiosk, which is fairly minimal, so good for these little compute modules. And it just gets you a Wayland session with the application that you want to run.

Chris

So we could just have it essentially start up and launch a Firefox? Yeah. Oh, and then if we had the Firefox homepage set to the Jellyfin web interface.

Brent

Exactly.

Chris

We could even have it probably launch with a flag for full screen.

Wes

Yeah.

Chris

Oh, boys. Oh, boys.

Wes

I think it does a single maximized application already. I don't know.

Brent

It's like the exact thing that we need to solve this problem. And it still looks like it's in active development. And I think we should just go with this plan. unless someone has a much better idea because I seem to be. Yeah, I choose a client.

Wes

I think the one thing we don't, I mean, Jellyfin gives you, it has like the cast sort of functionality, so we could control it from a phone or a laptop pretty easily, but we don't necessarily have like a remote style interface.

Chris

Yeah, we do need to.

Wes

I don't know if we care about that. Maybe we don't. We're all very technical savvy.

Chris

Well, but we think, I think we want a remote, man. We want to make this really easy. We want this to be a casual, low friction thing or like if my wife's with us, it's easy for her. We have a, you know, we want to make it hard for PJ.

Wes

We could use the get a better version of that um kind of janky presenter remote i have that is.

Brent

Fun that thing was so hard to.

Wes

Use yeah.

Chris

I would actually like listener input on a great remote control device one that we could travel with.

Wes

That's the thing ideally it would still work like on a plane even if we didn't drive so.

Chris

Here's my other question this cage wayland kiosk thing does look really good, But is there a kiosk mode for Plasma? Now, hear me out, because Plasma can be pretty lean, and there could be, I don't know, situations where maybe we want to bust out a full desktop to do something that we didn't think of.

Brent

We are always doing things we never thought of.

Chris

So if we could have, like, a Plasma session that's, like, kiosk mode by default single app, but we could, with a, like, if we hooked up a USB keyboard, we could break out, that might be also really nice. But I don't know if that's a thing or not. Or I don't know. Maybe you can do that with GNOME. I have no idea. Maybe that's another thing listeners could tell us.

Brent

I've got the feeling this might be a long-term project because we'll be taking it with us and changing it every time we use it, it seems, because we can't help ourselves.

Chris

Yeah, I think the other thing we're going to be spending time figuring out is what does this thing do DNS-wise and how do we set that up, especially with split networks and all of that.

Brent

It's a great point.

Chris

And then, like, where does it pull the media from if we want, say, maybe to connect to another Jellyfin server? That probably needsβ€”we need to make sure Nebula's running on the other Jellyfin server. So there's a few more things. So I guess the big ask to the audience would be, what would you use for kiosk mode would be up there? I guess I'd be up to x86 versions of this that are cheap, too, but we're kind of down this route now.

Brent

Use the hardware you have, I say.

Chris

Yeah, really. Tis the season, right?

Wes

How did you even – was this just on a shelf somewhere? How did this happen?

Brent

So this has been beside the fish tank in the living room, which we spend quite a lot of time in. for about the last four years i've had my eye on it and uh decided to just dig in.

Chris

Mm-hmm i mean it's pretty dang neat it is pretty dang neat so uh and it's i i think if we get the kiosk thing solved i think that's going to be a winner i think the question is can you do that in plasma that's another you know or is there a better route as long as we can get a full desktop that's lean and mean but we like to use west.

Brent

Might be a little disappointed because i also tried to upgrade our process because I don't want to, We always wanted to deploy to this thing remotely. So deploying to it with NixOS Anywhere and using Disco would be nice, especially if we changed to a different device, to just have a NixOS config that we can put on any device, really, or share with the audience so they can do it. But apparently, or at least I ran into this error, KExec does not work on the CM4.

Wes

It has been more hit or miss on ARM. I think there are definitely ARM devices that can do it, but I don't know which ones.

Brent

A KExec list device might not pass the OS sniff test.

Wes

I mean, this one's pretty cool, so I'm willing to have a minimal sort of exceptions list. There's probably a limit on the number on the size of the list.

Chris

But... Okay, maybe we can sort that out after the show.

Wes

Yeah, I think so.

Chris

All right, so we have one other question.

Wes

Maybe get Brent's lawyer involved.

⁠¢ The Age-Old Question

Chris

While we're bringing up questions for the audience, so we want to talk about the technical side of some of the age verification stuff that's moving and i've been looking into this a bit we had a really great conversation on the pre-pre-show, 25 u.s states now have enacted laws requiring age verification usually government id or a third party age assurance to get access to adult websites most of these have been passed and went into effect in the last 24 months and now

we have two states that aim to enforce age verification at the os level california ab 1043 which was signed into law october 25th and goes into effect january 1st 2027 and then colorado sb 26051 which is in the works and slated to be on the schedule in 2028 the team at systemd has a patch in the works that adds a birth date field to the json user records which would be essentially a standardized age related logic that distributions could adopt,

And there is a group that is behind this that seems to be pushing it. We had a good conversation that seemed to indicate that this is also underway in New York. There is an early version in Washington State that hasn't gotten very far.

Wes

Some efforts in Illinois.

Chris

More and more widespread. And when you zoom outside the states, there's countries outside the states like Brazil and others that are also passing similar acetation requirements by the operating system. So we are very quickly as a community finding ourselves between an awful rock and an awful hard spot. And I think we're essentially there now. So System D might have a technical solution here. Do you think distributions, and I'm asking you, listener, do you think distributions

should adopt it or remain out? Should they opt out? Now, consider if they opt out, they are likely not going to be valid in certain markets, not without fines and legal process.

and consider who pays for their development where the money comes from in free software development it's often from enterprises who have contracts with government or companies that have contracts with government that have to make certain requirements so is this a line in the sand or should we have a technical solution for places that need to implement it is it something that all distributions should patch out should we fork system d.

Or does it make sense to implement? And if it doesn't make sense to implement, if you're against it, what real options do you think are out there right now? We'd like to have that conversation in next week's boost segment, so please do boost in. And we'll have some details about the systemd birthdate field, if you're curious. It's essentially a JSON user record that the distribution and the software that's on top of that would then read from.

At this point, no distribution has announced support for that, but you would imagine if they were forced to legally, then they would probably adopt that. There's some other options as well including the Debian project has looked at a potential route to solve this outside of Systemd. So it's a conversation that's happening and we want to know where you stand on it. We want to take your temperature. So please boost in and let us know. I think it'd be a great way to get a conversation going.

⁠¢ Housekeeping

I also want to mention that LinuxFest Northwest 2026 is just around the corner, 33 days away as we record April 24th through the 26th at the Bellingham Technical College. We'll be doing a live show there. We are on the Sunday schedule, so you can join us for an in-person Linux unplugged.

Brent

Usually a riot.

Chris

It is a lot of fun. We don't know all the details yet. And then, let's just put it out there. You never know. You put something out in the universe, Brent, and sometimes the universe answers. and we thought, wouldn't it be interesting? Wouldn't it be fun if somebody out there in the audience is sitting with a van that needs a little rescue? Maybe it's in a rescuable state, needs a little love and get somebody out there to get it off your property. Well, Brent and I are itching. So let us know.

Email the show linuxunplugged or unplugged at jupiterbroadcasting.com or send us a boost. Maybe we'll put you on the schedule this year and go do a van rescue.

Brent

That would be amazing.

Chris

We do this thing now when we're out driving around. We're always spotting vans. It's like, oh, we should stop by and ask them. We should stop. I look at that van. It's just sitting there rotting away. We should ask them.

Brent

Yeah.

Chris

We could get that running.

Brent

Put it on the road.

Chris

Come on.

Wes

Someone could be using this.

Chris

Yeah. I don't know. I know it's crazy. Let us know. But we'd like to tech one out. You know, if we can get it running, it would be such an awesome tech project. Home Assistant, sensors all over that thing, leveling sensors, mobile internet, all of it.

Wes

You know, maybe we tweak it out. We install a super duper recording studio in there and then you just sell it to van influencers. Ready to go.

Chris

Yeah, there you go.

Brent

You know, Wes does need an RV solution. He's the only one of us that doesn't currently have sleeping on wheels.

Chris

Oh my God, we could go on a road trip together.

Wes

That would be pretty killer.

Chris

All right, so you see, let us know, okay?

Brent

Help us.

⁠¢ Shout-Outs

Chris

Well, we got some feedback. Brentley, would you like to read Nix's, which is NYX? He wrote into the show.

Brent

Yeah, someone knows our taste. Nix, NYX says, Hey, you'll ask for the most underpowered thing in my stack, and I think the award probably goes to my Pentium 2 box.

Chris

Ho-ho-ho!

Brent

I got it for free from my doctor. He had it collecting dust in the office, and I brought it home, swapped out the old spinning drive for an SSD.

Chris

Whoa.

Wes

Nice.

Brent

Oh, no, sorry. I read that.

Chris

Oh, SD card.

Brent

Yeah. Swapped it out for an SD card.

Chris

Yeah, yeah. 64 gigabyte SD, still probably better than the spinning rest, though.

Brent

Yeah, and hosting a Luanti or MindTest server over on it. It's been hooked up to my tail net, and it can handle about five players with limited draw distance pretty well.

Chris

Wow.

Brent

Also use it as an MPD server. It's a bit stuttery if I try to do both at the same time. But for a zombie of tech, I'm pretty happy with it.

Chris

That's so great. And he's coming in from Ecuador, too. So hello, Ecuador.

Wes

Oh, yeah. We got a zip code here.

Brent

This is a binary zip code.

Chris

Do you want to go for it, Wes? Because, you know, I always think that zip codes are a better option if you want to go for it.

Wes

I do.

Chris

I do. All right. Let's break it up. Let's find where he's at. All right, so this is a unique one. It looks like something from the binars here.

Wes

I know, right? Binary, postal code, what is this?

Chris

What's going on, Wes?

Wes

Okay, so I could be wrong. We did obviously get the Ecuador hint, so that's a big helper.

Chris

Yeah.

Wes

I couldn't find 010100, but it does look like if you sort of interpret it subnet style where that last zero means like the first sort of digits. I love where this is going already. Then that kind of makes sense with how it seems like Ecuador's postal structure is, or postal code is structured. So I think it is in the Asue province and then maybe near the capital Cuenca or the province around there. That's my guess, which has stuff like, let's see, it's got like a beautiful

looking park in here, which seems really nice. Yeah.

Chris

Let's go.

Wes

El Cajas National Park, which is in a mountainous region. It's got some, the capital looks like it's got some pretty dope architecture going on.

Chris

Sure does. Wow. It's beautiful.

Wes

So I don't know if I found the right place. I'm sure I pronounced the names wrong, but either way, I want to visit.

Chris

Yeah, for sure. It's also really impressive that he can actually sustain five players. MineTest, for those that don't know, is like a Minecraft-free software implementation. And so for five players, that's really great. An MPD server would be a media server.

Wes

Yeah, I like seeing MPD still being used. That's a good solution.

Brent

When's the last time either of you used Appendium 2?

Chris

Really long.

Brent

I know.

Chris

That's what's so great about this is it keeps these things out of the landfill. they still have valid uses obviously here they maybe are you pay for it on the power but that depends on everybody's individual area so that's really neat thank you nix uh i think we i think we're pronouncing it nix let us know if we got that wrong.

Brent

Well we have a couple boosts here starting with a baller free go lay, Frigol A sent in 67,011 satoshis.

Chris

Oh, thank you, sir.

Brent

They simply say, great coverage with a thumbs up.

Wes

Aw.

Chris

Thank you very much. And I feel like 67,011 might be a message. I feel like it might be, but I'm not sure. Thank you very much, Frigol A. I really do appreciate that. It is your, you are our baller. Thank you, sir. KRHill94 comes in with 10,000 sats. Support if my AlbiHub node is working I'm having some troubles It works! We got it You got it! Congratulations on self-hosting an AlbiHub.

Wes

It's a big step And we're proud of you Mm-hmm Mm-hmm And our final boost today Spooky Satcom comes in with 2,000 sets, Brent, your splits is killing my transactions Uh-oh Boost!

Chris

We have to look into that I.

Wes

Think Satcom here has, you know, a good spirit about it.

Chris

Yeah, yeah.

Wes

And we appreciate that.

Brent

Oopsies.

Chris

Yeah, sorry about that. We'll have to look into that. Okay, so it's a light week. It's a light week. I guess, does that mean anything to we?

Brent

That's Signal? Not Signal?

Wes

I don't know. The world's on fire.

Brent

March break, right?

Chris

That's true. That's true. That's true. We're going to, we'll move on. But we got, we did get some stream stats as well. We had 90 a stream. 4,876. It almost makes me think there's a technical issue. That's so low. That's so low.

Wes

Well, maybe we can blame Brent. his splits causing everyone to give up on boosting I'm fine.

Chris

With that yeah maybe we I'll.

Brent

Yell at my administrator his name's Chris.

Chris

Oh Captain Chris dang it that doesn't that doesn't do me well and when you combine it together we had 83,887 sats for this episode thank you everybody who supports us, it is a very light advertising season and you can support each individual episode and your boosts go directly to me Wes Brent Editor Drew and the podcast app, But it really supports all of us and gets your message on the show when you boost above 2,000 cents. We'll read your message, and it's always a great conversation.

You can also support us with a membership at linuxunplugged.com slash membership.

⁠¢ Picks

We have some really great picks. Let's start with a nerdy one, and then we'll get to a listener-contributed one. But you found FQ this week, Wes. I know about JQ, but that's for JSON.

Wes

Yeah, that's right. And it turns out there's more in the world than JSON. So enter FQ. The F is for file. It aims to be JQ, Hexdump, DD, and GDB, four files combined into one. It's written in Go. It's already in Nix packages, and it's MIT-licensed. And it supports a ton of different formats. Apple Bookmarks, ASN1, AAC, MP3, CSV, FLAC files, LuaJit, a bunch of stuff for Postgres protocols, RTMP, SafeTensors format, which is used, VP9, WASM, WebP, ZipFiles, YAML, JSON, JPEG.

And so basically it gives you, you know, like with JQ, you can do like dot key or like get the third item from a list and then get a key out of that and kind of easy syntax for manipulating JSON structures. So the idea is the same thing here. So I downloaded our most recent episode, and it has MP3 support.

Chris

Oh, cool.

Wes

And so I can do FQ, and then you do dot frames, and then sort of the bracket zero to get the first frame, and then dot tag, and that gives me a bunch of the tag information. And I can do, from there, dot encoder, and it tells me it was encoded with flame.

Chris

I can see also you could do that same thing with a PNG or an MP4, whatever, really.

Wes

And of course, there's better dedicated, right? Like if you're just doing MP3s, there's tools for that. But the handy here is one tool to explore, work with, basically make it PDFs. json files exactly make binaries more accessible queryable and sliceable it does nested formats and bit oriented decoding it shows it to you in a nice sort of hex viewer style along with a more structured data format on the right hand side so something to add to your tool belt.

Chris

Very cool nice find wes and it's mit licensed our next pick this week.

Wes

Is one thing oh go ahead uh they have given very the author has given a few different presentations about it too including at Fostum 2023, so if you are curious, there's a bunch of ways to find out more nerdy teats.

Chris

Our next one is under early development. It's called File Fridge. It's Apache 2.0 licensed, and it's created by one of our very own community members. Martino writes, Hey guys, I remember a couple of episodes back you were talking about storage, price supply issues, and what you were doing to try to use other methods to store your media. I was, and I still have Blue Vault to back up to Blu-ray.

I was thinking about this very thing. I worked on a tool that runs in my home lab to move media that isn't accessed as often. To an external drive, and then drops a sim link to the file. I did use AI to code this with two kids I don't have as much time as I used to for projects. So check it out when you have time. It is under active development, and it's called File Fridge.

And the idea is, I love this, and I wonder if there's other things out there, where you have, obviously, your more precious hot storage that's fast and available, but maybe you're archiving things that you haven't accessed for a very long time. Instead of buying more expensive fast storage, you kind of, you know, you have cloud storage, you have disks around the house, a little more colder storage, right? Higher capacity. And that's the idea of FileFridge here.

And I just think it's brilliant. I'm wondering if there's other projects out there like this. You can set up rules and let FileFridge handle the cleanup on a schedule. The assembling thing is a really great idea. Then it'll also give you reports back on how much space you've saved. You can stay organized by using different tags and automated rules to categorize data across storage locations for, like, this goes to cloud, this goes to another disk.

And it has a FileFridge progressive web app, so you can use it on mobile or desktop. FileFridge.

Wes

I love the name.

Chris

Yeah.

Wes

Put your files in the fridge. Keep them good for later.

Chris

It's a nice project, open source, by a community member of ours who's working our way on this. Looks like it's mostly Python.

Brent

I have a sneaky app I'd like to throw in here.

Chris

Ooh, a last-minute sneak? Go ahead.

Brent

It's an app pick I've been using all week to continue the project we talked about last week on your diesel heaters.

Chris

Reverse engineering the signal.

Brent

Reverse engineering the protocol that the diesel heater of unknown make and model.

Chris

Which could be any device. It could be a thermostat. I think people are sick of us talking about the diesel heaters. That's why I mentioned it. It's not specific to a diesel heater. It's any kind of proprietary device that has a communications protocol that you want to build a control.

Brent

True.

Chris

Thank you. All right. Just want to inject that.

Brent

So I use the tool that is actually really great because we flash some logic analyzers to an ESP to try to break down that protocol. And this one is called SIGROC. And I think it's quite well known in those circles. But for those of us who are new to it, great tool. You could just flash it to an ESP. And it has something called a sub tool here called PulseView.

And Chris, remember, I was able to show you the visual representation of the signal that was coming in on the data line on your diesel heater.

Chris

Well, this is the part where I was like, this should be a pick. So you got the ESP doing the analysis and the whatnots, but then it's got a GUI for the Linux desktop to actually give you a visual of the signal.

Wes

That's so great.

Chris

So you could actually see like the boop, boop, boop, boop in the actual signal.

Brent

Oh, which we didn't need. Like, we could do it itself, but it was so nice.

Chris

It was really cool.

Brent

And it has, like, the ability to auto-decode specific protocols. So then you could see the translated bits and bytes and messages that are being sent. Very cool.

Chris

Pulse view, sometimes abbreviated as PV. And then the GUI part is a cute-based application.

Wes

Logic analyzer, oscilloscope, and MSO GUI for Sigrock.

Chris

That's cool. The GUI is licensed under GPL 2, I believe. So I think maybe the other side of it is – I'm not positive on that part. Oh, my goodness. So cool to walk up. And I mean, it's a it's a full on technical. Well, of course, I'm a noob. What the hell do I know? But you listeners, you got to check out the link in the show notes because the visualization it gives you is so neat to be able to. And then once you've once you've unlocked this, it's no longer proprietary for you.

Right. It is under your no one else. Right. Well, you can publish it, I suppose.

Brent

But our goal here, because we made quite a lot of progress is now Chris can just hit a button in his home assistant. Turn it on, turn it off, turn the heat up, turn the heat down. And we're working on getting other things like chamber temperatures and stuff like that.

Chris

Which could be good for safety reasons.

Wes

Totally.

Brent

Very true. And for automations. And it's not done quite yet. We're sorry. But we will publish this to the JBE GitHub just to share it with the world.

Chris

Yeah, maybe you've got an AC unit that you've wanted to be able to control or a garage door that has proprietary. Like there's all these things. Now, there's certain levels it won't be able to defeat. But there's a lot that it will and can. it really opens up a whole new world of like, just open it up and put some open source in it and make it better. You know, like they didn't ship it that way, but we can make it that way.

And this opens it up to a whole new world of hardware, you know, pretty much anything that has control buttons and an LCD screen and with some power, you, I mean, that's what this thing's working with.

Wes

And that's kind of been the missing link in a lot of ways, right? Like I remember in years past you, you know, giving tips of like, buy the dumbest thing you can, so you can do the automation with just a power or whatever your mechanism. So this may be unlocked stuff that you want a better device, but it comes with more, doesn't have simple analog controls.

Chris

So much stuff now has like a digital control or soft buttons.

Wes

Maybe remote, but proprietary with their own little thing.

Chris

Yeah. Yeah. And no more. It is such an unlock when you start thinking about it. It's really been exciting. And so then to be able to see it work and see it graphically represented, it's like, oh, this is something else. And it's all free software. Pretty, pretty freaking cool. All right. We have some questions for you.

So please do boost in on your thoughts around like the system D or technical implementations for age gating and verification, or if it's a hard line for you and what the alternatives are. And we're also looking for your ideas for kiosk mode for this thing and kind of anything you got, anything you picked up in that segment that we could make this better.

Please do boost in. It'd be a great way to maybe make next episode a banger since this one was such a sleeper and also help us advance this project.

Wes

And boost in with any good Vans.

Chris

Yeah, let us know.

Brent

Yes, please. That's actually the priority for all the other questions.

Chris

Of course, you can always make it a live Tuesday on a Sunday. Join us Sundays at 10 a.m. Pacific, 1 p.m. Eastern. And if you want more show, remember that LUP plug gets together every single Sunday while we're streaming. And there is that bootleg version with twice the content. And Wes Pano, if they want more metadata information around the show, we got that too, don't we?

Wes

Yes, we do. We got JSON chapters hosted in the cloud. And for finer grain detail, VTT and SRT files for transcripts.

Chris

How enjoy that getting more and more useful every single day also very useful the links to everything we talked about those will be posted up at linuxunplugged.com slash 659 you also find out how to contact us our mumble and our matrix info and a bunch of great shows over there at jupiterbroadcasting.com thanks so much for joining us on this week's episode of your unplugged program and we'll see you back here next tuesday as in sunday.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android