Skip to main content
LawHub
Search

Why KDE Linux Surprised Us

Mar 1, 2026
Listen to this episode

We take KDE Linux for a spin and push it a little too far. Plus, a friend of the show stops by with a fresh tool: Nebula Commander.

Sponsored By:

Support LINUX Unplugged

Links:

Transcript

WEBVTT 00:00:11.225 --> 00:00:15.885 Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris. 00:00:16.085 --> 00:00:17.005 My name is Wes. 00:00:17.225 --> 00:00:18.125 And my name is Brent. 00:00:18.705 --> 00:00:21.805 Well, hello there, gentlemen. Here we are getting ready to head out. 00:00:21.985 --> 00:00:26.325 But before we go, we're going to tell you how KDE Linux surprised us after we 00:00:26.325 --> 00:00:27.685 gave it a little recent run. 00:00:27.845 --> 00:00:28.765 And then a friend's going to 00:00:28.765 --> 00:00:31.965 stop by the show and tell us about his really handy new open source tool. 00:00:32.385 --> 00:00:36.185 And we'll round out the show with some great boosts, some picks, and a heck of a lot more. 00:00:36.305 --> 00:00:39.025 It's a big show. So before we get there, let's say time-appropriate greetings 00:00:39.025 --> 00:00:40.965 to our virtual lug. Hello, Mumble Room. 00:00:41.905 --> 00:00:45.725 Hello, folks. Hello, folks. A real great way in North Alaska. 00:00:47.225 --> 00:00:51.005 Hello, everybody. Hello. We don't know for sure if we'll have a mumble room 00:00:51.005 --> 00:00:54.425 next week because we will be in our Airbnb or on the floor of scale or something 00:00:54.425 --> 00:00:56.945 like that, so you just never really know because we don't know. 00:00:57.085 --> 00:00:57.685 Can we do it in the car? 00:00:58.785 --> 00:01:02.825 Maybe. Maybe. I'm thinking about bringing some mobile connected internet with 00:01:02.825 --> 00:01:06.705 us. I was thinking about it. It's just big. But that could be handy for going down the road. 00:01:06.785 --> 00:01:07.085 Yes. 00:01:07.525 --> 00:01:08.625 And you know what we would do? 00:01:09.591 --> 00:01:12.411 Hook up our Nebula network. We'll talk more about that later. 00:01:12.511 --> 00:01:17.271 But go check out Nebula, define.net slash unplugged. Go meet managed Nebula 00:01:17.271 --> 00:01:18.251 from Define Networking. 00:01:18.311 --> 00:01:23.271 It's a decentralized VPN built on the open source, bulletproof Nebula platform that we love. 00:01:23.691 --> 00:01:26.671 Optimized for speed. And this is a quick way of saying it's going to use less 00:01:26.671 --> 00:01:31.051 battery and less network resources than the other mesh network tools you use. It's really simple. 00:01:31.731 --> 00:01:34.171 I love how simple it can be when you just want a couple of nodes. 00:01:34.331 --> 00:01:38.671 But it's engineered for serious security and a global mesh network. 00:01:38.671 --> 00:01:41.891 originally built for Slack's infrastructure and had to scale to their worldwide 00:01:41.891 --> 00:01:45.231 data center immediately, just systems all over the place, you can imagine, 00:01:45.671 --> 00:01:47.891 and how important Slack's data is. 00:01:47.971 --> 00:01:51.551 They got all of the company's data in the world, basically, and there has to be bulletproof. 00:01:51.851 --> 00:01:55.611 But unlike traditional VPNs, Nebula has a decentralized design, 00:01:55.611 --> 00:01:59.911 so there's no fragile control plane or a hub-and-spoke choke point. 00:02:00.751 --> 00:02:03.971 And your network always stays resilient. You can be in complete control of that, 00:02:04.051 --> 00:02:07.131 or you can use Manage Nebula and let them manage it for you. 00:02:07.131 --> 00:02:12.111 It's a kind of control and flexibility that I think our audience expects from their infrastructure. 00:02:12.491 --> 00:02:16.431 Originally built for something that's massive but can scale down to just a couple 00:02:16.431 --> 00:02:19.871 of nodes, it's really great. And you can get started for free and support the show. 00:02:20.051 --> 00:02:23.271 You just go to define.net slash unplugged. 00:02:23.611 --> 00:02:26.731 Sign up. 100 machines. Absolutely free. No credit card required. 00:02:27.111 --> 00:02:34.331 And gentlemen, they just added always on VPN mode for Nebula on Android and iOS. 00:02:34.451 --> 00:02:34.931 Oh, nice. 00:02:35.551 --> 00:02:36.071 Boom. 00:02:37.071 --> 00:02:42.411 Defined.net slash unplugged. Big thank you to Defined for being our sponsor 00:02:42.411 --> 00:02:43.711 of the unplugged program. 00:02:46.144 --> 00:02:50.364 Well, we're just one day away from hitting the road to go to scale 23x. It's happening. 00:02:50.864 --> 00:02:55.384 The largest Linux and open source event in Northern America, 00:02:55.384 --> 00:02:57.944 I'd say. Maybe not in the world, but definitely in our neck of the woods. 00:02:57.984 --> 00:03:00.424 For sure. And long running. 00:03:00.764 --> 00:03:01.104 Yeah. 00:03:01.584 --> 00:03:02.824 Great mix of communities. 00:03:03.004 --> 00:03:08.544 Yeah. And you can get 40% off registration when you use the promo code UNPLG. Unpludged. 00:03:09.104 --> 00:03:12.924 We'll be at Planet Nix, too, which is bringing all kinds of engineers and builders 00:03:12.924 --> 00:03:15.924 from around the world. Microsoft, Anthropic, Shopify. 00:03:16.264 --> 00:03:18.284 I mean, the list is crazy. 00:03:18.444 --> 00:03:20.744 Way more companies than you think using Nix, it turns out. 00:03:20.864 --> 00:03:21.024 Yeah. 00:03:21.084 --> 00:03:22.504 Planet Nix is a great way to find that out. 00:03:22.624 --> 00:03:26.484 Yeah. Phlox is making it possible. They're making reproducible dev environments 00:03:26.484 --> 00:03:29.484 actually usable. So they're just in the right place at the right moment. 00:03:29.924 --> 00:03:34.024 And they're helping us get down there. And to that end, and this is the last 00:03:34.024 --> 00:03:38.904 housekeeping update you guys have to listen on any of this, we are making a 00:03:38.904 --> 00:03:40.124 meetup super combo deal. 00:03:40.124 --> 00:03:45.304 We have decided since our meetup was on the same day and the same time as the 00:03:45.304 --> 00:03:49.404 Planet Nix after party, it was silly to split the crowd. 00:03:49.584 --> 00:03:53.864 Instead, we're going to do one giant Planet Nix after party meetup. 00:03:54.224 --> 00:03:58.464 So Phlox and JB are hosting happy hour for the community. 00:03:58.644 --> 00:04:02.264 I'll have the details now. It's all updated at meetup.com slash Jupiter Broadcasting. 00:04:02.424 --> 00:04:04.584 It's going to be Friday, March 6, 6 p.m. to 8 p.m. 00:04:05.024 --> 00:04:07.924 Instead of two events at separate times, we're going to do one awesome event 00:04:07.924 --> 00:04:13.404 on Friday night. combining our powers into one giant meetup. So come hang out. 00:04:14.766 --> 00:04:19.146 We also in this got roped into appetizers. So if you're listening and you would 00:04:19.146 --> 00:04:23.606 like to help your other listeners have a good time, we would love some some 00:04:23.606 --> 00:04:24.966 boost support for appetizers. 00:04:25.446 --> 00:04:28.626 We're going to be probably feeding over 100 mouths and it's in California. 00:04:28.826 --> 00:04:30.946 So you can imagine that's going to be expensive. 00:04:31.706 --> 00:04:33.906 But I think it's the right thing to do. People are going to come out. 00:04:34.066 --> 00:04:35.946 It's our way to contribute to the Knicks after party. 00:04:36.326 --> 00:04:40.026 And we'd love some support. We'll be on the road, but you could send a boost 00:04:40.026 --> 00:04:43.906 our way and we'll add it to the boost to bite pipeline, if you will. 00:04:44.766 --> 00:04:48.246 Thank you, everybody, who's going to meetup.com slash Jupiter Broadcasting 2 00:04:48.246 --> 00:04:49.766 and signaling their intention. 00:04:50.006 --> 00:04:52.426 We really appreciate that. It helps us plan. And we're really looking forward 00:04:52.426 --> 00:04:56.746 to the Planet Nix after party and seeing everybody down there. It's getting close. 00:04:59.146 --> 00:05:04.526 Well, this year, KD is having quite a moment. Plasma 6.6 just dropped with HDR 00:05:04.526 --> 00:05:09.246 support, better Wayland performance, and is finally stable enough to daily drive. 00:05:09.986 --> 00:05:16.206 The desktop Linux market, as you know, last year hit 5% desktop chair and, 00:05:16.206 --> 00:05:18.326 well, KD has been right at the center of that. 00:05:20.860 --> 00:05:28.680 KDE Linux, as you remember, is not Plasma, but its own thing. Not Neon either. 00:05:29.200 --> 00:05:29.720 Right. 00:05:29.840 --> 00:05:34.040 It's definitely not Neon. It's a new project by the KDE crew that we've been 00:05:34.040 --> 00:05:38.780 super excited about because, well, it's brand new. It's throwing in some super 00:05:38.780 --> 00:05:43.060 modern technology and is very actively under development right now. 00:05:43.160 --> 00:05:49.720 It aims to be one of the best ways to get the front row seat to KDE and Plasma. 00:05:49.720 --> 00:05:54.120 and well it's just it's code name project banana so what is there not to like. 00:05:54.120 --> 00:05:56.240 I see this is very much a brent pick. 00:05:56.240 --> 00:05:59.960 Right plasma bananas i mean did he force us to do this maybe. 00:06:01.180 --> 00:06:03.820 You know also it's it's a 00:06:03.820 --> 00:06:06.820 great time to check out because plasma is 00:06:06.820 --> 00:06:09.900 in such a great space yeah it's oh 00:06:09.900 --> 00:06:12.900 man you know being on hyperland for a little while now and then coming back 00:06:12.900 --> 00:06:18.960 to absolutely modern plasma it is looking so so good uh and it is a bit of an 00:06:18.960 --> 00:06:21.320 adjustment we've talked about this before and we're going to get more into this 00:06:21.320 --> 00:06:25.440 some of the weeds here with this episode there's no package manager traditionally 00:06:25.440 --> 00:06:27.840 here right you got flat pack you got app images, 00:06:28.380 --> 00:06:33.440 this is an image-based immutable whole os idea they have built it on arch but 00:06:33.440 --> 00:06:42.180 pac-man is not on this thing it is a self-contained single 4.8 gigabyte uh is it erofs image yeah. 00:06:42.180 --> 00:06:46.460 Erofs erofs yeah um i'll let you come up with your own pronunciation but. 00:06:48.563 --> 00:06:50.243 I'm just going to say E-R-O-F-S. 00:06:50.343 --> 00:06:50.923 E-R-O-F-S. 00:06:51.423 --> 00:06:54.403 Yeah. So that's the image layer. And that's like these are the image. 00:06:54.483 --> 00:06:56.263 And that's like almost five gigs on its own. 00:06:56.363 --> 00:07:00.263 And then you layer on the flat packs you want up to that. It's really meant for user space. 00:07:00.523 --> 00:07:05.183 And KDE's goal here is to create what they say is, quote, a bulletproof OS that 00:07:05.183 --> 00:07:06.423 showcases the best of KDE. 00:07:06.863 --> 00:07:09.283 And we've also talked about Gnome's creating Gnome OS. 00:07:09.963 --> 00:07:14.983 And what you get to see is something, if you're a Plasma fan, 00:07:15.123 --> 00:07:18.843 that is really, really nice. It's very lean, mean, and focused. 00:07:19.043 --> 00:07:23.283 The beta is coming along, right? This is still very early. They're about 65% complete right now. 00:07:23.563 --> 00:07:26.443 They're in some refinement areas. I know they've been working on Whalen stuff. 00:07:26.483 --> 00:07:29.643 I couldn't say exactly where they're at with that, but it looks like multi-monitor 00:07:29.643 --> 00:07:32.483 stability was a priority and high refresh rate, which I love to see. 00:07:33.003 --> 00:07:37.243 But the technical details, Wes, are... I mean, that's what I think is maybe 00:07:37.243 --> 00:07:40.943 most appealing to KDE Linux to us, is some of the practical decisions they've 00:07:40.943 --> 00:07:44.483 made, because they could have gone off in the weeds and done some really crazy stuff, 00:07:45.432 --> 00:07:49.752 But I think part of what's making this distribution so solid this early is they 00:07:49.752 --> 00:07:52.052 made some really sound, practical, technical decisions. 00:07:52.312 --> 00:07:57.412 Yeah. You know, it sounds a lot kind of similar to maybe like the uBlue type immutable service. 00:07:57.532 --> 00:08:00.872 We've talked a lot of different shades of immutable Linux versions. 00:08:02.012 --> 00:08:06.052 But this one is very lean and it feels conceptually simple because it really 00:08:06.052 --> 00:08:10.452 is relying a lot on a bunch of stuff that has been developed in a lot, 00:08:10.512 --> 00:08:12.852 mostly the systemd, but a slightly wider community than that. 00:08:12.852 --> 00:08:15.752 especially after if you remember um leonard had a blog post in 00:08:15.752 --> 00:08:18.572 2021 uh putting things together i think it was called yeah 00:08:18.572 --> 00:08:21.332 it was kind of like a lot of modern ideas that's where we got maybe like the 00:08:21.332 --> 00:08:24.712 ideas behind systemd home d and like a lot of stuff we've seen develop over 00:08:24.712 --> 00:08:29.932 the years including um unified kernel kernel images you can't ukis which kd 00:08:29.932 --> 00:08:36.132 linux does use and so as part of that you get um what's called mkosi or mcosi 00:08:36.132 --> 00:08:37.132 i don't know what do you like there i. 00:08:37.132 --> 00:08:39.772 Like mcosi So M-K-O-S-I. 00:08:40.072 --> 00:08:43.692 Yeah. So this is a tool to make operating system images. 00:08:43.932 --> 00:08:44.092 Ah. 00:08:44.712 --> 00:08:48.812 And the core philosophy is building an OS image should be reproducible, 00:08:49.132 --> 00:08:51.912 declarative, and unprivileged, right? 00:08:51.932 --> 00:08:53.452 Because often when you think about this, you think about like, 00:08:53.672 --> 00:08:58.572 oh, loop devices and like F disk and formatting and like making new file systems, 00:08:58.752 --> 00:08:59.972 all of which sounds like root permission. 00:09:00.192 --> 00:09:00.832 All needs root. Yeah. 00:09:01.052 --> 00:09:05.192 Yeah. So what's great here is instead you run this, you give it a single config file. 00:09:05.352 --> 00:09:05.472 Okay. 00:09:05.472 --> 00:09:09.532 And it uses systemd repart under the hood and it's got some clever stuff. 00:09:09.672 --> 00:09:13.572 There's also, of course, because of systemd, cgroups and namespaces and unshare 00:09:13.572 --> 00:09:17.332 and basically it's able to look like it has root inside of a specially crafted 00:09:17.332 --> 00:09:19.652 namespace that has the permissions it needs to do. 00:09:19.652 --> 00:09:23.872 a whole bunch of clever, modern Linux plumbing engineering under the hood so 00:09:23.872 --> 00:09:28.032 that at the end of the day, you can create stuff like raw GPT disk images, 00:09:28.252 --> 00:09:32.352 EROFS images, squash FS, container directories, UKIs, tarballs, 00:09:32.652 --> 00:09:37.072 all from just something that can run without crazy permissions, 00:09:37.252 --> 00:09:39.552 run in CI, or run right in your terminal. 00:09:40.232 --> 00:09:43.012 And then, of course, there's a bunch of other stuff that layers in there. 00:09:43.012 --> 00:09:45.472 So you do get EROFS, which we'll go more into, but... 00:09:46.287 --> 00:09:51.227 Okay, you use MKOSI to make yourself like a disk image, maybe an EROFS, 00:09:51.627 --> 00:09:54.447 but what do you do with that? 00:09:54.587 --> 00:09:57.167 Well, there's more tools. There's systemd sysupdate. 00:09:57.347 --> 00:09:57.787 Okay. 00:09:57.947 --> 00:10:02.147 And this is the thing that actually handles the cool rollback and like slot 00:10:02.147 --> 00:10:04.967 sort of A-B functionality that's going on. 00:10:04.987 --> 00:10:08.327 So when you want to do an update, you're not pulling down app packages. 00:10:08.807 --> 00:10:11.827 You're not, you know, there's no DNF. There's no Pac-Man involved. 00:10:12.027 --> 00:10:14.767 You download a whole big new disk image. 00:10:14.767 --> 00:10:14.907 Right. 00:10:14.907 --> 00:10:18.407 We'll get to the Delta update story later. But you download a new image. 00:10:18.567 --> 00:10:22.687 Systemd puts that in the right spot and hooks up all the bootloader stuff for 00:10:22.687 --> 00:10:26.407 you so that automatically you can boot into the new version. 00:10:26.467 --> 00:10:28.647 If it doesn't go well, it can boot back to the old one. 00:10:28.747 --> 00:10:31.347 And it understands that all at the Systemd layer. 00:10:31.507 --> 00:10:34.647 Well, and to the point earlier, they didn't invent that tool. 00:10:34.867 --> 00:10:37.427 Nope. They didn't have to roll that. They didn't have to iron out all the logic 00:10:37.427 --> 00:10:39.027 to make sure it was robust and reliable. 00:10:39.627 --> 00:10:42.327 That's an example of a practical technology choice where, yeah, 00:10:42.387 --> 00:10:45.647 they could have invented their own system and maybe even have like a nice little 00:10:45.647 --> 00:10:47.387 plasma integration and all of that. 00:10:47.567 --> 00:10:51.187 But instead they chose to go with something that's already been built and in production. 00:10:51.707 --> 00:10:53.667 So it's already stable, that aspect of it. 00:10:53.827 --> 00:10:57.107 And then, you know, you get to layer on stuff too. So then there's systemd system 00:10:57.107 --> 00:11:00.987 extensions because in this model you have slash user that is hermetically sealed, 00:11:01.007 --> 00:11:05.187 that is this EROFS that you can't touch, that has a bunch of nice cryptographic properties. 00:11:05.667 --> 00:11:08.907 So maybe that's your base system. And then on top of that, like in the testing 00:11:08.907 --> 00:11:12.447 edition we've been playing with, you can layer in all the plasma stuff as its 00:11:12.447 --> 00:11:15.807 own systemd system extension that you can update, that you can swap in and out, 00:11:15.867 --> 00:11:18.947 and you don't have to mess with all of the Arch packages underneath necessarily. 00:11:19.187 --> 00:11:23.527 Do you want to talk about system extensions more later, or could we expand on that right now? 00:11:23.647 --> 00:11:26.787 Because systemd sysextent seemed like at the announcement of the project, 00:11:26.967 --> 00:11:30.247 well, this is the way I'm going to layer in my mesh networking, 00:11:30.247 --> 00:11:34.467 or this is the way I'm going to modify this otherwise immutable distro to have 00:11:34.467 --> 00:11:36.267 this particular customization I want. 00:11:36.407 --> 00:11:39.207 And it does work for that, but it's a little heavyweight. It's still getting 00:11:39.207 --> 00:11:43.027 kind of ironed out sometimes, especially like services that are served in there 00:11:43.027 --> 00:11:44.527 can be a little bit flaky, which is... 00:11:44.659 --> 00:11:47.499 a little unexpected considering the origins 00:11:47.499 --> 00:11:50.719 of all this stuff um but what it works really well for is something like plasma 00:11:50.719 --> 00:11:54.779 or libraries frameworks where you don't just have a single file like if you're 00:11:54.779 --> 00:11:57.399 just trying to install something like a you know that's like a single binary 00:11:57.399 --> 00:12:01.359 download from some rust or go project or whatever you can do it but it's more 00:12:01.359 --> 00:12:04.239 work than you need right there's already places to just stick that like opt 00:12:04.239 --> 00:12:06.419 or user local or whatever or what about like the. 00:12:06.419 --> 00:12:07.559 Case of nebular tail scale. 00:12:07.559 --> 00:12:10.299 Yeah so those are too easy to distribute basically but if 00:12:10.299 --> 00:12:13.399 you're trying to add something that needs libraries it needs png assets it has 00:12:13.399 --> 00:12:17.859 all this stuff that is expected to be under those normal slash usr like stuff 00:12:17.859 --> 00:12:21.159 that a linux operating system expects that's where system extensions really 00:12:21.159 --> 00:12:25.559 shine so it's really for the core system extension and not as much of the story 00:12:25.559 --> 00:12:28.839 necessarily you can do it right but for like user apps but. 00:12:28.839 --> 00:12:31.379 If yeah if you could get a user app that's a go binary you just go that route. 00:12:31.379 --> 00:12:32.019 Yeah i. 00:12:32.019 --> 00:12:37.139 Got you so let's talk more about this er ofs which stands for enhanced read-only 00:12:37.139 --> 00:12:39.839 file system it came out of huawei for Android. 00:12:40.059 --> 00:12:44.679 We've had it in Linux since Linux 5.4. So again, it's been around since 2019. 00:12:44.859 --> 00:12:47.919 It's a technology that is stable. It's in use in Chrome OS. 00:12:48.179 --> 00:12:51.259 It's actually required for Android now. All the system partitions are using it. 00:12:51.359 --> 00:12:54.779 And they're using it in KDE Linux. So I think the obvious question, 00:12:54.859 --> 00:12:56.499 because if you're going to ask a Linux user, how would you do this? 00:12:56.579 --> 00:12:57.839 They'd say, well, I would use SquashFS. 00:12:58.679 --> 00:13:03.279 It's been around forever. SquashFS has been in Linux since kernel 2.6.29. 00:13:03.539 --> 00:13:03.919 Wow. 00:13:04.259 --> 00:13:07.219 Yeah. Yeah. But there's a difference and it matters here. 00:13:07.319 --> 00:13:10.139 So SquashFS takes a fixed chunk of uncompressed data, like, say, 00:13:10.559 --> 00:13:13.979 128 kilobytes of data, and it compresses it to a variable-size output. 00:13:14.179 --> 00:13:18.699 And the blocks land arbitrarily and offsets, and reading one random byte means 00:13:18.699 --> 00:13:21.599 loading and decompressing that entire 120-kilobyte. 00:13:22.120 --> 00:13:25.660 So the whole point for SquashFS is maximizing the compression, 00:13:25.880 --> 00:13:28.720 which is great, right? Especially when it was made and the internet was super slow. 00:13:28.780 --> 00:13:30.440 Back in the two six days when you're squashing. 00:13:30.700 --> 00:13:33.540 Yeah, right. But it kind of means that the output is variable, 00:13:33.680 --> 00:13:37.920 which means you can't easily, like, you have to unpack kind of everything or at least big chunks. 00:13:37.980 --> 00:13:40.940 If you want just one file, you can't get that. 00:13:41.240 --> 00:13:45.520 Right. So this is where the enhanced rate only file system flips it. 00:13:45.720 --> 00:13:49.580 It has fixed output for compression. Like, you know what you're going to get. 00:13:49.580 --> 00:13:52.960 the compressor is told give me exactly four kilobytes every block 00:13:52.960 --> 00:13:59.020 is page size block aligned and indexed and then so i guess to your point much 00:13:59.020 --> 00:14:02.860 easier to extract the exact piece that you need memory overhead per block drops 00:14:02.860 --> 00:14:07.840 in this example from say 128 kilobytes with the squash fs to just four kilobytes 00:14:07.840 --> 00:14:09.920 with the enhanced read-only file system. 00:14:09.920 --> 00:14:13.260 And it kind of just directly maps to memory because it's meant to match the 00:14:13.260 --> 00:14:17.200 page size and so instead of having to like unpack stuff and copy stuff you can 00:14:17.200 --> 00:14:19.740 kind of just go mount it into memory and. 00:14:19.740 --> 00:14:22.600 Get reading and you can imagine that matters a lot 00:14:22.600 --> 00:14:25.820 like at boot time you've got a train you've got a chain of 00:14:25.820 --> 00:14:30.400 trust you're trying to get everything from secure boot signing to the UKI embeds 00:14:30.400 --> 00:14:34.260 all this crap that I barely even understand to actual like kernel loading and 00:14:34.260 --> 00:14:37.760 you want it all done as fast as absolutely possible and you're using these images 00:14:37.760 --> 00:14:41.460 this is the exact kind of scenario where you need a solution where you know 00:14:41.460 --> 00:14:44.040 the predictable size of the compression and where it's going to be at. 00:14:44.763 --> 00:14:47.683 And it's just a really neat technical idea that's worked really well. 00:14:48.323 --> 00:14:53.483 It's also kind of neat because SquashFS has been hard to work with cryptographically 00:14:53.483 --> 00:14:56.643 and work with DM Verity and kind of all the nice stuff that people want when 00:14:56.643 --> 00:15:00.263 you are taking the time to use Secure Boot and to use signed UKIs and all that 00:15:00.263 --> 00:15:02.783 kind of stuff that you might want for enterprise trust at scale, right? 00:15:04.023 --> 00:15:08.143 and EROFS works really well with that which means you can have nice cryptographic 00:15:08.143 --> 00:15:12.523 checksums and actual DMV protection so that if someone does try to mess with 00:15:12.523 --> 00:15:15.023 your root file system, the kernel can detect it immediately. 00:15:15.203 --> 00:15:15.563 That's great. 00:15:15.823 --> 00:15:18.243 It's not all roses though. 00:15:18.403 --> 00:15:18.523 No? 00:15:18.803 --> 00:15:22.123 Well, I bet you're feeling this one right? One of the bigger friction points 00:15:22.123 --> 00:15:27.143 is it's not a scientific limitation, it's more like an engineering problem that is being worked on. 00:15:27.163 --> 00:15:27.843 It is a problem though. 00:15:27.963 --> 00:15:30.083 But there are no delta updates. 00:15:30.163 --> 00:15:30.763 It sucks man. 00:15:30.763 --> 00:15:36.043 So you go change a couple little bits. That's a whole new five gigabyte download. 00:15:37.240 --> 00:15:39.140 They'll get there, though, right? I mean, that's on the roadmap. 00:15:39.460 --> 00:15:41.960 And, right, you do have this layered ability. And especially, 00:15:42.120 --> 00:15:46.100 right, where with, like, EROFS and other things, you can keep all the nice cryptographic 00:15:46.100 --> 00:15:49.180 signing for the bottom, even if you add some system extension that isn't itself 00:15:49.180 --> 00:15:52.280 signed. So you don't have to go, like, break the whole trust of the system just 00:15:52.280 --> 00:15:53.620 to add on some stuff at the top. 00:15:53.740 --> 00:15:54.780 That's elegant. I like that. 00:15:55.820 --> 00:15:59.260 Composable things. So there's some hope that, like, maybe you don't have to 00:15:59.260 --> 00:16:03.700 update the core tiny layers, like, all the time for that rebuild. 00:16:03.700 --> 00:16:08.340 and there there are things in progress upstream i think even there's been some 00:16:08.340 --> 00:16:12.000 work from like various parts of the community i think leonard had one at one 00:16:12.000 --> 00:16:15.780 point so i expect this will get solved it's just it's just early days. 00:16:15.780 --> 00:16:21.500 So we all had a little chance to kick the tires and um i thought let's start 00:16:21.500 --> 00:16:24.420 with brent's observations because i'm brett you're probably the most act well 00:16:24.420 --> 00:16:27.840 actually wes you're on plasma all the time too but when we think of our biggest 00:16:27.840 --> 00:16:31.560 plasma fan i think of brent so i'm curious what your observations of kde linux were. 00:16:31.560 --> 00:16:35.520 Well i was fully expecting like the reference kd 00:16:35.520 --> 00:16:38.660 implementation i've used many spins and 00:16:38.660 --> 00:16:41.320 such over the years and it 00:16:41.320 --> 00:16:45.760 always feels like there's of course opinions thrown into spins which is the 00:16:45.760 --> 00:16:50.460 whole purpose but it never quite felt like unless you were running neon that 00:16:50.460 --> 00:16:55.900 you had the reference that the kd software developers were building plasma to 00:16:55.900 --> 00:16:58.960 work perfectly with and to see you know the future of plasma. 00:16:59.340 --> 00:17:03.100 So as soon as I installed and booted KD Linux, 00:17:03.500 --> 00:17:07.920 that's the feeling I got was like, Oh wait, I'm learning like even the tour 00:17:07.920 --> 00:17:12.900 for the first boot up tour that you get, which I, you know, over the years have 00:17:12.900 --> 00:17:14.740 seen them and don't really click on them now. 00:17:14.780 --> 00:17:20.240 I was like, wait, this is teaching me new ways that the developers intended 00:17:20.240 --> 00:17:24.880 for me to use plasma that I haven't been doing. And it made me realize like, 00:17:25.566 --> 00:17:29.766 Even though I'm a huge Plasma fan, I don't know that I understand how they want me to use it. 00:17:29.886 --> 00:17:34.126 And I'm learning new ways to use it just through booting for the first time 00:17:34.126 --> 00:17:36.466 KDE Linux, which was a nice feeling to have. 00:17:36.566 --> 00:17:40.686 Because I felt like, well, I'm a big fan, but I could become even more of a 00:17:40.686 --> 00:17:43.846 fan if I understand all of the different paradigms that they're building into 00:17:43.846 --> 00:17:45.606 Plasma that I don't even know about. 00:17:46.046 --> 00:17:51.186 Did you get that feeling too, Chris? Because I think I saw you mention something about that. 00:17:51.766 --> 00:17:57.026 I think my takeaway was more like, it's just so well done. It felt smooth, 00:17:57.366 --> 00:17:59.586 clean, professional, polished. 00:18:00.346 --> 00:18:04.266 I don't know how you strike that tone with an introductory wizard, but it got there. 00:18:04.446 --> 00:18:09.106 Like, I was like... I made a note in my... Like, this is a great introductory wizard. 00:18:09.186 --> 00:18:13.286 I've seen versions of this with other distros, but this one felt particularly polished. 00:18:13.426 --> 00:18:15.666 Wes, what did you think? We all went through it. 00:18:15.786 --> 00:18:16.186 Well, and... 00:18:17.574 --> 00:18:21.594 It was just so light and clean and solid and fast. 00:18:21.834 --> 00:18:24.914 I mean, the install was super fast. I did only try it in a VM this time, 00:18:25.014 --> 00:18:27.074 but it was a great virtualization. 00:18:27.094 --> 00:18:27.614 Oh, super great. 00:18:27.674 --> 00:18:29.974 Like, less than five minutes, had it installed, rebooted. 00:18:30.094 --> 00:18:30.754 Snappy the entire time. 00:18:30.774 --> 00:18:35.234 It had all the virtio drivers and, like, graphics support. So it almost just 00:18:35.234 --> 00:18:36.714 felt like using my native Plasma. 00:18:36.934 --> 00:18:41.654 And it was visually consistent in a way that feels like some of the stuff in 00:18:41.654 --> 00:18:44.894 Plasma maybe hasn't been visually consistent, too. I think maybe that was... 00:18:44.894 --> 00:18:48.514 This was the first time I didn't turn off the light theme. I'm a big dark theme guy. 00:18:48.694 --> 00:18:52.054 Part of it was like, I'm running plasma and plasma here, so it's a little less 00:18:52.054 --> 00:18:53.334 confusing if one of them's a different theme. 00:18:53.514 --> 00:18:55.654 But it was also like, the light theme just looked really good. 00:18:55.774 --> 00:18:59.134 I instinctively went to Switch. I was like, wait, this looks great. I don't need to. 00:18:59.274 --> 00:19:02.414 I know. I feel like with the latest plasma and the stuff they're doing with 00:19:02.414 --> 00:19:04.834 Breeze, I'm a light theme guy again. 00:19:04.934 --> 00:19:07.674 It just looks, the light theme looks better than the dark theme. 00:19:08.114 --> 00:19:08.694 It does. 00:19:08.774 --> 00:19:12.274 As you guys are mentioning this, I'm realizing I didn't even realize I was in 00:19:12.274 --> 00:19:16.714 a light theme and I never changed it. And that is like the first time that ever happens. 00:19:17.574 --> 00:19:19.714 It looks good. It really does. 00:19:19.794 --> 00:19:21.934 I'm redefining my identity all of a sudden. 00:19:24.254 --> 00:19:26.014 Brent finds himself in KD Linux. 00:19:27.614 --> 00:19:29.874 You think by now I would have figured that out? 00:19:32.114 --> 00:19:36.374 I think that was a very good first impression, right? When that comes up, it's good. It was good. 00:19:37.002 --> 00:19:38.442 Clearly made an impression on all of us. 00:19:38.582 --> 00:19:42.522 I found the installer too was just simple and straightforward. 00:19:42.882 --> 00:19:45.922 I, of course, did my usual test of trying out the encryption, 00:19:46.642 --> 00:19:53.342 which worked perfectly fine, except for on first boot, I forgot the password that I put in. 00:19:53.942 --> 00:19:54.422 No. 00:19:54.802 --> 00:20:01.022 More because I've adopted our JB Studio temporary password in my own home lab now. 00:20:01.022 --> 00:20:01.802 We don't have one of those. 00:20:01.842 --> 00:20:02.922 No, no, we never do that. 00:20:02.942 --> 00:20:03.762 We're OWASP certified. 00:20:03.762 --> 00:20:06.402 We always generate unique passwords for every temporary thing. 00:20:06.402 --> 00:20:09.682 I usually put Cosmo as a password, to be honest. But anyway, 00:20:09.842 --> 00:20:13.162 so I like briefly, you know, I was having breakfast and it was early. 00:20:13.522 --> 00:20:17.802 So I put the wrong password in at the encryption screen when you first boot just to unlock the disk. 00:20:17.942 --> 00:20:20.962 And I was like, oh, no, OK. All right, right. I put the wrong one in. 00:20:21.062 --> 00:20:22.242 So I'm going to get to try again. Right. 00:20:22.862 --> 00:20:26.522 And it just dropped to a rescue shell, which I hadn't. 00:20:26.882 --> 00:20:30.482 That's not the usual flow. Usually it lets you at least try three times. 00:20:30.702 --> 00:20:34.862 So that was interesting. But once I, you know, put in the right password, 00:20:34.962 --> 00:20:36.722 everything worked just fine. And so that was nice. 00:20:37.162 --> 00:20:41.342 But what surprised me the most was, I think, what we talked about earlier. 00:20:41.562 --> 00:20:46.542 And what I would like to bring even more attention to is the underlying technologies 00:20:46.542 --> 00:20:53.322 that are making this image-based distribution work for the KDE team. 00:20:53.622 --> 00:20:57.602 And I discovered some software under the hood in their docs, 00:20:57.822 --> 00:21:01.862 actually, which are pretty light, but answer all of the most important questions 00:21:01.862 --> 00:21:04.962 when you're first booting into KD Linux. 00:21:04.962 --> 00:21:09.082 One of them was like, well, how do I get other software on here? 00:21:09.142 --> 00:21:12.902 Of course, Flatpak was built in to discover, which was nice. 00:21:12.902 --> 00:21:15.982 But they list a bunch of other options for geeks and nerds like us because, 00:21:16.202 --> 00:21:17.482 well, that's who they're building it for. 00:21:17.742 --> 00:21:24.122 So I discovered, of course, Nix is a first-class citizen for how to get additional 00:21:24.122 --> 00:21:25.902 software on your KD Linux. 00:21:26.462 --> 00:21:29.722 Now, hold on. Let's pause here for a second. Because I know some of the audience 00:21:29.722 --> 00:21:30.722 is going to roll their eyes. 00:21:30.842 --> 00:21:31.082 Sure. 00:21:31.082 --> 00:21:37.282 But I actually think this is a very notable differentiation between the Bluefin 00:21:37.282 --> 00:21:39.342 crowd and maybe KDE Linux here. 00:21:39.942 --> 00:21:44.462 What KDE Linux has done is just made sensible steps to make it possible to sideload Nix. 00:21:45.202 --> 00:21:50.042 What that does is that gives you the world's largest package repository on an 00:21:50.042 --> 00:21:52.302 immutable distribution that doesn't have a package manager. 00:21:52.502 --> 00:21:56.402 In Ubulu's defense, they do have some more difficulties because they're doing 00:21:56.402 --> 00:22:00.382 a composeFS thing that sort of makes an EROFS, and that's for the whole root. 00:22:00.422 --> 00:22:01.282 The root of the file system. 00:22:01.302 --> 00:22:03.942 Right. Whereas here, it's just slash user right now, mostly, that's like... 00:22:03.942 --> 00:22:06.942 So you can create a new root directory, which in this case is slash Nix. 00:22:06.942 --> 00:22:11.222 But it did stand out because, like, right away, there is a fair amount of stuff. 00:22:11.222 --> 00:22:14.282 Actually, I was kind of looking at it, and you get, by default, 00:22:14.462 --> 00:22:19.982 like, a bunch of development utilities and a fair amount of common file system 00:22:19.982 --> 00:22:22.382 stuff. So it's not totally Spartan, but it doesn't have everything. 00:22:22.622 --> 00:22:25.542 And if Flatpaks are your primary way to get, like, user apps, 00:22:25.622 --> 00:22:29.562 that doesn't really get me Netcat very well, which I need on every system I have, apparently. 00:22:30.162 --> 00:22:33.282 And Nix kind of, especially if you have this whole, like, I want an immutable 00:22:33.282 --> 00:22:37.242 rock solid, the way Nix works, then you can just sort of ephemerally summon 00:22:37.242 --> 00:22:39.442 a tool, and then you don't have to worry about it and it didn't pollute your 00:22:39.442 --> 00:22:41.322 system, and it's not going to get in the way of future updates. 00:22:41.342 --> 00:22:42.522 It really makes a lot of sense. 00:22:42.902 --> 00:22:47.242 And they list a few different options. I know we were looking for Nix as one 00:22:47.242 --> 00:22:50.382 of the options, so certainly it's nice to see it there in the official docs. 00:22:51.022 --> 00:22:54.942 But they do list other options for software that might not be packaged in a 00:22:54.942 --> 00:22:59.942 flatback. So DistroBox, of course, is an option, which I think we would expect to see. 00:23:00.142 --> 00:23:04.022 But I did discover a project called Capsule, which KD is working on as well. 00:23:04.202 --> 00:23:08.582 And its description here is Incus-based container management with native KD 00:23:08.582 --> 00:23:09.642 and Plasma integration. 00:23:10.002 --> 00:23:15.202 So it's a DistroBox-like tool using Incus as the container or VM backend, 00:23:15.202 --> 00:23:17.922 and it's designed specifically for KD Linux. 00:23:18.242 --> 00:23:20.282 I love the name Capsule, of course, with a K. 00:23:20.342 --> 00:23:21.242 It's cute, yeah. 00:23:21.462 --> 00:23:25.002 But it perfectly describes what it does. It's one of those good names where 00:23:25.002 --> 00:23:27.562 it's got branding and it describes what it does. Capsule with a K. 00:23:27.842 --> 00:23:31.762 Yeah, the use of Incas is interesting. I'm curious. That one especially seems 00:23:31.762 --> 00:23:34.262 very early, but I'm curious to see where they take it. 00:23:34.502 --> 00:23:37.982 This is exciting. I mean, I think the takeaway I'm having... 00:23:38.585 --> 00:23:43.465 When I tried it, and it sounds like when you guys tried it, is there's more 00:23:43.465 --> 00:23:45.525 here, there's more meat on this 00:23:45.525 --> 00:23:48.505 bone than we thought. And there's a real contender in this distribution. 00:23:48.805 --> 00:23:53.165 Because they've managed to strike customizability and flexibility with that 00:23:53.165 --> 00:23:56.265 image-based immutability for some of the sections of the system that matter. 00:23:56.725 --> 00:23:59.905 And if you're a Plasma user, you're getting super fresh Plasma. 00:24:00.305 --> 00:24:05.685 we decided to try to set up nebula between our kde linux instances just because 00:24:05.685 --> 00:24:10.305 how easy it is to just set up a mesh vpn and some of these basic services on 00:24:10.305 --> 00:24:14.885 an immutable distro is actually a decent baseline test because it turns out 00:24:14.885 --> 00:24:17.925 that's often one of the first couple of things end users want to do i. 00:24:17.925 --> 00:24:19.525 Need to get it connected to the rest of my stuff. 00:24:19.525 --> 00:24:23.065 And so like the ublue folks have done have made this really easy to get tail 00:24:23.065 --> 00:24:28.825 scale going but what if you wanted to get nebula going And could you get Nebula going on KDE Linux? 00:24:29.285 --> 00:24:33.445 And I think you and I both took a different approach to solving this. 00:24:33.505 --> 00:24:33.845 Yeah, true. 00:24:34.205 --> 00:24:36.445 Because I was going to experiment with Nix anyways... 00:24:37.696 --> 00:24:40.976 I installed Nix just using the, you know, like the curl command from the NixOS 00:24:40.976 --> 00:24:45.596 website, then proceeded to use Nix to set up Nebula, which I found to be very 00:24:45.596 --> 00:24:47.236 straightforward and worked flawlessly. 00:24:47.976 --> 00:24:51.536 You went more like blasting binaries and setting up configs and stuff like that. 00:24:51.636 --> 00:24:53.536 But I liked it. It was like you could do either approach. 00:24:53.856 --> 00:24:57.956 Yeah. You know, Nebula provides just regular releases. You can go download and 00:24:57.956 --> 00:25:00.016 you basically just need the two binaries that they ship. 00:25:00.076 --> 00:25:03.396 One's Nebula that actually runs like the VPN service and the other is Nebula cert, 00:25:03.576 --> 00:25:06.476 which handles dealing with all the certificates and handling your 00:25:06.476 --> 00:25:09.536 ca if you need to do that so you might not even need that one necessarily but 00:25:09.536 --> 00:25:14.776 they come in the same little uh tarball so yeah i just had um an lm buddy whip 00:25:14.776 --> 00:25:18.956 up a little install script to go download the latest release and go drop it 00:25:18.956 --> 00:25:24.076 i think i did var it looked like the like var lib area was um writable and opt 00:25:24.076 --> 00:25:25.656 was writable and etsy's right etsy. 00:25:25.656 --> 00:25:28.576 As well which i didn't know at first i wasn't sure when i was yeah. 00:25:28.576 --> 00:25:32.796 So i was able to have it like just stick the binaries in a reasonable location 00:25:32.796 --> 00:25:36.996 yeah i think it went with var lib nebula bin in this case and then set stuff 00:25:36.996 --> 00:25:41.696 up with like a default config under etsy nebula and then also add in a systemd 00:25:41.696 --> 00:25:45.436 service to start it and then after that it worked pretty well and. 00:25:45.436 --> 00:25:49.676 This is what i'm saying like it's the balance of it's immutable but wes can 00:25:49.676 --> 00:25:54.336 write systemd units and to etsy and when he updates and reboots it persists, 00:25:55.207 --> 00:25:59.547 So you can do that kind of customization you need to actually make it a functional workstation. 00:26:00.187 --> 00:26:05.027 And I like that. I think that's very approachable for most Linux users today. 00:26:05.447 --> 00:26:08.387 They got something real nice here. What was your experience overall? 00:26:08.587 --> 00:26:13.607 I found it surprisingly workable and refreshing in the simplicity. 00:26:13.807 --> 00:26:17.527 Like, I really like what Ublue is doing, and they're cooking on some good stuff over there. 00:26:17.607 --> 00:26:19.207 Yeah, yeah. I mean, I'm running it right here in front of me. 00:26:19.347 --> 00:26:23.027 But it was cool to see sort of like, Like, you know, Yubo's come out a lot of 00:26:23.027 --> 00:26:27.787 the Bootsy and Upstream Red Hat and Fedora work, which is excellent, 00:26:27.887 --> 00:26:28.807 but has its own heritage. 00:26:29.047 --> 00:26:33.007 And this being sort of a fresh attempt, which uses Arch, but like not at all 00:26:33.007 --> 00:26:37.147 at runtime, entirely just as like a base for the software to put together like 00:26:37.147 --> 00:26:38.487 the core part of a distribution. 00:26:38.827 --> 00:26:43.987 And then is otherwise sort of embracing a lot of the Lenart and SystemD ideas. 00:26:44.147 --> 00:26:48.187 It's just, it's neat from a technical standpoint, and it's cool to see it working pretty darn well. 00:26:48.187 --> 00:26:51.027 We should try to dig up that original blog post because it really did inspire 00:26:51.027 --> 00:26:52.007 a lot of this from Lenart. 00:26:52.207 --> 00:26:57.567 And it's a lot of great ideas there combined with a lot of technologies that 00:26:57.567 --> 00:26:59.087 already exist and work today. 00:27:00.227 --> 00:27:04.167 And so while they are very much still in the testing and building phase, 00:27:04.267 --> 00:27:06.847 this isn't a daily driver yet. This isn't production ready yet. 00:27:07.227 --> 00:27:11.647 The fundamentals are pretty solid. And I think early adopters, 00:27:11.647 --> 00:27:14.467 it's probably getting there. I think it's probably getting there for early adopters. 00:27:14.467 --> 00:27:18.747 It is kind of funny they mention, right? Like it is a terrible place right now, mostly. 00:27:18.907 --> 00:27:22.607 You kind of use DistroBox or containers if you want to actually develop on Plasma. 00:27:23.127 --> 00:27:25.007 But if you just want to use it, it's great. 00:27:28.390 --> 00:27:31.930 Well, we have no sponsor for this slot, but we would very much appreciate if 00:27:31.930 --> 00:27:35.370 you wanted to become a member or send us a boost to help support the appetite 00:27:35.370 --> 00:27:38.210 budget, the appetizer budget. I am hungry, though. 00:27:38.630 --> 00:27:41.430 We would very much appreciate it. We've been running lean these days, 00:27:41.430 --> 00:27:44.330 and so every little bit of support absolutely matters. 00:27:45.210 --> 00:27:47.590 And Fountain FM makes it really easy to boost. And, of course, 00:27:47.610 --> 00:27:50.770 we have the meetup that is coming up in just a couple of days. 00:27:50.770 --> 00:27:54.350 So if you can support us, that'd be great. And a membership is also very much appreciated. 00:27:54.930 --> 00:27:57.550 LinuxUnplugged.com slash membership for just this show. You get the bootleg 00:27:57.550 --> 00:28:01.170 or you can get the totally ad-free version that still has all of Drew's edits, 00:28:01.270 --> 00:28:02.890 which is always a great option. 00:28:03.410 --> 00:28:06.310 And jupyter.party if you want to support the entire network and get the launch 00:28:06.310 --> 00:28:09.730 bootleg and all of that. Thank you, everybody who supports us. 00:28:10.190 --> 00:28:10.970 Appreciate it very much. 00:28:14.131 --> 00:28:20.011 Well, Mr. Bearded Tech joins us from the sunny state of Alaska to talk about 00:28:20.011 --> 00:28:23.551 his project that he's been working on called Nebula Commander. 00:28:24.531 --> 00:28:26.611 Mr. Tech, welcome to the show, sir. 00:28:27.231 --> 00:28:28.671 Well, thank you, Chris. Glad to be here. 00:28:29.071 --> 00:28:33.191 So tell us a little bit about Nebula Commander. I know it's self-hosted control 00:28:33.191 --> 00:28:37.991 panel to get Nebula going, but that's kind of where my knowledge ends. 00:28:38.511 --> 00:28:43.571 and I'm just kind of looking for an overview of what the project is and what 00:28:43.571 --> 00:28:48.671 it can do and kind of like, you know, an elevator pitch for it, if you will. 00:28:49.091 --> 00:28:54.971 Well, a little background to start off. This all goes back to when you made 00:28:54.971 --> 00:29:02.291 call-outs for NixOS configs to be made fun of on air. 00:29:02.491 --> 00:29:04.451 Yeah, the config confessions, of course, yeah. 00:29:05.091 --> 00:29:11.371 So uh i i started that nix os router project because of that prior to the complete 00:29:11.371 --> 00:29:16.491 confessions uh and you guys roasted the fact that there was no way to configure 00:29:16.491 --> 00:29:20.371 nebula or tail scale so i uh i created nebula commander. 00:29:20.371 --> 00:29:24.471 Oh my goodness that's a bit of a response man that's a bit of a response wow 00:29:24.471 --> 00:29:31.251 that's incredible yeah because this is uh this is really turned into i mean 00:29:31.251 --> 00:29:34.051 possibly it It could be something people want to go grab and deploy right now 00:29:34.051 --> 00:29:38.091 because it's a way to manage a fleet of a nebula overlay. 00:29:38.431 --> 00:29:42.151 Explain what it's doing. It's more than just like what Wes and I are playing 00:29:42.151 --> 00:29:44.271 around with, which is like kicking keys around. 00:29:45.228 --> 00:29:49.628 So not to uh go against your sponsor or anything like that but to find.net, 00:29:50.188 --> 00:29:55.368 i love it i think it's a great way to uh to to start building out your nebula 00:29:55.368 --> 00:29:58.948 network but there's a bunch of features that were important to me that weren't 00:29:58.948 --> 00:30:01.268 quite available yet so i started, 00:30:02.048 --> 00:30:09.168 seeing if i can make something work and instead of it only being able to use the, 00:30:09.988 --> 00:30:15.568 client that's provided, you can actually use this just to manage your Nebula setup by itself. 00:30:16.368 --> 00:30:20.908 You go and create a network. You can create groups which are similar to their 00:30:20.908 --> 00:30:27.848 roles and create firewall rules for inbound and outbound traffic between different groups you have. 00:30:28.608 --> 00:30:33.128 And each node, you can actually download the config directly and just run it 00:30:33.128 --> 00:30:39.908 on nebula raw and i'm actually still working on the client uh it's extremely 00:30:39.908 --> 00:30:41.708 experimental there's a lot of things i. 00:30:41.708 --> 00:30:43.048 Want to keep going i. 00:30:43.048 --> 00:30:44.428 Like your phrasing reliable. 00:30:44.428 --> 00:30:51.488 Okay so the stack that i understand it right is what it's doing essentially 00:30:51.488 --> 00:30:57.648 is it creates networks it's managing mesh nodes and ip allocation right and 00:30:57.648 --> 00:31:02.008 certifications and it has a web ui which is like a react dashboard front-end. 00:31:02.728 --> 00:31:05.608 And you are also integrating with 00:31:05.608 --> 00:31:08.748 authentication. Can you talk about the authentication piece for a second? 00:31:09.008 --> 00:31:13.628 Yeah, I'm using KeyCloak in the back-end for authentication, which is nice. 00:31:13.868 --> 00:31:20.328 You can do everything from enabling email verification and registering your 00:31:20.328 --> 00:31:21.968 users, and that's how it's set up, 00:31:23.621 --> 00:31:27.001 When you first go on to Nebula Commander, there are no users set up. 00:31:27.241 --> 00:31:33.881 You go in, register your first user, and that user eventually will become the admin. 00:31:34.201 --> 00:31:37.361 Right now, I ran through a little roadblock and tried to work through that. 00:31:39.401 --> 00:31:44.141 And each user independently can have their own networks, their own nodes, 00:31:44.361 --> 00:31:47.801 their own group rules, and it is completely separate from any other user. 00:31:47.941 --> 00:31:52.521 So you could potentially go in and have five users for yourself for five different 00:31:52.521 --> 00:31:54.401 network setups, and they don't step on each other. 00:31:55.161 --> 00:31:59.701 Oh, that is really, that's a clever idea. Okay, so if I want to run this, 00:31:59.921 --> 00:32:02.001 I'm looking at like probably deploying a Docker container, I assume? 00:32:02.701 --> 00:32:06.161 Yeah, that's the preferred method right now is with Docker. 00:32:06.661 --> 00:32:13.961 And if you go on to the nebula-cdr.com, I have full documentation on how to get it up using Docker. 00:32:14.241 --> 00:32:20.981 There's also a Nix OS flake and modules up there as well to integrate as you guys like. 00:32:21.641 --> 00:32:25.541 Yeah you've really clearly spent some time on the on the docs there's there's 00:32:25.541 --> 00:32:26.981 a lot here at the website nicely done. 00:32:26.981 --> 00:32:31.961 You know cursor is a wonderful thing you know people you know in the pre-show 00:32:31.961 --> 00:32:37.801 you guys were talking about ai and ai agentic things and i've used cursor extensively 00:32:37.801 --> 00:32:41.361 in this project and it's been a godsend trying to get everything online and 00:32:41.361 --> 00:32:44.801 going working the right way as long as you use it the way it should be used. 00:32:44.801 --> 00:32:48.241 Yeah i've noticed i was reviewing your commits and i saw that you're like actively 00:32:48.241 --> 00:32:51.881 finding some security things and patching those and finding little issues like that too. 00:32:52.021 --> 00:32:56.561 So you're taking some kind of audits and security passes at this project as well, it looked like. 00:32:56.761 --> 00:33:02.341 Yeah, I've used a couple different tools along with the code QL up on GitHub. 00:33:02.341 --> 00:33:07.701 I've also used Semgrep and I can't remember the name of the other one for Python that I was using. 00:33:07.961 --> 00:33:12.381 But yeah, I've done as many security scans as I can to make sure that I have 00:33:12.381 --> 00:33:14.061 no critical bugs in this thing. 00:33:14.201 --> 00:33:18.881 Because I mean, that's the biggest problem with a lot of these Vibe-coded projects is that they, 00:33:20.167 --> 00:33:23.147 have so many security holes, everything's just slapped together and there's 00:33:23.147 --> 00:33:24.927 no project management involved. 00:33:25.227 --> 00:33:25.347 Yeah. 00:33:25.767 --> 00:33:29.827 Are you using this to manage your own networks yet or not quite at that stage? 00:33:30.047 --> 00:33:36.027 At this point, yeah. I've got my own personal Nebula network and I'm hoping 00:33:36.027 --> 00:33:39.507 within the next month or so, I'm going to roll all my clients onto it as well. 00:33:39.627 --> 00:33:41.847 I run a small IT consulting business up here. 00:33:41.987 --> 00:33:44.847 That's what I was thinking. This would be perfect for an IT consulting firm. 00:33:44.887 --> 00:33:45.547 That's where my head went. 00:33:45.927 --> 00:33:48.847 I could see a little network management for your clients. You're using 00:33:48.847 --> 00:33:51.727 this to back up their data it's completely private no big tech 00:33:51.727 --> 00:33:54.507 involved at all and you know just to 00:33:54.507 --> 00:33:57.447 circle back to your vibe coded comment bearded tech because i think too this is 00:33:57.447 --> 00:34:02.387 an example where i think there's nuance because your application is sitting 00:34:02.387 --> 00:34:06.787 on top of nebula and you know python a bunch of stuff that are primitives that 00:34:06.787 --> 00:34:10.927 are good and sound that are working and secure right you didn't invent the encryption 00:34:10.927 --> 00:34:15.547 here you know you didn't invent the nebula aspect of this you're You're orchestrating 00:34:15.547 --> 00:34:16.527 the Nebula mesh network, 00:34:16.547 --> 00:34:19.787 but the actual security is, you know, is solid. It's Nebula. 00:34:19.967 --> 00:34:22.847 So that's where I think there's a nuance and vibe coded stuff. 00:34:23.007 --> 00:34:25.827 I think actually running it too, right? Like having something, 00:34:26.027 --> 00:34:28.747 doing testing on the other side to make sure it does fit together. 00:34:28.947 --> 00:34:31.967 And like there aren't weird holes in the project, that kind of stuff adds a lot too. 00:34:32.487 --> 00:34:35.667 The scope of this is pretty ambitious. Like I don't think we're really communicating 00:34:35.667 --> 00:34:37.707 to the audience the scope of this thing. 00:34:37.867 --> 00:34:41.647 Like that's what impresses me, Bearded Tech, is how you managed with kids running 00:34:41.647 --> 00:34:46.687 around and two hours of daylight in the winter there, how you managed to create 00:34:46.687 --> 00:34:49.607 something this already comprehensive. 00:34:49.907 --> 00:34:53.707 Well, you know, it's just I ended up spending way too much time on it than I 00:34:53.707 --> 00:34:56.547 should. Dishes pile up when they probably shouldn't and, you know. 00:34:57.838 --> 00:35:03.438 I understand that, but I did see somewhere on your page some ideas for things 00:35:03.438 --> 00:35:06.998 that you have in the future, like some DNS stuff and exit node stuff. 00:35:07.098 --> 00:35:07.998 Can you tell me a little bit about that? 00:35:08.958 --> 00:35:13.358 Yeah, and that was kind of the one big feature that Define.net didn't really 00:35:13.358 --> 00:35:17.578 do for me, was being able to put in my own DNS server. 00:35:18.138 --> 00:35:23.218 Right now, with my clients, I'm using Tailscale, and I have split DNS set up 00:35:23.218 --> 00:35:27.298 to be able to reach all the machines inside my Tailscale network. 00:35:28.038 --> 00:35:35.858 And I'm trying to integrate that into this so you can actually run your own DNS node, essentially. 00:35:36.878 --> 00:35:37.678 That'd be great. 00:35:37.918 --> 00:35:40.338 Do like a magic DNS type setup for Nebula. 00:35:40.498 --> 00:35:44.158 That you control. Oh, that's so cool. It's under your own control. 00:35:44.358 --> 00:35:49.598 So we should also mention the front end is licensed in MIT. The back end also 00:35:49.598 --> 00:35:53.098 licensed in MIT. And the client is GPL version 3. 00:35:53.118 --> 00:35:58.078 So the entire stack is free software. if somebody else out there would like to take a look or help. 00:35:58.418 --> 00:36:02.238 And then I think you've started a Matrix community if people are interested 00:36:02.238 --> 00:36:04.378 maybe in checking it out or discussing too, right? 00:36:04.678 --> 00:36:08.778 I did. I'll leave the link in the chat here. 00:36:08.838 --> 00:36:13.158 And also I've got a documentation site up at nebulacdr.com. 00:36:13.438 --> 00:36:18.078 And I've got a node live right now that people can go and bang on and try out 00:36:18.078 --> 00:36:23.058 and test out the actual software itself at nebulacdr.net. 00:36:23.218 --> 00:36:24.378 And I'll leave that in the chat as well. 00:36:24.538 --> 00:36:25.158 Oh, fun. 00:36:25.158 --> 00:36:27.718 It's up right now. You're not going to leave it up for too long. 00:36:28.118 --> 00:36:29.298 So it depends where you're listening to this. 00:36:29.398 --> 00:36:35.058 But nebulascdr.net if you want to see a live demo of it. Isn't that great? Isn't that? 00:36:35.058 --> 00:36:35.678 This is so cool. 00:36:35.758 --> 00:36:38.298 Weirded Tech, thank you for taking some time on your Sunday with the family 00:36:38.298 --> 00:36:41.458 running around and all of that to tell us about this. We just think this is 00:36:41.458 --> 00:36:42.898 such a cool project. Well done, sir. 00:36:44.157 --> 00:36:46.617 Thank you very much. I appreciate it, Chris. You guys have a great day. 00:36:46.857 --> 00:36:49.977 Yeah, thank you. Thank you very much. And we'll put a link to all that in the 00:36:49.977 --> 00:36:54.317 show notes. And if you're working on a project like this, drop us a note. 00:36:54.557 --> 00:36:58.457 Tell us about it. Or come in the Matrix room. You know, that's West Spotted 00:36:58.457 --> 00:37:01.037 Bearded Tech was talking about this in our Matrix chat room. 00:37:01.117 --> 00:37:02.137 And then we decided to pull it 00:37:02.137 --> 00:37:05.297 forward because we just love seeing the community build tools like this. 00:37:05.397 --> 00:37:07.037 Y'all are so smart and you build awesome stuff. 00:37:10.837 --> 00:37:16.417 Well, we got a little bit of feedback this week about an ad that was playing at the start of the show. 00:37:17.117 --> 00:37:19.277 Did you do that? Was that you? 00:37:19.597 --> 00:37:20.357 That was not me. 00:37:20.477 --> 00:37:20.817 It was me. 00:37:20.877 --> 00:37:24.677 Well, I might have been involved in some of the pieces, but not that part. 00:37:25.137 --> 00:37:31.257 Yeah, our bad. So that was intentional, but not yet, I guess is the way to put 00:37:31.257 --> 00:37:36.557 that. I was going to let you know about I have made a decision behind the scenes 00:37:36.557 --> 00:37:38.497 to change the approach to ads. 00:37:39.759 --> 00:37:43.379 I guess in full disclosure, like this, the situation is, is that I fought this 00:37:43.379 --> 00:37:44.579 as long as I possibly could. 00:37:46.559 --> 00:37:50.199 I have not been paid for last month. I'm not going to get paid this month and 00:37:50.199 --> 00:37:51.379 I might not get paid next month. 00:37:51.459 --> 00:37:55.759 So I may be going three months of the year so far without getting paid, which is okay. 00:37:55.879 --> 00:38:00.219 It's like, I didn't do this to get rich and the members are keeping the infrastructure 00:38:00.219 --> 00:38:04.539 paid for and the boosters are, you know, sometimes I get a sandwich. 00:38:04.979 --> 00:38:07.959 So it's good and it's okay, but I have to make some changes. 00:38:07.959 --> 00:38:14.639 And so what I've decided to do is work with a group that is fairly aligned with the way I look at ads. 00:38:14.879 --> 00:38:20.579 It has to be an ad that – for a product that I like, I get right of first refusal. 00:38:22.339 --> 00:38:26.119 And they really work hard to make sure that if it's a company that I'm going 00:38:26.119 --> 00:38:29.279 to do sponsorship with, that I get a chance to try the product first before 00:38:29.279 --> 00:38:30.359 it goes on air and all of that. 00:38:30.659 --> 00:38:34.239 So I like where we're going. And part of that, because we are in a very bad 00:38:34.239 --> 00:38:39.199 situation, the reality is, is I've just fought the change in the ad market for 00:38:39.199 --> 00:38:40.359 as long as I possibly can. 00:38:41.079 --> 00:38:44.519 And since COVID really, it's not really anything to do with COVID, 00:38:44.519 --> 00:38:48.099 but the way the market dynamics changed with the increase in rates is that it 00:38:48.099 --> 00:38:50.539 became more expensive to do direct marketing. 00:38:50.719 --> 00:38:53.279 It just, it was, it was an area that companies needed efficiency. 00:38:53.919 --> 00:38:57.799 And I went on about this for years when it happened, so I don't need to recap all of that. 00:38:57.939 --> 00:39:01.859 But the structural changes in the market are such that companies no longer have 00:39:01.859 --> 00:39:05.759 time to engage in a three-month conversation with a single podcaster to do a 00:39:05.759 --> 00:39:08.039 bespoke ad agreement for one quarter. 00:39:08.279 --> 00:39:11.139 They're used to the YouTube model, right, where they can just do ad buys that 00:39:11.139 --> 00:39:12.679 are targeted or Facebook or –. 00:39:12.679 --> 00:39:13.439 They want to buy –, 00:39:14.834 --> 00:39:19.374 large markets at a time and so there are now companies that sit between the 00:39:19.374 --> 00:39:23.074 ad buyers and the podcasters and i i've been working to try to find a good one 00:39:23.074 --> 00:39:27.994 and i have at great personal expense walked this line for as long as i possibly 00:39:27.994 --> 00:39:29.174 could to make sure it's gone right 00:39:29.614 --> 00:39:34.794 and because we have no uh ads beyond defined networking right now who is the 00:39:34.794 --> 00:39:38.674 only sponsor we have at the moment because they were you know by my model the 00:39:38.674 --> 00:39:41.794 only ones i was willing to have on and i know that you have an expectation and 00:39:41.794 --> 00:39:43.914 one of the reasons we've gone value for value is so i could say no. 00:39:44.374 --> 00:39:46.114 And I have been saying no for a very long time. 00:39:46.854 --> 00:39:50.894 And so I think we have found a middle ground here, but essentially I'm going 00:39:50.894 --> 00:39:52.194 to, I'm going to let them cook. 00:39:52.434 --> 00:39:55.154 And one of the things that we're going to do, why we have no other sponsors 00:39:55.154 --> 00:39:59.074 on board to try to get some survival money is we will play an ad at the beginning 00:39:59.074 --> 00:40:00.754 for some locations at some times. 00:40:01.014 --> 00:40:03.814 I expected to roll that out over the next couple of weeks, but we need to move 00:40:03.814 --> 00:40:04.974 quick because we're going to scale. 00:40:05.494 --> 00:40:09.934 And they communicated the expectation to me. I just, I missed it. It was my bad. 00:40:10.314 --> 00:40:14.094 So I will own that because i wanted to communicate it to you beforehand but 00:40:14.094 --> 00:40:15.734 we're busy and uh that slipped, 00:40:16.434 --> 00:40:19.334 so uh the plan is is to have them find 00:40:19.334 --> 00:40:22.574 some good sponsors that can bring on you know some good reoccurring revenue 00:40:22.574 --> 00:40:25.774 to make the show sustainable so i can get paid again so we can keep going and 00:40:25.774 --> 00:40:29.994 invest in more production and uh hopefully over time they will do that but it 00:40:29.994 --> 00:40:33.314 will take a little while even with uh working with a group that specializes 00:40:33.314 --> 00:40:36.754 in this it still takes time to find the right sponsor if you have standards 00:40:36.754 --> 00:40:41.574 it just takes time and so the dynamic ad's running and And that's now that that seal is broken, 00:40:41.754 --> 00:40:46.834 I'm likely to leave it for a while just because we have such a gap and it's 00:40:46.834 --> 00:40:50.814 not, I don't really have any of the details on that in terms of. 00:40:52.145 --> 00:40:54.305 What I should expect or how it's going to perform or anything like that because 00:40:54.305 --> 00:40:55.585 I've never done anything like this before. 00:40:56.045 --> 00:41:00.825 But that's where we're at now. And I'm hopeful that if people seem to have an 00:41:00.825 --> 00:41:05.485 allergic reaction to it, they'll consider becoming a member at linuxunplugged.com slash membership. 00:41:05.485 --> 00:41:08.865 We'd often do discounts and we have a fantastic ad-free version of the show, 00:41:09.365 --> 00:41:12.785 that editor Drew puts together, uh, or you get access to the bootleg. 00:41:13.065 --> 00:41:18.305 And if you don't mind the ads, well, then you can help monetize just by listening to it and, um, 00:41:18.805 --> 00:41:23.065 support the show that way and i think a lot of you don't mind because um ironically 00:41:23.065 --> 00:41:27.365 when we were purchased by linux academy and we dropped all ads from all shows 00:41:27.365 --> 00:41:34.205 we never got a single comment about it nobody said anything the wildest thing 00:41:34.205 --> 00:41:36.645 like it was the biggest issue for us we thought it was this massive unlock, 00:41:38.225 --> 00:41:40.645 we thought it was this huge thing we were going ad free and. 00:41:40.645 --> 00:41:42.365 Behind the scenes i mean it helped a lot with some of. 00:41:42.365 --> 00:41:44.605 Our production stuff yeah oh yeah massive time saver, 00:41:46.419 --> 00:41:49.279 nobody cared really so that was a big lesson 00:41:49.279 --> 00:41:52.419 um and uh i think also we'll we'll 00:41:52.419 --> 00:41:55.799 still we'll still do a better job than uh than the 00:41:55.799 --> 00:41:58.819 average bear out there it's a wild world and video 00:41:58.819 --> 00:42:01.599 and all that is also eating at it so that uh i'm 00:42:01.599 --> 00:42:05.219 sorry that wasn't communicated ahead of time that was my intention and um 00:42:05.219 --> 00:42:08.179 we definitely still need the support more than ever because 00:42:08.179 --> 00:42:11.139 all these things take time and uh it 00:42:11.139 --> 00:42:13.959 was really your support that made it possible to survive 00:42:13.959 --> 00:42:17.379 this long without having to compromise two years 00:42:17.379 --> 00:42:20.539 ago really because this is this has been something 00:42:20.539 --> 00:42:23.759 developing since 2019 since 2020 00:42:23.759 --> 00:42:26.659 something we talk about frequently behind the scenes something 00:42:26.659 --> 00:42:30.919 i've you know i've talked a lot about on the launch i've talked about it on 00:42:30.919 --> 00:42:37.439 office hours we've talked about it and um so this is where we're at but we will 00:42:37.439 --> 00:42:41.299 continue on we've got another you know we've got another 12 20 years in us or 00:42:41.299 --> 00:42:45.639 so but we just got to make sure we adapt and this is the state of the internet as it were. 00:42:46.139 --> 00:42:49.139 But I do hope that those of you who like I say have a problem with it will consider 00:42:49.139 --> 00:42:51.719 a membership because the show quality remains high. 00:42:51.839 --> 00:42:54.779 In fact, hopefully this continues. Helps us keep going. 00:42:55.599 --> 00:42:58.079 But I'm sorry we didn't communicate it differently. That's my regret. 00:42:58.239 --> 00:42:59.499 It was not supposed to be a surprise. 00:42:59.659 --> 00:43:03.559 Yeah, it wasn't meant to surprise you. It was, I was also surprised. But that was on me. 00:43:04.079 --> 00:43:09.379 It was communicated to me correctly. I just am a busy guy. And emails are easy to miss sometimes. 00:43:09.839 --> 00:43:12.599 I gotta get something on that that's watching that inbox. But I'm not ready 00:43:12.599 --> 00:43:15.859 to do it just yet. Just, not just yet but one of these days, 00:43:18.559 --> 00:43:22.199 but gentlemen we do have some great support this week and this, 00:43:23.299 --> 00:43:27.239 this is the wild thing about the value for value system is it's such a swinger 00:43:27.239 --> 00:43:32.079 well we went from like oh boy this is kind of going to be a rough one to like 00:43:32.079 --> 00:43:36.419 one of the best weeks in the shows it's in the year so far for the show so let's 00:43:36.419 --> 00:43:38.159 kick it off with our baller booster, 00:43:41.409 --> 00:43:50.049 Because that is the one, the only hybrid sarcasm, and he comes in with one million Satoshis! 00:43:58.509 --> 00:44:01.769 Yeah, I said one million Satoshis! 00:44:02.029 --> 00:44:03.489 Are you sure that's not a typo? 00:44:05.829 --> 00:44:07.469 Hey, my script doesn't make typos. 00:44:07.609 --> 00:44:09.769 That's got to be almost the entire appetizer budget right there, 00:44:09.849 --> 00:44:13.409 I think. thank you hybrid sarcasm I don't think. 00:44:13.409 --> 00:44:14.409 Baller quite covers it. 00:44:14.409 --> 00:44:20.029 Yeah he says enjoy California boys well we will boy I tell you what like, 00:44:21.329 --> 00:44:27.249 this boost came in this morning while we were in our group chat and I was having a mild panic attack, 00:44:28.029 --> 00:44:33.689 about expenses and this landed it changed your mood completely it totally did 00:44:33.689 --> 00:44:37.209 it totally did it really was something thank you hybrid sarcasm thank you very 00:44:37.209 --> 00:44:40.449 very much appreciate you. You are a good guy. 00:44:43.709 --> 00:44:47.229 Not the one comes in with 68,000 says. 00:44:47.409 --> 00:44:47.649 Alright! 00:44:50.229 --> 00:44:52.209 Also, not bad. Not bad at all. 00:44:54.629 --> 00:44:57.729 Keep up the good work. A little something to help with the trip. 00:44:57.849 --> 00:45:01.429 He gets it. Thank you very much. Right? We're going to turn that right around 00:45:01.429 --> 00:45:05.749 and spend it on your fellow listeners. So thank you very much for this one. It's great. 00:45:05.749 --> 00:45:10.929 Well, the dude is abiding with 22,222 sets. 00:45:13.972 --> 00:45:19.512 I've never used an agent locally. The first I want to try is the Home Assistant MCP. 00:45:19.752 --> 00:45:23.472 I've always used the web-based versions of ChatGepity, Claude, 00:45:23.552 --> 00:45:28.552 or Gemini, and I'm feeling kind of left behind. So here's a little something for that trip. 00:45:29.372 --> 00:45:35.992 Thank you, sir. Appreciate that very much. You know, this is a great question 00:45:35.992 --> 00:45:40.232 because you can tell he's locked in to the change. 00:45:40.532 --> 00:45:45.592 The change is like they've gone from novelty chat bot that does theatric typing 00:45:45.592 --> 00:45:51.772 to like actual useful open source agent that's using the LLM to leverage intelligence. 00:45:52.032 --> 00:45:54.172 I just set this MCP up over the weekend. 00:45:54.352 --> 00:45:54.992 It's so good. 00:45:55.052 --> 00:45:55.572 It's so good. 00:45:55.652 --> 00:45:56.592 It's so good. 00:45:57.452 --> 00:46:02.172 It doesn't quite do everything, so I think I also had it do some direct API 00:46:02.172 --> 00:46:04.392 access, but it has a lot of stuff. 00:46:04.532 --> 00:46:08.172 It's great for working with automations. The MCP is the way you want to go if 00:46:08.172 --> 00:46:11.052 you're working and troubleshooting your automations. Two quick examples. 00:46:11.292 --> 00:46:15.712 So I used the API with an agent because there was electrical work being done 00:46:15.712 --> 00:46:18.712 down the street from me, and I expected the power to be cut, 00:46:18.852 --> 00:46:23.312 but I needed to go to the studio. So I had my agent check in every two minutes. 00:46:23.632 --> 00:46:28.032 And if the power went out, I had the agent cut all the electric heat off and 00:46:28.032 --> 00:46:29.392 then send me a telegram message. 00:46:30.012 --> 00:46:33.552 And then if the then I had if the power remained off for an hour, 00:46:33.772 --> 00:46:36.392 turn off the remaining systems. Right. Like I had like this cascade system. 00:46:36.572 --> 00:46:38.832 I could have built an automation for that in Home Assistant, 00:46:38.872 --> 00:46:42.692 but I did it in 30 seconds with one prompt as I was going out the door realizing 00:46:42.692 --> 00:46:43.492 this is going to be an issue. 00:46:44.649 --> 00:46:47.809 So that's one way you can use it. I also, just using the MCP, 00:46:47.929 --> 00:46:48.829 so that was using the API. 00:46:49.469 --> 00:46:53.889 Using the MCP is really great because I have automations that have probably 00:46:53.889 --> 00:46:56.269 been sitting around for three, four, five years at this point. 00:46:56.389 --> 00:46:58.709 I built them a long, long time ago and things have changed. 00:46:58.969 --> 00:47:03.789 So I had my agent go in and audit the top five most frequently fired automations 00:47:03.789 --> 00:47:06.209 and review them for logic or improvements. 00:47:06.489 --> 00:47:10.569 And with each one, it found something small to major that I could do to improve them. 00:47:11.149 --> 00:47:14.149 And it's just because I haven't looked at them in so long. and that was done 00:47:14.149 --> 00:47:17.589 via the mcp and it's really nice i didn't you know i didn't didn't and then 00:47:17.589 --> 00:47:22.069 then you know i just wrote okay do this do this all right go fix that and boop boop goes off and 00:47:22.489 --> 00:47:27.269 fixes it all up it's really it really is a great unlock for home assistant because 00:47:27.269 --> 00:47:29.969 home assistant is essentially an api for your entire home. 00:47:29.969 --> 00:47:33.369 I will also say uh the fomo feeling can be very real, 00:47:33.989 --> 00:47:37.209 don't don't feel too bad about that but also don't let it you know it's good 00:47:37.209 --> 00:47:40.169 to try and be curious but don't you don't have to go too crazy because things 00:47:40.169 --> 00:47:44.829 are moving fast and like you can over invest in it and waste a lot of time on 00:47:44.829 --> 00:47:46.309 stuff that's just going to change out from under YouTube. 00:47:47.589 --> 00:47:49.789 I mean, Home Assistant API and MCP is pretty solid. 00:47:49.929 --> 00:47:51.349 Yeah, that's one of the more solid parts of the whole thing, really. 00:47:51.429 --> 00:47:56.169 But that is good advice. That is good advice. Tomato comes in with another row 00:47:56.169 --> 00:47:58.869 of McDucks, 22,222 sats. 00:48:00.249 --> 00:48:04.189 Looking forward to scale in Planet Nix coverage. Here's some sats to help with the Travel Boys. 00:48:04.349 --> 00:48:08.289 If you see any of the Nix or BSD people down there, I'd love to hear about it. 00:48:08.789 --> 00:48:11.889 I find that particular combination to be rather intriguing. 00:48:12.009 --> 00:48:15.509 Yeah, the idea of using Nix on top of a BSD, okay, yeah. 00:48:15.729 --> 00:48:20.429 Might sound insane, but then again, but I have done that exact thing in the 00:48:20.429 --> 00:48:22.029 past with a Perl script. Oh. 00:48:22.429 --> 00:48:25.069 Yeah, right, I mean, FreeBSD, I mean, all these Bs, they're nice, 00:48:25.169 --> 00:48:29.609 tight systems, right, clean, so if you get a declarative interface on top, it could be very nice. 00:48:29.869 --> 00:48:33.209 Yeah. Oh. I mean, I would definitely play with that. 00:48:33.329 --> 00:48:37.209 I mean, it makes immutable distros, got all these packages available for you. 00:48:37.309 --> 00:48:39.409 It'd really probably be now down to what could you actually install. 00:48:41.520 --> 00:48:46.000 Well, Distro Stew comes in with 13,149 SADs. 00:48:47.360 --> 00:48:49.940 See you at scale. Here's some juice to get you there. 00:48:50.040 --> 00:48:50.540 Oh, thank you. 00:48:50.700 --> 00:48:53.640 I'm bummed to miss the meetup for the third year in a row. 00:48:54.040 --> 00:48:58.020 Since I'll be giving an upscale talk on pen testing. Nick's the world. 00:48:58.240 --> 00:48:59.040 Well, that's a great excuse. 00:48:59.180 --> 00:49:00.240 That is a good reason, though. 00:49:00.400 --> 00:49:02.800 I'm sure we'll bump into each other some other time, though. 00:49:02.940 --> 00:49:04.280 I hope so. Yeah, I hope so. 00:49:04.360 --> 00:49:05.380 Because it was great seeing you before. 00:49:05.580 --> 00:49:07.760 I want to see you again. And I always love it when people, like, 00:49:07.820 --> 00:49:11.060 they remember, like, oh, I should introduce with my handle. Right? 00:49:11.060 --> 00:49:13.440 Oh, no, I'm Distro Stew. Like, oh, Distro Stew! 00:49:15.320 --> 00:49:17.460 All right, looking forward to that. 00:49:18.060 --> 00:49:22.400 I believe we have a new booster here, the facial hair with 4,000 sets. 00:49:24.304 --> 00:49:25.484 That's good. I like that. 00:49:26.884 --> 00:49:31.224 Apologies for the delay in response. These sats are freshly mined, hence the delay. 00:49:31.544 --> 00:49:36.384 I wanted to follow up on the D&D and open source question. 00:49:36.924 --> 00:49:40.904 It works because open source removes barriers to entry, whether it's physical, 00:49:41.224 --> 00:49:42.424 financial, or otherwise. 00:49:42.664 --> 00:49:45.004 It allows anyone to join us at the table. 00:49:45.264 --> 00:49:48.644 This is also my bump for JB D&D special sometime. 00:49:49.424 --> 00:49:50.684 That does sound like a lot of fun. 00:49:50.684 --> 00:49:53.864 I kind of like that idea. I could see doing a member special. 00:49:54.304 --> 00:49:56.944 Maybe or something, because I don't know if anybody would actually want to listen to that. 00:49:57.104 --> 00:50:01.364 Find an audience member who's an experienced DM, perhaps a volunteer here. 00:50:01.424 --> 00:50:04.204 It'd be great on a trip. It'd be great on a trip to do like a little D&D meetup 00:50:04.204 --> 00:50:06.784 where somebody teaches me how to play, because I've never played before. 00:50:07.384 --> 00:50:09.884 Maybe I could play like a game, a video game version to learn up. 00:50:09.964 --> 00:50:11.484 I don't know. But that's a great idea. Thanks, Facial Hair. 00:50:11.724 --> 00:50:14.864 Thanks if that's your first boost, too. Really do appreciate you so much time. 00:50:15.104 --> 00:50:16.504 And mine and them sats directly. 00:50:16.684 --> 00:50:17.004 Fresh. 00:50:17.324 --> 00:50:21.024 Well done. Well, TR Belly comes in. That's not how you say it at all, 00:50:21.064 --> 00:50:23.584 but I like it. 15,000 sats. 00:50:24.884 --> 00:50:29.204 I'm going to say it's TRSLB. No? What do you think? 00:50:31.104 --> 00:50:31.624 TRSLB. 00:50:31.764 --> 00:50:36.044 There you go. 15,000 sats. Point your car south to the sun, away from the atmospheric 00:50:36.044 --> 00:50:39.004 river and the polar vortex. Yeah, looking forward to that. 00:50:39.264 --> 00:50:40.344 No lobes down there. 00:50:40.624 --> 00:50:43.944 It's going to be like 75 degrees and sunny in Pasadena. 00:50:44.244 --> 00:50:45.244 That sounds impossible. 00:50:45.364 --> 00:50:46.584 That sounds so wonderful. 00:50:47.064 --> 00:50:52.104 Well, WH-20250 comes in with 2,000 sats. 00:50:54.885 --> 00:50:59.045 Oh, this one is for Brent. Hey, Brent, I'm curious as to why you didn't try 00:50:59.045 --> 00:51:01.705 Unraid since you tried TrueNAS Scale. 00:51:01.865 --> 00:51:02.625 I was wondering that, too. 00:51:02.825 --> 00:51:06.185 I haven't tried it yet, but Unraid does have an OpenClaw container template 00:51:06.185 --> 00:51:07.865 in the community apps ready to go. 00:51:08.045 --> 00:51:11.665 One install, and you can have your agent do the rest of the server setup for you. 00:51:13.025 --> 00:51:14.485 You know, we didn't solicit this boost. 00:51:14.925 --> 00:51:16.545 This is a very good question. 00:51:17.005 --> 00:51:17.905 Very, very good question. 00:51:18.285 --> 00:51:23.525 The main reason is that for years now, I've had some close friends tell me, you have to do TrueNAS. 00:51:23.525 --> 00:51:27.765 you have to do hey can i back up my stuff to yours across the ocean using trunas 00:51:27.765 --> 00:51:33.265 etc so that's partly why i leaned that direction and also i mean i probably 00:51:33.265 --> 00:51:37.205 should but i have didn't haven't had time to try every single offering but unraid 00:51:37.205 --> 00:51:42.025 is certainly at the top of the list for the round two since everybody has been asked in this question. 00:51:42.025 --> 00:51:47.025 I think out of the two and they were a former sponsor no longer sponsor i would 00:51:47.025 --> 00:51:51.345 i would strongly consider unraid because they've done a lot of improvements 00:51:51.345 --> 00:51:52.645 in the last version with the UI. 00:51:52.865 --> 00:51:56.025 They have a really nice API now, which has all kinds of advantages, 00:51:56.025 --> 00:51:57.305 more than ever, I realize now. 00:51:57.685 --> 00:52:03.025 And they have a massive up-to-date application library that makes it super easy to deploy stuff. 00:52:03.045 --> 00:52:05.985 And I like all those things. And it's Linux-based, which I also like. 00:52:06.925 --> 00:52:11.945 So I say plus one here to WH is boost. I think Unraid is worth a consideration too. 00:52:12.145 --> 00:52:14.025 I don't want to speak up because everybody thought I'd be shilling, 00:52:14.165 --> 00:52:17.645 but that's my honest opinion. I just gave away the milk for free. 00:52:17.645 --> 00:52:21.765 Well, Spooky Satcom came in with 2,000 sats. 00:52:22.894 --> 00:52:27.034 There's no message on this one, just a little bit of value. So thank you very much. 00:52:27.694 --> 00:52:31.354 That's always appreciated very much. Thank you much, Buki. Good to hear from 00:52:31.354 --> 00:52:35.254 you. Hey, there's Gene Bean coming in with 2,666 sats. 00:52:36.434 --> 00:52:39.974 It sure will. He says, I'm sad that advertising is so lean right now that you've 00:52:39.974 --> 00:52:41.794 had to start using pre- and post-roll ads. 00:52:41.934 --> 00:52:44.434 But I'm also glad that you've got the option to get you through. 00:52:44.634 --> 00:52:46.674 Here's to doing what you need to get things running. 00:52:47.094 --> 00:52:50.594 My seven-year-old son wanted to tell you that he really likes the sound effects, 00:52:50.694 --> 00:52:53.294 especially the Tetris one. All right. 00:52:53.454 --> 00:52:54.194 Thanks for sharing. 00:52:54.634 --> 00:52:57.674 Do you all have any suggestions for local models that work well with open code 00:52:57.674 --> 00:53:00.754 that I can run, that can run tools? That's a great question, Gene. 00:53:01.034 --> 00:53:01.174 That is, yeah. 00:53:01.254 --> 00:53:03.674 That's the key question you need to be asking, buddy. Can they run tools? 00:53:03.874 --> 00:53:10.454 I have a Mac with an M3 Pro and 18 gigs of RAM and a several-year-old Lenovo P52 with an M3. 00:53:10.454 --> 00:53:12.334 Ooh, fun. One of the P series. 00:53:12.994 --> 00:53:17.554 I wonder how far he could get with MiniMac's 2.5. 00:53:18.712 --> 00:53:22.972 Probably needs to look more at Quell, right? Quen or whatever it is. 00:53:23.072 --> 00:53:23.852 Yeah, that might be. 00:53:24.052 --> 00:53:26.252 I think Quen's probably, because they have a couple of versions of Quen that are. 00:53:26.632 --> 00:53:28.612 Yeah, it's less, can you fit it in whatever. 00:53:29.052 --> 00:53:32.112 18 gigs of RAM is very tight, but it might be possible with Quen. 00:53:33.092 --> 00:53:37.472 So Gene, I think right now, you might be a little tight for really good reasoning, 00:53:37.732 --> 00:53:42.792 but you have a lot of room for like vector memory embedding and things like that. 00:53:42.852 --> 00:53:45.892 So if you wanted to have LLMs take care of local transcription, 00:53:46.112 --> 00:53:49.952 like with Whisper, and you wanted to have all of your memory managed with an 00:53:49.952 --> 00:53:53.932 LM that does embedded memory with vectorizing, you could do all of that with 00:53:53.932 --> 00:53:55.872 that hardware very successfully. 00:53:56.072 --> 00:54:00.492 And then you could punt some of the more challenging stuff to a larger frontier 00:54:00.492 --> 00:54:04.412 model through something like Open Router or a direct API subscription. 00:54:04.652 --> 00:54:06.652 Yeah, because there's oftentimes stuff where you might be able to run a model, 00:54:06.732 --> 00:54:09.652 say, that can do work on individual coding tests pretty well, 00:54:09.752 --> 00:54:12.952 but isn't quite up to complicated tool call and orchestrating other agents. 00:54:13.152 --> 00:54:16.712 So sometimes it's a mixture of models that fill the whole thing out. 00:54:17.032 --> 00:54:20.832 And so another way to put that, right, is you could have the frontier model 00:54:20.832 --> 00:54:24.892 running the orchestration agent who is watching the quality of the output, 00:54:25.372 --> 00:54:26.312 monitoring the sub-agent. 00:54:26.392 --> 00:54:30.792 And the sub-agent could be using like a Quinn-optimized coding smaller model. 00:54:30.972 --> 00:54:32.052 Or a DeepSeq or something. 00:54:32.212 --> 00:54:34.872 Yeah, or a DeepSeq. Maybe DeepSeq 4. It could come out any day now. 00:54:35.092 --> 00:54:39.192 And that maybe isn't quite as comprehensive with tool calls and all of that, 00:54:39.352 --> 00:54:42.952 but could do that specific job. And then your higher-end model is actually watching 00:54:42.952 --> 00:54:47.172 the output and managing it. And that actually is a pretty token efficient way to go about it. 00:54:47.512 --> 00:54:51.092 But hopefully we'll have more options, especially as we get more hardware built 00:54:51.092 --> 00:54:53.492 for this and as models get down smaller and smaller and smaller. 00:54:53.632 --> 00:54:54.952 Let us know what you tried, how it works. 00:54:55.032 --> 00:54:57.372 Thanks for the boost. Yeah, keep us posted. That's a good one. 00:54:58.552 --> 00:55:01.792 Antoine comes in with 2,468 sets. 00:55:03.925 --> 00:55:07.565 In case you have not seen this yet, someone came up with a home assistant voice 00:55:07.565 --> 00:55:10.545 control that is a Star Trek comms badge. 00:55:10.745 --> 00:55:10.885 Want? 00:55:11.205 --> 00:55:14.845 There's an instructable for it. And we get a link. Did you like this? 00:55:14.845 --> 00:55:18.485 That's double the value. I have not yet. I'm pulling it up right now. 00:55:18.525 --> 00:55:22.105 So I think what they're doing that's pretty clever with this is it looks like the comm badge from TNG. 00:55:22.405 --> 00:55:25.445 Ooh, yes it does. And I think the front part of the comm badge, 00:55:25.645 --> 00:55:27.845 I don't know how much is actually happening there. 00:55:28.045 --> 00:55:31.105 Because there's a little computer that I think you put under your shirt on the 00:55:31.105 --> 00:55:34.065 back end. And then they maybe, I think, magnetically clip together through the 00:55:34.065 --> 00:55:35.865 shirt. That could totally work. And so you have. 00:55:35.865 --> 00:55:37.325 A- Like a tiny little ESP or something? 00:55:37.405 --> 00:55:41.265 Yeah, exactly. Yeah, a little Arduino kind of thing with Wi-Fi. 00:55:42.385 --> 00:55:48.025 And, you know, the little tiny ability to essentially run a home assistant assistant, 00:55:48.665 --> 00:55:52.165 and use the home assistant conversational pipeline through your Star Trek comm badge. 00:55:52.905 --> 00:55:56.165 Now, obviously, the use case here, gentlemen, I don't think I need to say it. 00:55:56.245 --> 00:55:58.065 But in case you're listening, you're like, why the hell would you use this? 00:55:58.065 --> 00:56:01.945 So that way you can walk around your house, slap your comm badge and order the 00:56:01.945 --> 00:56:03.265 lights to turn on or whatever. 00:56:03.465 --> 00:56:06.545 Right. That's that's the end state here. Slap in your chest. 00:56:06.705 --> 00:56:08.525 And see, this could work with some models. Gene beans running. 00:56:11.765 --> 00:56:15.985 I want I want. Thanks, Antoine. Appreciate that. And. 00:56:18.085 --> 00:56:20.985 All right. Well, Bobby pins here with 10,000 sets. 00:56:23.124 --> 00:56:27.444 Well, I'm just about ready to finally dive into Nix. My question for you nerds, 00:56:27.584 --> 00:56:33.704 Nix nerds, should I start with a general use PC and Hypervibe or an appliance 00:56:33.704 --> 00:56:37.364 level media server or the coveted Nix Bitcoin node? 00:56:38.444 --> 00:56:41.344 I probably wouldn't start with that one. I mean, it might depend on how familiar 00:56:41.344 --> 00:56:44.044 you are with the Bitcoin stuff. If you've run Bitcoin nodes before, 00:56:44.164 --> 00:56:45.064 then it might be totally doable. 00:56:45.284 --> 00:56:48.944 If you're learning both running a node and using Nix to do so, 00:56:49.044 --> 00:56:50.064 that's a lot to do at once. 00:56:50.444 --> 00:56:53.044 So maybe the media server is a pretty attractive one. 00:56:53.044 --> 00:56:54.304 I was leaning that way. 00:56:54.444 --> 00:56:54.524 Too. 00:56:55.004 --> 00:56:56.124 Yeah? Why? 00:56:56.584 --> 00:57:00.064 Well, because it's something that you can build up slowly. 00:57:01.044 --> 00:57:05.924 You can build one service, build another one, build another one, and it can just iterate. 00:57:06.584 --> 00:57:09.844 Whereas if you're trying to get a desktop system that you need everything to 00:57:09.844 --> 00:57:12.124 work right away, there can be a large learning curve. 00:57:12.224 --> 00:57:15.904 So just having a little computer set up as a media server where you can just 00:57:15.904 --> 00:57:19.964 poke at it whenever you have time. And if it's not completely online 100% of 00:57:19.964 --> 00:57:23.264 the time, well, maybe it's not at the end of the world. That would be a good 00:57:23.264 --> 00:57:26.044 way to try some things and break some things. 00:57:26.164 --> 00:57:28.764 I also think the expectation is different there, right? When you're using it 00:57:28.764 --> 00:57:32.604 on the desktop, you have certain expectations, if you've used Linux before, 00:57:32.684 --> 00:57:34.164 about the way package installation works. 00:57:34.284 --> 00:57:37.204 And what, I have to update this file in order to make this change persist? 00:57:37.544 --> 00:57:41.084 It's a bit of a gear shift. But when you're using a headless server, 00:57:41.524 --> 00:57:45.324 all these things that kind of seem confusing on the desktop are actually strengths 00:57:45.324 --> 00:57:47.324 on the server and really are great. 00:57:47.324 --> 00:57:50.644 And you start, I think, since you're coming with a different set of expectations, 00:57:50.764 --> 00:57:54.904 I think you can appreciate, especially in a server context, Nix a lot more. 00:57:55.084 --> 00:57:58.344 And then once you learn to use it in a headless environment with a couple of 00:57:58.344 --> 00:58:03.804 services, you're going to be just absolutely itching to deploy it on your desktop. 00:58:03.804 --> 00:58:06.164 But you'll have a greater appreciation and understanding at that point. 00:58:06.664 --> 00:58:09.024 I think, you know, the desktop thing could be fun, but... 00:58:10.032 --> 00:58:11.932 high probability it goes sideways, you know? 00:58:12.272 --> 00:58:15.352 Yeah, and then just longer debug cycles and maybe break the thing you're trying 00:58:15.352 --> 00:58:17.752 to work on. If you have a bunch of spare laptops or desktops or whatever, 00:58:17.832 --> 00:58:19.832 then go for it or your comfy dual booting and all that. 00:58:19.992 --> 00:58:23.192 But whatever you can find the lowest friction way where you're not going to 00:58:23.192 --> 00:58:26.372 get frustrated because you don't know how to do it in Nix yet is usually the best. 00:58:26.952 --> 00:58:30.492 Also, your question specifically said, I'm just ready to finally dive into Nix. 00:58:30.532 --> 00:58:32.152 We are assuming you mean Nix OS. 00:58:33.032 --> 00:58:37.912 Of course, the rest of your question suggested that. But it's an important realization, 00:58:38.452 --> 00:58:41.132 that Nix OS and Nix are distinct. 00:58:42.132 --> 00:58:46.432 And it's even more fun when you realize you can run Nix on any operating system 00:58:46.432 --> 00:58:47.352 and get some of the benefits. 00:58:47.712 --> 00:58:51.112 So that's like, I don't know, level three when you get to do that. 00:58:51.472 --> 00:58:54.012 Peanut butter and jelly right there. That is what that is. Your favorite distro 00:58:54.012 --> 00:58:55.752 with Nix is better and better. 00:58:56.332 --> 00:58:59.392 All right, thank you everybody who boosted. We have the boost below the 2,000 00:58:59.392 --> 00:59:02.532 set cutoff. We'll keep them in the dock for prosperity. And we read them, we appreciate them too. 00:59:02.972 --> 00:59:07.512 And thank you to everybody who streams those sets. 22 of you streamed collectively, 31,000. 00:59:08.932 --> 00:59:12.912 237 sats not too bad at all it's a nice little boost in itself now of course, 00:59:13.592 --> 00:59:16.772 mr hybrid sarcasm he brought it in and uh 00:59:16.772 --> 00:59:20.192 he brought the power and the strength so when you bring it all together this 00:59:20.192 --> 00:59:26.232 week gentlemen for episode uh 600 656 that's right we hit the road to scale 00:59:26.232 --> 00:59:35.292 before we go by the appetizers and all that this episode stacked 1 million 195 353 saturnies. 00:59:47.541 --> 00:59:50.721 Thank you to our members, to everybody who supports the show from, 00:59:50.721 --> 00:59:55.001 you know, just a few sats or a few fiats to, you know, a million. 00:59:55.001 --> 00:59:57.461 It makes a difference, especially right now. 00:59:57.981 --> 01:00:02.261 If you would like to make this episode or next episode a winner, 01:00:02.461 --> 01:00:03.741 you can boost with Fountain FM. 01:00:03.901 --> 01:00:06.821 They make it real easy. They have a hosted option or a self-hosted option. 01:00:06.981 --> 01:00:10.781 There's a whole plethora of applications over at new podcast apps that bring 01:00:10.781 --> 01:00:12.521 new features and the ability to boost. 01:00:12.801 --> 01:00:16.381 If you want to just stick with the simple autopilot, linuxunplugged.com slash 01:00:16.381 --> 01:00:19.581 membership. Thank you, everybody who supports this here episode. 01:00:20.181 --> 01:00:21.761 You gosh darn mean a lot to us. 01:00:32.771 --> 01:00:35.971 And we do have some picks for you, and there are some good ones, 01:00:36.031 --> 01:00:37.751 so let's get to those before we get out of here. 01:00:39.751 --> 01:00:44.531 First up is one that Wes found that I could see being very useful for folks 01:00:44.531 --> 01:00:46.131 out there that are trying out Hetzner. 01:00:46.351 --> 01:00:50.251 I think Hetzner's getting a little tick up in usage with all the open-claw stuff going on. 01:00:50.431 --> 01:00:54.231 Do watch out. They have a price increase coming in April, so just be warned. 01:00:54.331 --> 01:00:56.751 They still have reasonable rates in the industry for sure. 01:00:56.891 --> 01:01:01.051 But it's coming. Yeah, and you can maybe understand why, given what all is happening 01:01:01.051 --> 01:01:03.011 and what it costs to run a computer these days. 01:01:03.151 --> 01:01:06.611 But tell us about Hcloud Upload Image. You found this this week. 01:01:06.751 --> 01:01:13.051 Yeah, so the backstory is Hetzner already provides an MIT-licensed CLI to interface with them. 01:01:13.551 --> 01:01:18.031 So it's just Hcloud, which is great. But one thing they don't make especially 01:01:18.031 --> 01:01:22.231 easy is dealing with disk images, especially if you just want to be able to 01:01:22.231 --> 01:01:26.351 take a disk image that you build locally, upload it to Hetzner and then use 01:01:26.351 --> 01:01:28.111 that to spin up new VPSs from. 01:01:28.511 --> 01:01:32.751 You can do a lot of other stuff with the CLI, but not really that exactly in one step or something. 01:01:32.891 --> 01:01:37.951 So Hcloud Upload Image is a little Go app that does exactly that. 01:01:38.071 --> 01:01:40.911 So it creates a server with the right type. 01:01:41.111 --> 01:01:45.031 It enables the rescue system. It boots into the server. Then it downloads the 01:01:45.031 --> 01:01:48.451 disk image that you're trying to upload to it into the rescue system, 01:01:48.571 --> 01:01:52.251 which then lets it just drop that and overwrite the existing disk, 01:01:52.371 --> 01:01:55.571 right? So it just takes your image and overwrites the disk via the rescue system. 01:01:55.671 --> 01:01:56.091 Right, okay. 01:01:56.711 --> 01:01:57.611 So it's destructive. 01:01:57.911 --> 01:01:58.491 It's quite destructive. 01:01:58.691 --> 01:02:00.851 Yeah, this is for spinning up a new one. It spins up its own little... 01:02:00.851 --> 01:02:01.051 Okay. 01:02:01.411 --> 01:02:04.931 So then it shuts down the server, and then it takes a snapshot of that. 01:02:05.131 --> 01:02:07.531 So it's silly, like, spins up a new server, puts it in rescue, 01:02:07.711 --> 01:02:11.631 overwrites it, snapshots it, and then deletes the actual server, 01:02:11.631 --> 01:02:12.911 and all you're left with is the snapshot. 01:02:13.171 --> 01:02:19.431 And then you can take that snapshot with the Hcloud CLI itself and stamp out VPSs. 01:02:19.531 --> 01:02:20.151 That's great. 01:02:21.007 --> 01:02:24.647 So you could essentially have, from your machine, you could upload a custom 01:02:24.647 --> 01:02:26.207 cloud image that you can then use as a template. 01:02:26.427 --> 01:02:30.067 Yep. And so I was doing that, and I was running something as a local VM, 01:02:30.187 --> 01:02:31.927 but it was getting to take up 01:02:31.927 --> 01:02:34.447 more resources than I could allocate on the machine I was running it on. 01:02:34.507 --> 01:02:37.667 And so for the moment, I thought, okay, I'll spin up a VPS and offload it there. 01:02:37.867 --> 01:02:41.587 And so I was able to, it's a NixOS system, so I was able to add a new build 01:02:41.587 --> 01:02:45.507 output that built with the stuff ready, which it's really just like a KVM virtual machine. 01:02:45.507 --> 01:02:48.867 So there's not a lot of crazy Hetzner-specific stuff you need to do, 01:02:48.927 --> 01:02:52.127 and then have NixOS output a raw disk image, 01:02:52.267 --> 01:02:57.567 and Hetzner even supports ZStandard and GZip and BZip and similar, 01:02:57.707 --> 01:03:01.907 so then you can just compress it and upload it, and away you go. 01:03:02.167 --> 01:03:04.467 So you just built it from the package manager and sent it up to Hetzner. 01:03:05.474 --> 01:03:06.214 Stupid easy. 01:03:06.354 --> 01:03:11.174 I did hit some confusion because you need to look out, apparently, 01:03:11.554 --> 01:03:14.774 depending on which data center you use and if you use one of their dedicated 01:03:14.774 --> 01:03:17.954 performance or the sort of standard shared CPU ones. 01:03:17.974 --> 01:03:18.214 Right. 01:03:18.494 --> 01:03:21.674 The shared ones seem to be MBR legacy booting. 01:03:21.774 --> 01:03:23.194 And you need to be EFI, I assume. 01:03:23.494 --> 01:03:24.814 Well, I can do whatever. 01:03:25.054 --> 01:03:26.394 Oh, but the image needs to be ready. 01:03:26.514 --> 01:03:29.654 Versus if you're on the dedicated ones, those are using EFI. 01:03:29.794 --> 01:03:30.234 I got you. 01:03:30.334 --> 01:03:33.534 And I don't know how universal that is, so maybe do spin up a test one and check 01:03:33.534 --> 01:03:37.674 out what the default Hetzner image does for that, whatever VPS model you choose. 01:03:38.374 --> 01:03:39.954 And this is MIT licensed. 01:03:40.754 --> 01:03:43.214 Hcloud upload image. We'll have it linked in the show notes. 01:03:43.334 --> 01:03:46.234 All right. So my pick is Launcher Studio. 01:03:46.654 --> 01:03:50.454 If you find yourself downloading the Go binaries as Wes suggested or whatever 01:03:50.454 --> 01:03:53.214 they might be, so that way you can run them on your mutes distribution. 01:03:53.674 --> 01:03:58.754 Well, it is kind of a bummer that you don't get a icon in your menu or if you 01:03:58.754 --> 01:04:01.114 use an application launcher, you can't just easily type the name. 01:04:01.634 --> 01:04:05.914 Launcher Studio is a GTK4 open source desktop application that lets you create 01:04:05.914 --> 01:04:11.214 application launchers, .desktop files, on modern Linux desktop environments. 01:04:11.714 --> 01:04:15.034 So if you've got a custom app you've written or a download or something like 01:04:15.034 --> 01:04:18.794 that that didn't get a proper menu entry for your launcher or your menu, 01:04:18.954 --> 01:04:22.194 you can use Launcher Studio, which is the latest and greatest in what has been 01:04:22.194 --> 01:04:25.554 kind of an ongoing series of applications that do this kind of functionality 01:04:25.554 --> 01:04:27.694 that have kind of come and gone over the years. 01:04:28.594 --> 01:04:30.694 It's MIT licensed and it is Rust-based. 01:04:31.114 --> 01:04:31.274 I mean, 01:04:32.040 --> 01:04:35.440 Despite being GTK4, it does sound like it could be maybe handy on something 01:04:35.440 --> 01:04:38.520 like KDE Linux for your random side-loaded stuff, and you want a nice .desktop. 01:04:39.180 --> 01:04:41.820 No, it works. That's what I used it for. You just install it via Flatpak. 01:04:41.980 --> 01:04:42.960 It's available on Flathub. 01:04:43.440 --> 01:04:47.580 But it also works on Hyperland because it's creating .desktop launchers in your 01:04:47.580 --> 01:04:49.520 .local share applications folder. 01:04:49.720 --> 01:04:50.600 It's already a standard. 01:04:50.760 --> 01:04:54.060 It's already a standard. So any desktop environment that looks at that for .desktop 01:04:54.060 --> 01:04:57.120 files will support this, which, as far as I know, is like all of them today. 01:04:57.380 --> 01:04:59.620 And so that is Launcher Studio. 01:05:00.300 --> 01:05:03.560 Now, Wes, you've got a couple of handy little proxy picks, if you will. 01:05:03.800 --> 01:05:08.000 Yeah, well, as I offloaded this VM, now it was on a Hetzner IP address. 01:05:08.120 --> 01:05:11.120 And there's some stuff like, you know, I like using YTDLP to pull down some 01:05:11.120 --> 01:05:13.880 things, and it can get fussy about IPs sometimes. 01:05:14.100 --> 01:05:17.120 And so I thought, well, I have a residential IP. I'm not trying to do anything crazy. 01:05:17.620 --> 01:05:20.380 What about just a proxy? Of course, they're already on a mesh network, 01:05:20.420 --> 01:05:22.980 but I didn't really need to route the whole thing, and I could do, 01:05:22.980 --> 01:05:24.240 like, forwarding individual stuff. 01:05:24.360 --> 01:05:27.740 But for the use case I was doing, it made a little more sense to just set up 01:05:27.740 --> 01:05:29.620 a proxy because I really didn't need everything to go through it. 01:05:29.680 --> 01:05:31.020 It was just some specific requests. 01:05:31.520 --> 01:05:37.420 So first I found TinyProxy, which is a lightweight HTTP and HTTPS proxy daemon 01:05:37.420 --> 01:05:40.460 for POSIX operating systems, written in C. 01:05:40.680 --> 01:05:47.240 It's a classic GPL2 license, but still seemingly actively developed and it has a NixOS module. 01:05:47.480 --> 01:05:50.940 So it was super easy to set up. Enable equals true, of course. 01:05:51.060 --> 01:05:52.480 And then for the settings, you can pick the port. 01:05:52.620 --> 01:05:56.400 You can pick what address you want it to listen on, timeout options. 01:05:56.400 --> 01:05:59.060 And then what's really nice is they let you configure, like, 01:05:59.140 --> 01:06:02.280 in CIDR format, what networks you want to allow requests from. 01:06:02.480 --> 01:06:06.080 So I could say, like, only allow my local LAN and my mesh network, 01:06:06.160 --> 01:06:08.140 you know, and local host to, or whatever you want. 01:06:08.240 --> 01:06:12.060 But you can have it listen globally and then further segment it if you want. 01:06:12.060 --> 01:06:15.360 So it's quite flexible for whatever security strategy you might want. 01:06:15.440 --> 01:06:15.660 Okay. 01:06:16.000 --> 01:06:19.960 So that's one option. That's just if you can just work with a regular HTTP proxy. 01:06:20.080 --> 01:06:21.120 But wait, there's more. 01:06:21.240 --> 01:06:24.740 There is more. This one doesn't have a license, so beware on that. 01:06:24.740 --> 01:06:29.000 Maybe we should get an issue going for that. There might already be one, but it is Rust. 01:06:29.140 --> 01:06:29.780 Okay, all right. 01:06:31.188 --> 01:06:39.988 And it's SOX2HTTPProxy, an executable to convert SOX5Proxy into an HTTP proxy. 01:06:40.348 --> 01:06:41.688 What are we using this for, Wes? 01:06:41.808 --> 01:06:45.288 Well, maybe you need an HTTP proxy. Something doesn't support SOX, right? 01:06:45.288 --> 01:06:47.088 Uh-huh, I do. I often need an HTTP proxy. 01:06:47.168 --> 01:06:50.128 But maybe you don't want to go stand up a whole proxy infrastructure. 01:06:50.148 --> 01:06:50.888 I do not, Wes. 01:06:50.988 --> 01:06:55.088 Right? But everyone has SSH. And SSH has dash D, which can run a SOX proxy. 01:06:55.268 --> 01:06:55.628 Yes, it can. 01:06:55.728 --> 01:07:00.688 So, if you combine this project with that, now you have an HTTP proxy. 01:07:01.168 --> 01:07:06.048 so now you can go use SSH to funnel your HTTP requests without having to have 01:07:06.048 --> 01:07:10.308 specific SOX support easily over maybe your mesh network. 01:07:10.828 --> 01:07:15.488 Alright you got me that's pretty cool so I take it you're using this. 01:07:15.888 --> 01:07:19.468 No well I just set up tiny proxy so I did try this out I. 01:07:19.468 --> 01:07:20.548 Was trying to guess which one you stuck. 01:07:20.548 --> 01:07:23.868 With but for me I was like building something I was just going to leave as infrastructure 01:07:23.868 --> 01:07:27.768 for ad hoc stuff this seems like it'd be very handy because you already have SSH. 01:07:27.768 --> 01:07:31.688 Yeah very much SSH is my, you know, it's with me everywhere. 01:07:32.008 --> 01:07:35.468 KD Linux, turn it on. Turned on SSHD. In fact, we were SSHing into each other's 01:07:35.468 --> 01:07:37.868 KD Linux boxes. That was fun. That was great. 01:07:37.968 --> 01:07:38.688 Powered by Nebula. 01:07:38.868 --> 01:07:42.708 KD Linux is really coming a long ways, and I can't wait to their future releases. 01:07:42.968 --> 01:07:47.688 And I think if you're a Plasma fan, it is worth your time to dip back in and try it. 01:07:47.908 --> 01:07:51.148 Like Wes said, it is an excellent VM citizen, too. 01:07:52.228 --> 01:07:55.988 Snappy, smooth. Resize the VM window, you know, my Spice window, 01:07:56.068 --> 01:07:59.448 whatever. It resizes inside there perfectly. no complaints at all. 01:07:59.808 --> 01:08:02.828 That kind of stuff used to crash these things. You know, it's come along so far. 01:08:03.288 --> 01:08:08.248 It's also a nice place to check out some of the latest in thinking about ways 01:08:08.248 --> 01:08:10.428 to put together Linux systems if you like that kind of thing. 01:08:10.568 --> 01:08:10.968 And Plasma. 01:08:12.748 --> 01:08:16.508 All right. Well, if you're going to be in Pasadena around March 5th to the 7th, 01:08:16.608 --> 01:08:19.288 come say hi to us. We do have meetup.com slash Jupiter Broadcasting. 01:08:19.628 --> 01:08:22.428 We'd love to say hi to you. Of course, you can send us a virtual message with 01:08:22.428 --> 01:08:25.148 a boost and be there in spirit as well. 01:08:25.348 --> 01:08:28.828 And then if everything goes as planned, we'll have an episode for you next week 01:08:28.828 --> 01:08:32.148 from Pasadena, either from the scale floor or from our Airbnb, 01:08:32.348 --> 01:08:35.808 something like that, with all kinds of fresh takes from Planet Nix and from 01:08:35.808 --> 01:08:38.028 Southern California's Linux Expo, 01:08:38.288 --> 01:08:43.208 the largest in the Northern American area. Wes, one last pro tip before we go. 01:08:43.348 --> 01:08:45.768 Tell people where they can get more metadata around the show. 01:08:46.028 --> 01:08:47.468 Yeah, well, if you want chapters. 01:08:47.708 --> 01:08:47.848 Sure. 01:08:47.988 --> 01:08:48.268 You know. 01:08:48.688 --> 01:08:52.208 But what if I want them in a really good, consumable way that a machine might like? 01:08:52.308 --> 01:08:54.828 Oh, well, then you want JSON cloud chapters. 01:08:55.128 --> 01:08:57.428 I've been having like two, three years we've had those now. 01:08:57.508 --> 01:09:00.648 Yeah, that's right. Just a JSON file. Well, you got to read the XML file that 01:09:00.648 --> 01:09:02.048 is the feed and then you get a JSON file. 01:09:02.048 --> 01:09:02.768 Then you get the JSON file. 01:09:02.768 --> 01:09:04.808 Don't let that bother you too much. Don't think about it too much. 01:09:04.928 --> 01:09:08.088 Just read the chapters and enjoy them and skip around the file as you like. 01:09:08.088 --> 01:09:13.108 or if you want the full complete story for whatever reason, we have transcripts, 01:09:13.208 --> 01:09:17.808 ETT and SRT and we attempt to diarize them so that you can actually tell which 01:09:17.808 --> 01:09:18.988 of us said the silly stuff. 01:09:19.128 --> 01:09:22.048 We give it a shot at least. We hopefully will be live next week. 01:09:22.088 --> 01:09:23.308 No promises. We never really know. 01:09:23.408 --> 01:09:27.088 Sometimes we do have to pre-record but if you have a podcasting 2.0 app, 01:09:27.248 --> 01:09:30.108 we'll try to make it pending in there and I hope to see you next week. 01:09:33.768 --> 01:09:38.888 Links to what we talked about today are over at linuxunplugged.com slash 654. 01:09:39.188 --> 01:09:43.668 LinuxUnplugged.com or all the great shows at jupiterbroadcasting.com. 01:09:43.808 --> 01:09:48.148 And if you'd like even more show, you have the membership options or the Mumble 01:09:48.148 --> 01:09:50.188 Room. You can show up like lots of people have. 01:09:50.328 --> 01:09:53.268 Dozens of people have shown up right here in our Mumble Room this week to listen 01:09:53.268 --> 01:09:54.728 to a low latency opus stream. 01:09:55.188 --> 01:09:58.188 And we love it. It makes it a live vibe. It's great. 01:09:58.688 --> 01:10:00.948 Details at LinuxUnplugged.com. You never would have guessed. 01:10:01.248 --> 01:10:04.348 Thank you so much for joining us on this week's episode of Your Unplugged Program. 01:10:04.528 --> 01:10:08.208 And we'll see you right back here next Tuesday As in sun.
Previous episode Next episode

Search

Search