Chris: Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.
Wes: My name is Wes.
Brent: And my name is Brent.
Chris: Hello, gentlemen. Coming up on the show today, it's the sequel to the summer
Chris: blockbuster, Config Confessions.
Chris: We'll dive into your configs, call out the genius moves, the blunders,
Chris: and everything in between.
Chris: And then we'll round it out with some shout outs, some picks, and a lot more.
Chris: There's so much to get into, lots of cool configs. So before we do all of that,
Chris: let's say time-appropriate greetings to our virtual lug. Hello, Mumble Room.
Mumble: Hello. Hello. Hey, Chris. Hey, good morning. Good morning, everybody.
Chris: Hello. Thank you for joining us. That is a rockin' Mumble Room,
Chris: and hello up there to the quiet listening, too.
Chris: And a big good morning to our friends at defined.net slash unplugged.
Chris: Go meet Manage Nebula from Defined Networking.
Chris: It's a decentralized VPN built on the Nebula platform.
Chris: This is a project that we love. We've been following it from the very early days.
Chris: It's optimized for speed, simplicity, and if you want, self-hosting.
Chris: It's great for a home lab. It's also great for an enterprise.
Chris: It started in 2017 right there in the thick of it to connect all of Slack's
Chris: global infrastructure. You can imagine the back end Slack must have.
Chris: Wow. And they needed a way to securely connect all the global infrastructure.
Chris: And Nebula was engineered for scale and performance from day one.
Chris: But the thing that I have really learned to appreciate is I've built out and
Chris: used all of these different types of mesh and decentralized VPNs,
Chris: including standard VPNs like WireGuard and way back in the day, OpenVPN and others.
Chris: There's always a tradeoff when it comes to hosted infrastructure, except with Nebula.
Chris: Nebula lets you control the entire thing. They offer a managed platform and
Chris: you can go to a self-hosted platform and you can use a managed platform.
Chris: Everything. It's not like a thing that they're resisting. It's how the product was built.
Chris: And when you are creating your infrastructure, you're building out your infrastructure,
Chris: you want something to last for years.
Chris: I think that really matters, even for an enterprise or a home lab.
Chris: So they align with the way I think about things and the way I want my infrastructure to be built.
Chris: You know, there's other ways you can do it, of course, but I really like the
Chris: way they're building up both the company and the project and the product.
Chris: So check it out at define.net slash unplugged. Redefine your VPN experience.
Chris: Get it for 100 hosts absolutely free and support the show. And if you get to
Chris: the point where it's like, OK, it's time to self-host.
Chris: Nebula is killer. Nobody beats Nebula at that. The resiliency, the robustness.
Chris: And I'm talking mobile device, battery life, all that kind of stuff.
Chris: Nobody beats Nebula. Check it out at defined.net slash unplugged.
Chris: And a big thank you to defined.net for sponsoring this here unplugged program.
Chris: All right. This time it's config confessions in space, the linting.
Chris: And we're back for another round. We asked you to send in your configs, and you've done it.
Chris: And there's a nice batch this week. And if you want to catch the first version, it's episode 634.
Chris: You can find that at linuxunplugged.com slash 634. So here we are.
Chris: Now it's the fall time, and we're back for round two. And I got to start with
Chris: the hardest one, I think, to pronounce here. I'm going to give it a shot.
Wes: Wait, wait. I think before we dive right into the first one, which...
Chris: Okay.
Wes: Impressive. I mean...
Wes: Shouldn't we all confess a little bit? Like, how much have we looked at this stuff?
Wes: Because, you know, people have been sending them in, and then you did the hard
Wes: work to, like, you know, gather them all up and try to find them.
Wes: Brent's been doing the hard work at driving, so I think there might be a little
Wes: confessing around, like, are we looking at these for the first time?
Wes: Do we, you know, let's just be transparent.
Chris: Okay, that's good, that's good. Some of us might be coming in cold,
Chris: like in the snow, you might say, on this.
Chris: Yeah, I did have a chance. I went through, you know, I took in the flavor of
Chris: it, of each one, sort of got in their headspace the best I could and made some
Chris: notes for us to chew through.
Chris: So I think we're going to have a nice combination of clean cold takes and fully
Chris: immersed takes. How do you feel? Does that work?
Wes: That's perfect, yeah. I'm down with that.
Chris: And it's not all Nix. We had some people send in their Ansible configs.
Chris: We had a GUX config sent in. We had some Mac systems sent in.
Chris: So we have some interesting ones.
Chris: And I'm going to say, do you think it's Yeechul? Yeechul is perhaps how you say their name.
Chris: They say, please roast my NixOS config. It's an opinionated Hyperland-based
Chris: config with the same design and productivity-based setup.
Wes: Oh, that's why it got first billing. Yeah, I see this now.
Chris: No, it was chronological.
Brent: It was chronological.
Chris: Cool um so i noticed that uh
Chris: first of all it's it's you know everybody has a
Chris: bit of their own design style uh for
Chris: their repo and each one here starts with a nice
Chris: screenshot of course of fast fetch you got to get the fast fetch screenshot
Chris: in there so that's a classic and then he breaks it all down uh the kernels cache
Chris: eos has support for tpm and uh waybar is in there you got sway sink in there
Chris: kitty neo vim uh and then one of the things that i always like to see,
Chris: Is a get started real quick. And even if it's just for yourself.
Chris: For future you. And they have that right here. A get started real quick script.
Chris: And then a post installation couple of tasks to run.
Chris: So those are my initial. That was my initial impression. I like this screenshot.
Chris: Get started real quick approach. I think it's really good for restoring a system.
Chris: On the quick and things like that.
Chris: And they're actively committing. They got 444 commits. And as just a couple
Chris: of days ago. They were updating their flake.
Wes: How are you missing that? Four days ago was last updated, and there's 444 commits.
Wes: What's going on with four here? I don't know.
Chris: Yeah, you're right.
Wes: But, I mean, you called it out there, but cache EOS kernel. Are you picking up that?
Chris: I'm liking that. I'm liking that.
Wes: So if you go in and take a look at dots slash nix slash boot dot nix,
Wes: you'll see packages.linuxpackages testing commented out.
Wes: Packages.linuxpackages zen, what we're both using, commented out.
Wes: This is telling a story to me because what is left uncommented is linux packages
Wes: underscore cache EOS which I did not realize was just an option that we could
Wes: do so I think we have to try that.
Chris: I do like that programs.nix is an interesting file I think he's turning on some app images I see zoom,
Chris: I'm not quite sure what really threw me for a loop and I kind of wanted to get
Chris: your eyes on this one was I made a note in our notes here,
Chris: Yeah, okay. I think he's installing Pinchflat on his desktop system,
Chris: if I'm understanding this correctly.
Chris: Because in this config, he's also defining his power management,
Chris: his system DNS, and all of the keyboard layout stuff, turning on pipewire.
Chris: So it's kind of like a system configuration, but then he has Pinchflat installed there.
Chris: I love Pinchflat, but on the desktop?
Wes: Well, I see it in services.nix, So it might depend on where that's all sourced.
Chris: Yeah, that's why I couldn't tell for sure. I do think it's a very solid layout.
Chris: A lot of Lua, 40% Lua in there.
Chris: I was like, okay. Some host modules in here too, I'm seeing.
Chris: And it uses a settings.nix file to set the username, the system description,
Chris: and the system type. So like x86 or ARM.
Chris: So he's got one file where he can go in there and just...
Chris: Set that. Sort of as an override.
Wes: I think you're also missing... Did you see the contributor count on this thing?
Brent: Yeah, I know.
Wes: 59 people have worked on this.
Brent: It's insane.
Chris: How's he getting 59...
Wes: Like, this is more serious of a Nix config than any of us have put together.
Chris: I know. How's he getting 59 people? That's awesome.
Brent: That's a great question.
Wes: There's a lot to look here in, you know, because you can tell it's, like, really well used.
Wes: I don't know if you noticed, but there's, like, separate Home Manager configs
Wes: for like if you're going with a window manager environment or if you're going
Wes: in a TUI environment, I guess, or there's modules for both anyway. So love to see that.
Chris: Yeah.
Wes: And quite the flake, you know, like there's all kinds of inputs going on. There's fanciness.
Wes: I don't know what Nick's cats is, but I assume it's a category theory thing
Wes: or just cute cat pictures. Either way, I like it.
Brent: Yeah.
Wes: Oh, maybe it's for NeoVim. I see. Yeah, a lot of NeoVim stuff too, which is great.
Brent: I see in the config folder here, linux-enable-ir-emitter.
Brent: Any guesses on what that's being used for?
Chris: Sounds like something Wes should look at.
Wes: You're right.
Chris: It looks like he's defining a PCI device, right? Is that what he's doing? Interesting.
Chris: Yeah, this is great. This kind of stuff, if you can have this just redeployed
Chris: when you set up your system and these kinds of devices so your IR blaster just
Chris: works, that's getting it dialed in, buddy.
Chris: I'm not sure if we wanted to score these but I'm kind of feeling like this is
Chris: a 4 out of 5 I just have a couple of gripes,
Chris: In my opinion, it's a little sprawly, just a little bit, but not bad, not bad.
Chris: So I can't give it a full five out of five, but I do want to give it a four
Chris: out of four or a four out of five, I think.
Chris: I don't know. How do you feel? Is that a fair? Should we adjust?
Chris: I'm, I'm open to the committee.
Brent: Are there not enough like initialization scripts for you? Is that your problem?
Chris: You bastard.
Wes: Yeah. The activation script, seriously underdeveloped in this one.
Wes: I just can't get five out of five if you don't get that.
Chris: Look, if you're not creating a tilde directory, I don't want to.
Brent: Oh, wait, I'm roasting the wrong person.
Chris: Yeah, yeah, we're roasting their config.
Brent: Ooh, sorry.
Chris: I think, I just don't know if it's a five out of five, but I think it's really close.
Chris: I could be argued up or down if anybody wants to make the case.
Wes: I mean, I think the contributor count, like, okay, maybe it's a little sprawling
Wes: or maybe it's a lot if you're just trying to use it for like one or two systems.
Wes: But I feel like that contributor count says that a lot of the functionality
Wes: in here is probably being used, imported, like, more than just,
Wes: you know, this is not just a single person's config for their, like, laptop at home.
Wes: There's a lot more work and polish in here.
Chris: Okay. All right. So you've got the contributors. Also, I'm talking myself into
Chris: making it a 5 out of 5 because, like, as we'll see as we go along,
Chris: some of these, they kind of go too far. Right? This is a nice balance.
Chris: A lot of things that are solved, problems like those PCI devices, things that are solved.
Chris: But we're not going like nutso with it. You know, you can take it too far.
Chris: So I'm kind of talking myself into a five out of five now.
Wes: Lock it in.
Chris: All right. Okay, so that, hopefully I got anywhere close to your name,
Chris: Ichil, but thank you for sending that in.
Chris: Nice to see the Hyperland setup. Love seeing those.
Wes: And I like seeing Lanzibu, TPM stuff. There's just a lot to like, so thank you.
Chris: Yes, the Lanzibu was cool. All right, our next one is Shane's budget config.
Chris: He says, I've attached a Nix config for you guys to analyze.
Chris: Don't hold back. Tell me how bad it is. My goal with this config is to make
Chris: a working config that uses flakes, although I don't really know what they are
Chris: still, and allows me to add programs from either stable or unstable by choice.
Chris: So after many hours of back and forth with failed configs and hallucinations
Chris: at times, insults towards the stupid bot, we have a working config.
Chris: Now it's probably jank. I don't know.
Chris: But it does seem to work. And so he supplied us with a flake,
Chris: a package.nix, and a configuration.nix.
Chris: And I wanted to get your eyes on that flake there, Wes, and see if you had any
Chris: editor's notes for Shane's budget flake.
Wes: Yeah i mean i think you're you're doing well shane you're well
Wes: on your way to getting a flake system right like going from
Wes: the first sort of configuration.nix setup with channels getting
Wes: into the flake mindset that's a that's a lot to do um
Wes: so we kind of see a pretty clean flake here we've got nix packages and right
Wes: as shane was alluding to also nix packages unstable the first one's pinned to
Wes: a regular release and unstable and then you can see here they have they have
Wes: a let block where they're setting up both unstable and regular packages and then,
Wes: Let's see here. Ah, so then they're using a Nix module that they can feed in
Wes: both manually as a, so they do like an import call to load in their packages.nix file.
Wes: That gets them all the packages they want from either collection of upstream Nix packages.
Wes: And then they use an in-place module in the flake to inject that into the config.
Wes: That's pretty, that's pretty clever. There might be easier ways ultimately depending
Wes: on how you want to do it, but I mean, it definitely works.
Chris: Okay so it's got the west pane approval i wasn't sure i did wonder if there
Chris: was some redundant package assignments in there but that's a pretty minor quibble
Chris: i think uh i think that got a that got a more resounding west pane approval
Chris: than i expected so i'm not gonna argue with that,
Chris: the packages.nix is interesting here it's a it's a pretty well laid out here
Chris: i'll pull it up i hosted these by the way these will be linked in the show notes
Chris: if people listening want to look at these as we're talking about them.
Chris: They are linked over at linuxunplugged.com slash 640 if you'd like to check them out.
Chris: And he has, you know, I think he has a couple of apps that are like his staples,
Chris: that he's pulling from the Nix stable repository.
Chris: And if you're looking, if you look at the packages.nix, and then he's got a
Chris: handful of like, you know, rock and roll apps that he pulls from Unstable,
Chris: like Waybar, WL Roots, those types of things Shane's pulling from Unstable.
Chris: And I think that is, listen to me now, audience,
Chris: other distros can do it nobody does it like NICS right so if you never want
Chris: your NeoVim to get changed out from underneath you you pull that from Staple,
Chris: or your Android tools is another example in here or you know Romania,
Chris: Your launcher, WoFi, your Waybar, why not?
Chris: Why not? Those are pretty rapidly developed. Why not pull those from unstable
Chris: if it works for you? And you could do both.
Wes: Well, and, right, you can swap them, right? So in this case,
Wes: because Shane's got this single file, it's pretty easy to just,
Wes: you know, remove Waybar from unstable and move it back up to stable if that's
Wes: where you want to get it from.
Wes: So I think that is one aspect that this works really well.
Wes: Like, it can be tricky figuring out how you inject both.
Wes: Like, everything's kind of set up. If you do it the normal way,
Wes: like you get your one version of Nix packages and you give that to your module
Wes: and like you just kind of inherit that as packages inside your module.
Wes: It's all easy to access there.
Wes: And then there's multiple different mechanisms for like how do you actually
Wes: thread unstable packages or, you know, how do you thread an additional set of
Wes: Nix packages through your entire config?
Wes: A lot of people use like special args, which can totally work.
Wes: Shane's using a clever, I think, Nix forward approach here. And you can also
Wes: use, which is, this is like halfway to, I think, like using the module interface
Wes: to pass that through as well.
Wes: But I like that, especially for a small config like this, it's really easy to
Wes: switch where you're pulling stuff. So that's great.
Chris: Now, Brent, can I call upon you to give Shane just a quick elevator GitHub talk here?
Chris: Because he sent these as attachments to email because he's not using Git to manage these.
Chris: Seems like that could be an area maybe he could improve on.
Brent: Well, you're assuming he's not using Git to manage these.
Brent: Maybe he's just doing a local Git and doesn't have these necessarily publicly
Brent: available, which I am a big fan of.
Chris: I don't know. I think he said he wasn't, but in the email, I just didn't put
Chris: that in the doc. But I might be wrong. All right. All right.
Brent: Well, if not, I would say, come on, history is great because it keeps track
Brent: of every single mistake or fix that you ever made to your configs.
Brent: And you can go back and look at them or have at least some peace of mind for rollbacks.
Brent: There's really little downside. You should use Git.
Chris: There you go.
Brent: Only took Chris, what, eight months to be convinced? But we're trying.
Chris: You had, again, again, I'm not the one you're, I'm not the one. I'm not.
Wes: If you bother to go with flakes and you don't go with gate, you're just like
Wes: totally losing out on half of the value proposition.
Brent: Oh, yeah.
Chris: There you go. Yeah, yeah, there you go. There you go. I do dig that on his systems,
Chris: he's using systemd boot. Didn't see that across all of the configs.
Chris: And, you know, I say have systemd do all the things, including boot the system.
Chris: So, well done, sir. You thought we'd be mean, but we were pretty impressed.
Wes: Yeah, well, you're going to want SystemD to do apps next, huh?
Chris: Yeah, SystemD app to you, buddy.
Brent: Looks like Shane is from Australia, too, so kudos.
Chris: Ephraim came in. He says, I'm not a Nix user, but I'm a GUX user.
Chris: I figured I'd send you my GUX config, which he did.
Chris: I've been a GUX user and contributor for about 10 years now.
Chris: And I have a small build farm at home, three RISC64 machines,
Chris: three ARCH64, AA ARCH64, so ARM64 machines, two iBook G4s.
Chris: Oh, that's fun. Those iBook G4s were fun.
Chris: And about an even mix of systems running GUX or GUX on top of Debian.
Chris: This this was in this i've seen basic guics examples before but this was some
Chris: guics wizardry and i really really appreciate the eframe sent this in because this gave me exposure,
Chris: to like somebody who knows what the hell they're doing with guics you know it
Chris: really helped me kind of understand it a bit better i.
Wes: Believe it's pronounced geeks um.
Chris: Yeah you're right you're right it is i'm sorry that's an old habit it is pronounced
Chris: geeks but you're right like.
Wes: We've I've seen it. I've been curious about it. I've tried a little bit, because it's like Nix.
Wes: They share a lot, except Nix rolled its own... Nix makes it super confusing
Wes: because you get Nix OS the OS. You get Nix packages the packages.
Wes: You get Nix as a build tool. And, of course, that build tool also decided that
Wes: they would ship with their own programming language the Nix language, or Nixlang.
Wes: Whereas Geeks used Scheme, which is a type of Lisp, as their language,
Wes: along with their own tooling and libraries and standard lib and all that kind
Wes: of stuff on top of it. So it's sort of like a...
Wes: A sibling in the Knicks family, if you will. But yeah, you're right.
Wes: Like I've never, I've not yet had the chance to really appreciate a fully used
Wes: Geeks config that wasn't just managing some packages.
Chris: Yeah. Yeah. And also across multiple architectures too. The,
Chris: you know, the Pine 64 is in here. The ARM system's in here.
Chris: Rock 64, I think. It's so cool. And I saw like he had a system in there for his kids.
Chris: It hasn't been updated for a
Chris: little bit, but he can pull in like these profiles and that's a neat idea.
Chris: Profiles for different systems there's.
Wes: Also i don't know if you noticed vm config that's kind of neat.
Chris: Yeah you.
Wes: Can see like there's some stuff in here to define an operating system with the
Wes: host name time zone like it looks the bootloader config a lot of this even though
Wes: the syntax is a little different it looks a lot like a nick system it's kind
Wes: of it's it's like living in a different parallel universe.
Chris: I was checking out his commit history and three weeks ago he had a really
Chris: interesting commit and uh it was
Chris: adapting mpv to always include
Chris: sponsor block so it's like pre-bundled into
Chris: mvv to have i maybe he's pulling down youtube streams
Chris: or something i don't know but it's an
Chris: interesting application of geeks here where you can sort of build this like
Chris: this and so looking through his commit history here it was pretty fascinating
Chris: to see that and also just like a great idea i just love that and it's pretty
Chris: powerful stuff lots of little things in there don't i mean he's managing some
Chris: of the stuff at a pretty intricate level,
Chris: Which seems like a little tedious to me, but the results seem to speak for themselves.
Wes: Well, it seems neat, too, because I don't know if there is a Home Manager quite
Wes: equivalent, but you can see, right, that came from the home.scm file.
Wes: And maybe I guess that's stuff that's built in. I see, like,
Wes: use module, GNU, home services.
Chris: Yeah.
Wes: But it kind of shows, like, clearly Geeks is pretty darn flexible,
Wes: because without, at least as far as I can tell, a giant system activation script,
Wes: you know they're they're managing like mpv's conf like all kinds of different,
Wes: conf files that probably you would have to use something like home manager or
Wes: a dot file manager or something on another system.
Chris: I see you two have decided that i'm the villain of this uh of this sequel it's.
Wes: Just good storytelling.
Chris: This is why you want to put your stuff up on github that way your buddies can
Chris: make funny all the time this is why you want to do it okay all right but very
Chris: well very well done very very thought out thank you for sending that in i don't
Chris: have a lot of comments um i do think it's interesting to kind of i have more
Chris: questions than i like i yeah.
Wes: Homework more to do really.
Chris: Yeah yeah yeah absolutely all right our next config confession comes from distro
Chris: stew and he says every time i have uh every time i have an alias you that updates
Chris: everything oh okay regardless of my package manager and i did it this way in
Chris: nix for a long time eventually started causing issues so now i've broken into
Chris: more granular aliases, check it out.
Chris: And he provides his config.
Wes: Distro Stu, look at you.
Chris: Yeah, look at his management commands here. He's got, and you know,
Chris: if you're going to do this, document it, which he has done.
Chris: So u-nixos pulls updates and applies to nixos configs. u-home pulls updates
Chris: for the home manager and applies to nix configs.
Chris: U-flatpack command updates the flatpacks on my desktop.
Wes: That's pretty great.
Chris: I've never done this. In all my years of Linux, I've never really got into aliasing.
Brent: I always hesitate because it's...
Brent: It's super convenient, obviously, for things that you run all the time.
Brent: But then if you're moving to a new system that doesn't have your aliases for
Brent: any reason, then will you forget how to do it the native way?
Brent: It's always a fear of mine, right? How do I update NixOS again? I forget.
Chris: That's why I don't do it. Okay, I got to give brownie points when I seize it.
Chris: We didn't rate the last one. I think the last one was probably a five. It was hard to rate.
Chris: But this always brings it up on my list. This is how you get a win with me.
Chris: And it's how to get started right here in the ReadMe.
Chris: A fresh system, copy these commands, run these commands, pull this in,
Chris: whatever it is, just go from blank system to my full setup.
Chris: When people have that and they've documented it, I'm giving it a W.
Chris: I mean, so you guys got to talk me out of this, but DistressDrew here, he got a lot of points.
Chris: I mean, that makes it at least a three and a half right there because he's got that.
Chris: I do like it. And he's got his own commands. He's got a flake system pulling
Chris: in some unstable goodness.
Wes: What do you think of the nesting? You know, like, Stu pointed us at the NixOS
Wes: stuff, but that's kind of only one subdir in this whole repo.
Wes: I mean, it does have its own readme. So I'm not trying to take away from that.
Wes: But there's a lot of others. I got, when I was looking through,
Wes: I kind of got lost just because there's a lot of other interesting stuff in this total config repo.
Wes: So props to you for that. Like, there's stuff here for devenv and for flocks
Wes: and like flatpack scripts.
Wes: So even outside of the Nix configs, Stu clearly has a lot of his computing life
Wes: automated and documented, which is pretty great.
Chris: Okay. I feel like that brings it up to a four.
Chris: Can we get distro Stu up to a five? Brent, do you have any thoughts on how we can do that?
Brent: Well, I'm seeing a couple things here. I'm seeing Disco being used.
Brent: I think that gets extra points. Setting up systems using Disco is...
Brent: On the expert side of things and definitely where things are going.
Wes: Also successfully navigated uh
Wes: there was there was a minute where some of the like the newer linux
Wes: kernel latest kernel kind of broke a small test
Wes: inside tailscale if you're building it anyway it
Wes: caused problems that you kind of had to do an override if you're on unstable uh
Wes: in nix i see that override which i think can now be removed so no there but
Wes: as a positive because you know you had to go find the issue and like copy the
Wes: code into an overlay and figure out where that goes in the config and like make
Wes: it work so sort of a good you know nicks in practice paper cuts edition and.
Chris: Like wes was saying you know stew has folders for hosts and modules and then
Chris: there's a folder a directory just for files and if you go into this files directory
Chris: it has just one thing and it's a sync thing ignore.txt and that's it he's like
Chris: he solved that problem once,
Chris: nicely done yeah and that's good you know like it for the max it doesn't sync
Chris: the .ds store crap and whatnot i did see speaking of max i did see that uh distro
Chris: stew has a nix config for an m series macbook which i'll link in the show notes
Chris: specifically if you out there are trying to get that working nice to see did.
Wes: You check more into sync thing.nix because there's i mean it's not just that
Wes: ignores thing like there's a lot going on.
Chris: No i should huh no i was just impressed with the ignores.
Wes: Yeah, go under configs, nixOS modules, syncthing.nix.
Brent: Yeah, I'm also seeing configs here for, well, it depends where you look.
Brent: If you look in the hosts folder, it's a little bit less, but I saw configs for
Brent: at least eight different hosts.
Brent: So that's really nice to see.
Chris: DistroStrew's getting himself a little mini fleet going.
Brent: Mm-hmm. A couple different architectures too, so nicely done.
Chris: Oh, yeah, and he's got, okay, this is a really cool syncthing.nix.
Chris: Fig he's got the different systems in here and their sync thing ids oh man this
Chris: is we should we should add that to the show notes that's a slick sync thing setup.
Wes: I thought you'd like that.
Chris: I think that brings it to a five.
Wes: Whoa.
Brent: Right?
Wes: So we're just doing like the DoorDash rating system today.
Chris: Yeah, I guess so.
Brent: He's also using HomeManager. Maybe you can get inspired here.
Chris: Bring it, Brent. I was actually hoping to see less HomeManager usage here.
Wes: Well, maybe we can like VibeCode something that converts HomeManager configs
Wes: into activation scripts or something.
Chris: Okay.
Chris: I just, you know what I want, really honestly would work for me,
Chris: if we could somehow have Markdown converted into Home Manager.
Chris: That, now we're talking, if I could just write the whole thing in Markdown.
Wes: You record a voice note on your phone and then that becomes your Home Manager config.
Chris: Even better, even better. Can we do that? I think, you know,
Chris: DistroStu, I think you did pretty well here.
Chris: Like Wes said, there is that tailscale overlay thing that you could probably fix now.
Chris: But that was a good catch on your part. so i guess that makes all of these five
Chris: out of fives it's the summer of it's the it's the fall i think the geeks.
Wes: One we technically have to use imaginary numbers it's like a whole separate axis definitely.
Chris: Negative four um 22 i don't know but yeah these are some pretty solid configs
Chris: minor stuff in there real minor stuff nice to see well done everyone now we're
Chris: gonna get into some tricky ones.
Chris: 1password.com slash unplugged. Take the first steps to better security for your
Chris: team by securing credentials and protecting every application,
Chris: even the ones you don't know about.
Chris: Learn more at 1password.com slash unplugged. That's the number one password
Chris: and it's all lowercase unplugged right there.
Chris: You just go there and learn more because this is something that would have changed
Chris: the game for me when I was in IT.
Chris: If you're in IT, if maybe you're in security as well, Well, you know what a
Chris: mountain of different assets.
Chris: There's physical hardware. There's user identities. There's applications.
Chris: And it's a lot, and it's always growing. Well, you can conquer this continuously
Chris: growing mountain of security risk with 1Password extended access management.
Chris: This is a huge issue. You're not alone. This has been identified as a major problem out there.
Chris: And this is where 1Password is trying to make life better for both users, IT, and security.
Chris: And they have Trellica. This is something that can discover and secure access
Chris: to all of your apps, managed or unmanaged.
Chris: Trellica by 1Password inventories every app and usage of your company.
Chris: It has pre-populated app profiles so it can assess the different SaaS risks.
Chris: It'll let you know who has access to what. You can manage that.
Chris: You can optimize the spend. You can even enforce security best practices across
Chris: every applications your employees use.
Chris: And now you're going to know which ones they're using, even the shadow IT.
Chris: I also really appreciate this because I know so many companies struggle with
Chris: onboarding and offboarding employees.
Chris: You have a process that lasts for a little while.
Chris: This needs to be better. And this is an area where 1Password can help.
Chris: It can help you meet compliance goals.
Chris: It provides a complete solution for SaaS access governance. Trelica by 1Password
Chris: is just one of the ways that extended access management as an entire suite helps
Chris: teams strengthen compliance and security.
Chris: You know about their award-winning password manager. I use it. Family members use it.
Chris: It's trusted by millions of people. I was really thrilled when they came to Linux.
Chris: Businesses all over the world use it. This goes way beyond that.
Chris: They're securing more than just passwords with 1Password extended access management.
Chris: This is something that would make life easier for me, and I think it'll make life easier for you.
Chris: So take the first steps to better security for your team by securing credentials
Chris: and protecting every application, even the unmanaged ones.
Chris: You can learn more by supporting the show and going to 1password.com slash unplugged.
Chris: They have a video there you could watch.
Chris: That's the number 1password.com slash unplugged. All lowercase. Go learn more.
Chris: 1password.com slash unplugged.
Chris: Join crowdhealth.com and use the promo code unplugged.
Chris: This is something that has changed my life and my wife's life.
Chris: As small business owners, both of us, we own our own business.
Chris: We have really struggled with
Chris: medical insurance and we just needed something that was a better deal.
Chris: And honestly, something that gave us some peace of mind. And it's open enrollment right now.
Chris: The season where all the health insurance companies will hope that you'll just
Chris: sign on the dotted line once again for what is just ridiculously priced premiums
Chris: and lots of confusing fine print where they're going to try to wiggle out of
Chris: helping you. That's what I've noticed at least.
Chris: You don't even take my word for it. Go trust yourself. Take control of your
Chris: future with CrowdHealth. It's a health care alternative for people who make their own decisions.
Chris: Don't play the insurance company's game. Go join CrowdHealth.
Chris: It's a community of people funding each other's medical bills directly.
Chris: No middlemen, no networks, no nonsense.
Chris: It's like you have a team of people that will negotiate with the hospital on your behalf.
Chris: And the process goes from feeling like you're just a number in a machine that's
Chris: just getting an output probably from, I would doubt, no day in LLM.
Chris: CrowdHealth makes it feel personal, direct, and like actions actually happening.
Chris: And they have a great app to walk through from the very beginning of the process
Chris: all the way to the end, both as you the contributor or somebody asking for a contribution.
Chris: This is CrowdHealth, the health insurance alternative, healthcare for under $100.
Chris: You get access to a team of health bill negotiators, low-cost prescriptions,
Chris: lab testing tools, as well as a database of low-cost, high-quality doctors that
Chris: have been vetted by the crowd health community.
Chris: And if something major happens, you pay the first $500 and then the crowd steps in to fund the rest.
Chris: This has been a mess. Health insurance has, it's just been years of a mess.
Chris: And the only way we're going to change it is in the market.
Chris: That's the only thing these people are going to pay attention to.
Chris: And crowd health is a group of people taking care of each other.
Chris: Don't stay stuck in the same overpriced, overcomplicated mess.
Chris: If it's not working for you, go somewhere else.
Chris: CrowdHealth members have saved over $40 million in healthcare expenses because
Chris: they refuse to overpay for healthcare.
Chris: Now's the time. Take your power back. Join CrowdHealth to get started for $99
Chris: for the first three months.
Chris: Use the promo code UNPLUGGED at joincrowdhealth.com. See why I've been using
Chris: it for over three years. Join crowdhealth.com promo code unplugged.
Chris: CrowdHealth is not insurance. Opt out and take your power back.
Chris: This is how we win. Join crowdhealth.com and promo code unplugged.
Brent: Last episode, we got a boost from our dear Olympia Mike sending in his Nixbook config.
Brent: He says here, hey guys, I'd love to get in on the roast my Nixconfig action.
Brent: This isn't my personal config, but the main Nix module for the Nixbook project
Brent: that I've been working on for nearly a year now.
Chris: Yeah, we have Nixbooks. Mike was very generous and gave us each a Nixbook,
Chris: which he has essentially taken on this role of refurbishing abandoned machines
Chris: and putting a Chrome OS-like experience based on NixOS onto these, hence the name Nixbook.
Chris: And he's actually getting quite a fleet, and he's become known in our local area for doing this.
Chris: And we call him Olympia Mike because he's from Olympia, Washington.
Chris: And so what he sent us in is the configuration he's deploying to all of these people out there.
Chris: And I don't know the exact number, but I know it's probably in the low hundreds.
Chris: So it's quite a bit of people and it's growing all the time.
Chris: When I check in with them, I always hear about more people that are deploying
Chris: it or I see something on his social.
Chris: So I was really looking forward to digging through Ollie Mike's next book set up.
Chris: I'll start with what I liked and I'd like to hear from you gentlemen.
Chris: I do have a few ideas, but I'll start with what I liked.
Chris: He's got an auto update system in here and I'm a big fan of if you're deploying
Chris: these systems in a way where you can roll back if something goes wrong,
Chris: build them to update take some precautions which I'll get into later but I love
Chris: that he has that forward thinking kind of approach to managing these systems now.
Chris: I think if I would just add to that some sort of more air catching,
Chris: maybe an auto stop or rollback, you know, like if somebody, for example,
Chris: would be because I've had this happen to me.
Chris: If I'm doing an update and I lose my internet connection, it kind of just gets
Chris: stuck in like this no man's own loop, right?
Chris: So some stuff around that kind of catching errors with the updates or maybe
Chris: like the checkout didn't work completely or something like that,
Chris: I think would make that even a little bit better of a system just from the short
Chris: experience I had with it. but I like it a lot.
Brent: One thing I always hesitate with,
Brent: With auto-updating systems is, considering my crazy lifestyle,
Brent: I'm often on a network that I don't necessarily want to pull down a ton of data.
Chris: Yeah.
Brent: So a little notification, I don't know, five minutes before saying,
Brent: hey, five minutes from now we're going to do this. And a little,
Brent: like, please no button would be really nice for my lifestyle.
Brent: I don't know how easy or hard that is, but I'll just throw that out as a feature request.
Chris: You know, what's funny is in my initial notes, I had like a little on-screen
Chris: display that says your system's going to get updated.
Chris: And I thought, I put myself in Mike's shoes for a second, and I thought,
Chris: I bet he doesn't even want them thinking about it.
Chris: He just wants it like a Chromebook, just all updating in the background.
Brent: That's a great point.
Wes: I don't know, Brent. What do you think about switching to a Knicks book for a while?
Wes: Because just given the bug field and exactly what you were just saying,
Wes: this might be the fastest way to get some great feedback possible.
Chris: There you go i like that.
Brent: Idea you know when mike gave us these he specifically said hey
Brent: brent please try to break this and give me some feedback so
Brent: i do have one of these nick's books on some
Brent: refurbished hardware that he provided us um right
Brent: above my head here in the van in the cupboard it's been the dedicated like
Brent: van laptop of course when
Brent: i do podcasting in here i actually have my main system but
Brent: as like a pull it out and just use it for a quick thing
Brent: i have been using index book for i guess
Brent: it's like four or five months now i don't use it that
Brent: often but it's been doing what it
Brent: needs to every once in a while when i pull it out but i am going for the long
Brent: term review so i think so far been okay haven't run into any huge massive bugs
Brent: there is that hesitation i mentioned about the auto updating when i'm on like
Brent: sketchy networks so i tend to I only want to do that when I'm connected to, like,
Brent: a grid network or something like that. But otherwise, it's been okay.
Chris: I got an idea about this. And I don't know, Wes, if this is...
Chris: I think this is possible. So when I set up auto-update for my kids' systems
Chris: for, like, five minutes, I considered...
Chris: Like a bandwidth limiter of some kind, like a way to say, don't use more than
Chris: X, you know, megabits or, or whatever.
Chris: I don't know if it was possible because I never, like I said,
Chris: I just looked into it for five minutes.
Chris: Could that be something that would be achievable? Would that have to be its
Chris: own separate update script?
Wes: Yeah i mean you'd have to make sure that you like you
Wes: could definitely apply that kind of stuff with traffic control or other
Wes: setups on linux you just i think the sandboxing be would be what you need to
Wes: make sure because if you're using like multi-user nix then you're actually just
Wes: talking to a demon that wouldn't be running under your sandbox unless you specifically
Wes: config you know or like so i think it might be kind of tricky if you didn't
Wes: want to apply that rate limiting globally there.
Brent: Is a way to indicate networks.
Wes: True yeah you could like not do it if you can sort of detect the metadata from the system.
Wes: Am I on Wi-Fi or do I do a speed test or check what ISP you're on or the actual
Wes: system metadata, depending on how good that is.
Chris: Okay, I have a couple of suggestions. I want to bounce off you guys.
Chris: I don't know if this is creepy, but let's say Olly Mike has a fleet size of 200.
Chris: And these are, I'm just guessing on numbers, but these are almost exclusively
Chris: people that are using it for word processing, web browsing, email,
Chris: you know, tasks that are refurbished like Dell would be perfect for.
Chris: And I wonder, is it creepy? I think you'd have to get user permission.
Chris: But is there a space here for some kind of monitoring
Chris: like so you know which systems haven't been
Chris: updated in x amount of days or maybe monitor rollbacks in the log and see which
Chris: if anybody's having to roll back which would maybe indicate a problem is that
Chris: what do you think i just think when when you're at five systems ten systems
Chris: no big deal when you're at 200 systems,
Chris: and you're doing channel-based updates,
Chris: I don't know, it's like, feels like you might want some kind of observation on how that all is going.
Chris: What do you think? Is there a way to do that that isn't creepy?
Wes: Hmm. Yeah, I mean, as long as you're upfront about it, and maybe you provide a way to disable it.
Wes: I do like the idea, like, you get little pings home as auto-updates or reboots
Wes: or stuff become successful.
Wes: But that said, I don't know what the support, does that create more of,
Wes: like, an onus on support when you're kind of just like, look,
Wes: I'm doing my best and I'm putting these out there, but hey, don't call me.
Chris: I don't know what the.
Wes: Level of personal support mike wants to be putting out or would you just use
Wes: it as like development metrics for like oh boy that last one didn't go well
Wes: i might need to tell folks.
Chris: Yeah that's what i was wondering is
Chris: like does mike develop this into a business one day i mean
Chris: if you get enough users you could and then maybe
Chris: you do want observation you know you want some sort
Chris: of monitoring um and i
Chris: also think feature flags because as
Chris: you get more users you just you just collect all these edge cases
Chris: and so you might want a really simple way like one file somebody can go into
Chris: on their system and just disable certain features like maybe auto updates or
Chris: flat packs or whatever like some some simple way for them to go in and just
Chris: say on this system we don't want auto updates for some reason,
Chris: Um, cause you're always going to have these edge cases. So I think that could be useful.
Wes: Or, you know, you just accept that Mac and windows update whenever they want. So we get to, too.
Chris: Uh, maybe. Okay. But the elephant in the room and he said it when he wrote in,
Chris: uh, is that he's using channels, which means everything he's putting out there
Chris: is hard coded to a specific version of Nix OS.
Chris: In this case, 2505, which came out in May, obviously.
Chris: And those do have end of life dates. So the fleet has to be migrated to the next channel.
Chris: And that's kind of like doing a Fedora distro upgrade or a Debian distro upgrade in some senses.
Chris: It can be a larger set of changes than a standard update.
Chris: And I wonder, Wes, if this doesn't
Chris: call for a solution where is Mike maybe sitting in front of that stuff?
Chris: Like if he's not going to do a flake, how could he better handle a channel-based
Chris: system? Or is it just use Flakes?
Wes: Yeah, I'm not the person to ask. I don't use channels at all.
Wes: No, I mean, I think it does mean you have more, you know, imperative stuff to manage on the machine.
Wes: I do think you could get where you want to go eventually with Flakes and probably
Wes: ultimately have a better time.
Wes: I think you can kind of tell there's a lot here.
Wes: I mean, if you just look around in this repo, right, there's a lot of different.
Wes: There's update.sh, there's install.sh.
Wes: And within the config, there's a lot of different scripts kind of like keeping everything together.
Wes: But that you are going to do more of that composition locally
Wes: with the channel because it isn't as hermetically tied
Wes: together as a flake does probably mean you know
Wes: mike's got to make sure he's got plenty of good test machines ready to
Wes: go to like verify that everything that is possible and maybe it's more complicated
Wes: if you do have too many of those feature flags like make sure all versions of
Wes: your config are going to successfully be able to build with the updated channel
Wes: and then like how do you stage that rollout is it just one push that you do
Wes: do you some people get it before others all that kind of stuff.
Chris: Yeah, staged rollouts could be helpful, too. You know, if you have a particular group of savvy users.
Wes: But I don't know if there's any, like, plumbing in here for,
Wes: you know, that's a lot more stuff to...
Chris: I didn't see it. But I'm suggesting maybe it should be added.
Wes: One thing Mike could look at, there's a lot of, like I was mentioning, a lot of scripts in here.
Wes: You may or may not want this, but you're using packages.writeScript, which is great.
Wes: There is also write shell application, which kind of just does,
Wes: like, a little more stuff.
Wes: Like in particular, there's one of these scripts in here where Mike is manually
Wes: setting like a bunch of path stuff and exports and bash set dash EU.
Wes: And if you use write shell application, it kind of sets some decent bash stuff for you.
Wes: And it even runs shell check automatically to like make sure you're not doing
Wes: anything bad or half broken in a bash script for you.
Chris: Well, now you tell me.
Wes: It's not always what you want, right? Sometimes you want something more minimal
Wes: and that might be what's going on here. I'm not trying to say he's doing anything
Wes: wrong or anything, more just say, hey, this exists if it is more convenient for you.
Wes: I do like, though, like, I don't know if you noticed, like, okay,
Wes: we're installing some stuff, but we're even taking the time to make a extra
Wes: little desktop icon and desktop item for Zoom so that it,
Wes: like, it can, I guess it's installed by a flat pack, but this makes sure that
Wes: you get, like, a nice little Nix native integration for it, which is a nice touch.
Chris: You can actually declare that .desktop file. You don't actually have to have
Chris: a bash script creating that .desktop file.
Wes: Oh, it is. It's not a bash script. It's like a Nix native.
Chris: Oh, okay. Okay. All right. I thought you were saying it was a bash script.
Chris: All right. That's pretty good, then.
Chris: I'm feeling pretty good. Brent, how are you feeling going over this?
Brent: I mean, it looks great. It's evolved quite a bit since the last time I looked
Brent: at this quite several months ago.
Brent: One thing I'm noticing that I didn't notice before is another script,
Brent: of course, but this one's called Power Wash. Have you seen this one?
Chris: Yeah.
Brent: I think it does exactly what you probably think it does, which is just cleans
Brent: that system in every way you could think.
Brent: But he's making some, like, custom directories here and just kind of bringing
Brent: the system back to an original factory state.
Brent: And that might be nice for this kind of system because it could get passed from
Brent: one user to another as people are done with the system.
Brent: And they think, wow, this was great for me. I could give it to,
Brent: I don't know, my granddaughter or a friend, something like that. So good thinking there.
Brent: I'm sure he uses it when he's setting these things up quite a lot.
Chris: I would like Mike to write back in and tell us where this goes in two years.
Chris: Because if you think about maybe a little bit of metrics or observability and
Chris: if you were to build a sprinkle of flakes and you were to build a little bit
Chris: of support services around this,
Chris: a guy could have a pretty good second income stream. Yeah.
Chris: Obviously, they're a sponsor of the show, but I almost wonder if this wouldn't
Chris: be the perfect use case for Nebula to provide the back end securely in a way
Chris: that wouldn't be too hard to manage.
Chris: And you could provide through that all of the things I just talked about,
Chris: the observability, the monitoring, but you could also offer secure backups,
Chris: assuming you wanted to get into this.
Chris: You could offer more proactive monitoring if you wanted to get into that.
Chris: And you could even offer like a NextCloud quote unquote secure storage that
Chris: never touches the public Internet.
Chris: You know, it goes from their machine over Nebula to your hosted infrastructure.
Chris: I don't know if you ever want to take it that direction, but I feel like when
Chris: you're getting to this amount of systems, you're going to have people that their
Chris: work depends on this and they might actually be looking for that kind of support.
Chris: I'm a little concerned about the channel stuff. I will just be honest with you.
Chris: I just think that's going to be tricky. And then if you combine that without
Chris: kind of staged rollouts or the observability of failed updates,
Chris: that to me is hard to make it a five out of five, even though I love this idea,
Chris: a five out of five, I'm, I'm leaning for, but I could be talked out of it if
Chris: the committee has a different opinion.
Wes: No, I think four is reasonable. Also, we've got cinnamon, but there's no hyperland
Wes: option. So I don't think it's ready for you to use it. So that's probably where
Wes: some of your motivations coming from.
Chris: It's such a cool project, though.
Wes: Oh, it really is. And you can tell how scrappy and just, like,
Wes: how far Mike has gotten this to work, how reliable it seems to be.
Wes: I mean, like, and really, if you look at it, right, like, it's not even 300
Wes: lines of stuff in this file.
Wes: Like, it's not super complicated. It's not a crazy thing to try to maintain. I'm very impressed.
Chris: Well done. All right. So, Radek comes in with his configuration.
Chris: He says it's a complete production-ready Nix OS configuration for self-hosting
Chris: 20-plus services with enterprise-grade security, automated backups,
Chris: and zero-trust networking.
Chris: Perfect for home lab enthusiasts, privacy-conscious users, and anyone wanting
Chris: to self-host their digital life with minimal maintenance.
Chris: Disclaimer, the entire project was Vibe-engineered.
Wes: Well, one way you can tell, I don't know if it's better or worse than the one you have in YouR Repo.
Chris: Oh, here we go.
Wes: Well, I don't know if you noticed, there's a file in here that almost looks like a command.
Chris: Yeah, I love that. That's a good sign.
Brent: Yeah.
Chris: That Udo one there, Udo-U Postgres.
Wes: I think it might have been sudo to start with, but...
Chris: Yeah.
Wes: Yeah.
Chris: Yeah. Yeah. That's good stuff. That was just yesterday, too.
Wes: So that's easily two stars just right there for that.
Chris: Oh, okay.
Wes: No, no, I don't. I mean, in a good way. I'm going like adding stars on,
Wes: right? That's the baseline.
Chris: All right. Okay. I mean, let's talk about what's going on here.
Chris: Holy crap. 20 plus services. He's not kidding.
Chris: And I see some of my favorites in there, my favorite RARs and my Jellyfin.
Chris: I love what I'm seeing there. He's got an architecture diagram.
Chris: Oh, yeah. He's pulling in Azure for backups and DNS management to handle all of that.
Chris: And I believe, I'm not positive, but I'd like your eyes on this, Wes.
Chris: I think instead of installing Postgres like 20 times and Redis 10 times,
Chris: he's got one instance of Postgres and one instance of Redis.
Chris: And then everything's configured to use...
Chris: Which is something you don't often see on people's Docker home labs.
Chris: You'll often see five copies of Postgres running on somebody's system,
Chris: and he solved that problem.
Chris: It does make it a central point of failure, obviously.
Wes: Yeah, pros and cons, but you don't actually need separate servers depending on what you're doing.
Chris: So my man, I like that.
Wes: Yeah, there's a lot of stuff in here.
Chris: He's got weekly automatic backups, which is really great.
Chris: I would challenge him to consider adding file system snapshots before his automatic
Chris: updates and, you know, just have an extra or maybe kick off his automatic because
Chris: he has automated backups.
Chris: Maybe run that job right before you do your automatic updates.
Chris: So that way you have a really nice, fresh point in time if something does go wrong.
Wes: I'm impressed. The integration with SOPs, especially for a vibe coded setup.
Wes: You know like getting i think getting secrets tying that together uh not leaking
Wes: secrets into your repo that's yeah that is all stuff that takes time and fiddling
Wes: and fuss to really validate he's.
Chris: So he's got the r stack broken out audio bookshelf you know every major service
Chris: like next cloud and jellyfin and image are all broken out into their own nix file.
Wes: A pretty pragmatic balancing here of native nix os services as well as a lot
Wes: of containers right so like here's um SearchXNG and OpenWebUI,
Wes: both running as OCI containers,
Wes: which is great because I think sometimes it's easy to forget that,
Wes: you know, you don't have to, you can pick and choose.
Wes: Like, use the Nix module if you want, run it in a container,
Wes: either, you know, imperatively or declaratively. It all works great. So do what works for you.
Chris: I may be aping some of this R stack. This is looking really good.
Chris: I do like to see all of this.
Wes: Like, I don't know if this was a deliberate choice or not, but,
Wes: for instance, image is being run as a container, not through the module.
Chris: Yeah. Yeah.
Chris: Yeah, I wonder, and I bet you that is. I wonder if there's any hardware acceleration issues there.
Chris: Probably not. I'm sure he's probably safe. Solve that.
Chris: I would say, like, if you wanted, like, to unlock, like, the next level of cool
Chris: for this setup would be automated restore testing into, like,
Chris: a, you know, a stupid container or a throwaway VM.
Chris: Because you're doing the automated backups.
Chris: How do you know they work? Wouldn't that be something if you could vibe that
Chris: up where once a month or something, you do a restore from your last backup?
Wes: Oh, that'd be killer.
Chris: And see if it actually works. Because that's, I love that you have all this.
Chris: I verified you're backing up your app data.
Chris: I'm pretty sure. I assume you're backing up your Postgres and your Redis.
Chris: I would imagine if you're running 20 databases on those things.
Chris: I didn't see you ever testing it. And that could be something you're doing manually, obviously.
Chris: But why not give a shot at automating that? You're so close.
Chris: You're so close with everything.
Chris: I don't want to do like grading on a curve, but for a vibe set up,
Chris: This is pretty top-notch for a vibe setup.
Wes: There's another one we're going to see in this category as we go on here.
Wes: And, you know, just with our recent episodes and everything else,
Wes: it does, boy, are we at a point for vibing with Nix OS.
Wes: It's really come a long way, which is great. I mean, it's just a superpower.
Wes: I will say you might consider getting your vibe tool to add an auto-formatter.
Wes: I notice nothing crazy, but just like in your flake, there's some stuff where
Wes: some of the indentation and stuff, which doesn't break anything because it's
Wes: nix not python or yaml or whatever but should be something easy for it to do
Wes: to be able to you know easily format and keep everything looking pretty for you and.
Chris: I also think this is why i'm not sure i want to give it a five out of five because
Chris: i think there might be some dock drift which is really easy when you're moving,
Chris: i do like your architecture diagram though oh this is a really tough one this is really.
Wes: Yeah that is one thing you kind of have to balance too is it's really easy to
Wes: get the llm to spew out a lot of the docs but.
Chris: Then they drift.
Wes: Keeping them keeping them up to date is a whole other challenge and so sort
Wes: of like which ones are essential for like i really do want this and this is
Wes: going to help me continue to build and which of these are like just dead weight
Wes: that i ultimately got to carry around and i could rediscover easily yeah.
Chris: I think he's got like some code examples that reference like old versions of
Chris: stuff in there i mean there's just a little bit of drift so i don't know if
Chris: it's a five out of five but i feel like it could be a four out of five again
Chris: i mean we're being pretty generous i i don't know i think some people would knock it down.
Wes: Yeah, we'll give Claude one star, and then the rest of the config gets four.
Chris: Okay. All right. There you go. There you go. But better than I would have thought.
Chris: I got to say, Reddick, better than I would have thought.
Chris: Well done. And nicely done on focusing on a home lab with all of the essential
Chris: great home lab services.
Chris: Somebody listening, even if you're not interested in deploying all of this,
Chris: you might want to just look through his config and get some ideas for some great home lab services.
Chris: They're really good. All right. We're about to round it out.
Chris: And one of our last ones comes from Brandon W.
Chris: He says, I've slowly been migrating my computing life to declarative configurations.
Chris: As part of that, I've switched my Mac to Nix Darwin, as well as my Homelab to
Chris: Docker Compose and Nix OS.
Chris: I just finished Nix OS this weekend on two of the four hosts and only locked
Chris: myself out of SSH three times.
Wes: Hey, under five. I've done. See? Star for that. Boom.
Chris: Star for that. All right. All right. I wanted to send in my infra repo and my
Chris: Nix Darwin configs for the config confessions.
Chris: I'm most proud of my HomeLab deployment system using Ansible playbooks,
Chris: 1Password for secrets, Just, GitHub actions, and the Renovate bot for updates.
Chris: Any suggestions would be appreciated, and howdy's from Texas.
Chris: So yeah, he sent us two configs, the HomeLab and the Mac. So why don't we start
Chris: with looking at the old HomeLab?
Chris: I do like that. He's broken them out like that.
Chris: Also, he was committing as of this morning when I was checking in on this.
Wes: Inactive development. I love that.
Chris: He's got his hosts broken out here. He's got an explanation of his tail scale
Chris: and Ansible setup and secrets management.
Chris: I don't see a quick getting started, but this is pretty solid documentation.
Chris: You know, description of the home lab systems, the Linode. And I do like this.
Chris: So this is winning a point with me.
Chris: He's running a Linode exit node to forward certain critical,
Chris: as he puts it, mission critical data through this Linode exit node.
Chris: Love seeing that setup. That's worked really well for us too.
Wes: Yeah, you can tell there's a lot. i like seeing a polygot repo
Wes: like this right like there's a lot of stuff working together there's obviously
Wes: nick stuff that we'll be taking a look at but also as you mentioned right we've
Wes: got ansible playbooks and part of what that's doing is deploying a bunch of
Wes: composed yaml files that are also in here that look really nice i mean yeah
Wes: pretty well you know traffic uptemp kuma,
Wes: portainer uh we got bind running like there's just there's a lot of serious
Wes: networking thought that has gone into this, which is great.
Chris: I think you hear that, Brandon. I think he's impressed. I think he likes it.
Chris: I love seeing Image in there.
Chris: Docker with traffic and using tags, it looks like.
Wes: Did you notice that there's two separate domains that get routed with custom
Wes: split DNS servers? There's a personal services one and the family one.
Chris: He's got the split brain DNS.
Brent: Fancy.
Wes: But the good kind.
Brent: I have an observation and question here. In the NixOS folder,
Brent: I'm seeing a hardware configuration.nix.
Brent: It was under my impression that you generally didn't want to version track that
Brent: because it's being created.
Brent: On each system independently.
Brent: What are your thoughts on that, Wes?
Wes: I mean, you can recreate it. I think
Wes: if you do track it, there's nothing necessarily wrong with tracking it.
Wes: You just need to know that, like only deploy it to the ones that are relevant
Wes: and then it's on you to make sure that you update it if you are actually changing
Wes: something with your hardware.
Brent: Mm, fair enough.
Chris: All right, so where Brandon scores a W with me is on the Mac stuff, surprisingly.
Chris: He's got a command to get started right at the top of the readme.
Chris: You know, so you get a new Mac or you reinstall macOS, you're not spending 10
Chris: minutes, you're copying and pasting.
Chris: That's a W. I know this is how it works on macOS, but it's just funny to me
Chris: to see brew defined by Nix.
Chris: You know, it's funny. But then what was even crazier to me was to see the Mac apps.
Chris: I'm going to link this in the show notes specifically if people want to see
Chris: this because it's just bonkers to see Mac apps getting installed by Nix.
Chris: Chromium, Discord, Spark, Notion.
Chris: Spotify, Visual Studio Code, Xcode. Huh, you can install Xcode with Nix.
Chris: Would you even believe it? So that to me is the first time I've ever actually seen that.
Chris: I know people, like our buddy Alex does this, but I never really dug through the config.
Wes: It is pretty great what you can do.
Chris: You can disable the DS stores.
Wes: Yeah, right. It's one of those things where it's like, boy, I hope I don't need
Wes: to do this again, but it is probably exactly what I would end up doing where
Wes: I forced back onto that platform.
Wes: So it's great having these in our tool chest to pull from in the future also.
Chris: I'm amazed Mac OS lets you do some of this. You can set keybinds through Nix
Chris: in macOS. You can set macOS keybinds.
Chris: What a world. Talk about making the Mac way more manageable.
Chris: So that, to me, brought this up a couple of points right there because it's well done.
Chris: He's got the quick get started stuff. You know how I love that.
Chris: Overall, it's the most interesting in that it's x86, it's M-Series Mac,
Chris: it's Ansible, it's Nix, and it's Docker Compose.
Chris: In all in one, and yet it seemingly is working really well together,
Chris: and he's got not only individual workstations, but he's got a home lab setup out of it, too.
Chris: So it sucks. I say one star.
Wes: Too much non-mix, negative points.
Chris: Right.
Wes: We're going to actually ask, we're going to flag this at GitHub so they can delete it for us.
Chris: Bro, was it even vibes? Bro, you know.
Wes: Yeah, thoughtful, long-term development and use.
Chris: Yeah, yeah. Yeah. Was committed. You were still working on it this morning as
Chris: we're prepping the show.
Chris: Okay. So I think when you think of it's a five out of five, I think this is a five out of five.
Chris: So this is our first five out of five for the second segment,
Chris: but I think, I think it's fair. It goes to Brandon.
Chris: It's really neat. It's really neat to see the home lab and the Mac all broken
Chris: out using, you know, some of our favorite apps, some of our favorite technology stacks.
Chris: Well done, sir. Five out of five.
Chris: All right, gentlemen, and our last config confession came in just last night
Chris: from Bearded Tech, and he has Vibe-coded a NixOS router.
Chris: He says it's a declarative NixOS configuration that transforms a standard PC
Chris: into a full-featured network router with integrated secrets management.
Chris: And it has multiple WAN types. It supports, obviously, being a DHCP server.
Chris: It can be a PPOE server if you need.
Chris: It also has PPTP support, LAN bridging to combine multiple Ethernet ports into
Chris: one network. It has a DNS server, DHCP, obviously a firewall with NAT support,
Chris: and then in their port 40, and like he said, secret management as well.
Chris: But the thing that is really impressive is Bearded Tech has made this so approachable
Chris: for anybody that just wants to take a PC and turn it into a NixOS router.
Chris: He did the right thing, and he just put a curl right into Pseudo Bash in the
Chris: quick start, and you can just get rocking. And you know how we,
Chris: you know, always suggest you do that. Of course, I'm being ironic.
Chris: But if you trust the person, he does actually tell you everything it's going to do in there.
Chris: But you boot from the NixOS installer and then you just run this command.
Chris: And it does everything else. And then the other thing he thought of,
Chris: because this is how it is in router life, is if you come back to one of these
Chris: boxes you've deployed two years down the road and it's all decrepit and out
Chris: of date, he's got a quick refresher command.
Chris: And you, again, slam that thing right into sudo bash and you've got a completely
Chris: refreshed router. Good to go again.
Chris: He's got documentation for the individual setup guide, router config,
Chris: secrets management, troubleshooting the development.
Chris: He tells you what you need. I mean, this is top notch.
Chris: This is really a great idea, especially because I want to run a Nix OS router here at the studio.
Brent: How do you feel about a vibe coded router though, Chris?
Chris: Yeah.
Chris: I don't love that idea. I mean, if it builds and it routes the packets,
Chris: well, it's not like he's going to vibe like a backdoor into it, right? I mean, it's how.
Brent: Do you know?
Wes: I mean, it is one of those things that you can test it, right?
Wes: Like, you know if you break it because your packets don't route anymore.
Wes: To the extent that you can easily test all the stuff that your router is doing,
Wes: I think it makes a pretty good use case in that sense.
Wes: I don't think I see any like crazy routing stuff in terms of like custom IP
Wes: tables or NF tables or anything like that.
Wes: But I do see like PPOE going on and some bridges being configured.
Wes: There's some nice stuff in here like router config.nix, which is just a declarative
Wes: file describing the networking. I like that a lot.
Wes: You might consider because if I've coded one, just impressive speed,
Wes: I think it started on the 7th with the initial commit.
Wes: It's the 9th as we record, and there's already been like 50-some commits or something.
Wes: Although, if you're getting Vibe commits, they're kind of verbose.
Wes: You might tweak your setup to follow conventional commit standards if you like that one,
Wes: or just at least have a quick summary single line and then put more of the detail
Wes: below just to sort of match what a lot of Git software thinks but that's like a minor minor nitpick.
Chris: I was it was one of mine too it was kind of annoying looking through the and
Chris: i know this problem you know they are very like just exactly what west said
Chris: so i kind of agree on that and it was sort of a bit much there.
Wes: It is nice so there's like a dev shell there's a formatter got sops going in
Wes: here for secrets which is very forward thinking.
Chris: I noticed that he recently swapped out Tectitium for Blocky DNS.
Chris: I'd be curious to know more about that.
Wes: Yeah, I would be curious to hear how that's working for you,
Wes: which things you like or don't like about either one of them.
Wes: I've looked at Blocky a little bit, although I've never actually really tried
Wes: it, except like briefly.
Wes: I do like that it has a lot of metrics built in, though.
Chris: Yeah, and I know it also has some ad blocking and malware built in and stuff like that, too.
Chris: So that's all pretty good. I don't love the way the commits.
Chris: The other thing that I would love to see is I don't know how you would not pick favorites here.
Chris: The VPN options are pretty 1997. You know, it's like this is,
Chris: I was doing PPOE connections literally like on NT4 boxes.
Chris: Not that people don't use them. I'm not saying they don't. I would also love
Chris: to see some more modern options built in, you know, tail scale or a Nebula or
Chris: what I would really love is some way for the user to pick.
Chris: And then you just get that. Like maybe you're a network person.
Chris: Maybe you're a Nebula person. And then you just go in and you say,
Chris: I'm a Nebula person. And then it sets up with Nebula or whatever.
Chris: Because the VPN options are, I'm never using that stuff in 2025 if I'm setting up a new router.
Chris: If I am going into an organization that has a historic setup,
Chris: maybe you might even call it tech debt, I can understand why they're doing it.
Chris: But if I'm installing a Vibe-coded Nix OS router on my PC at home,
Chris: I don't want to use PPPoE or PPTP, right? So that's just one thing I would add, maybe.
Chris: I'd love to see some backups built into this too i think backups could be really good,
Chris: um i mean but for like you said wes i going from zero to actual functional system
Chris: in a couple of days and to have the quick start on just a you know you boot
Chris: off of the nix os live system and run this script oh when you come back in a
Chris: couple of years run this script to refresh it assuming that works,
Chris: That's great. That's exactly what you want with this kind of stuff.
Wes: I do like that, too, as a, you know, oh, no, that box died. Well,
Wes: thankfully, I just run the script, clone things down.
Wes: I've got my router back in, you know, 10 minutes instead of a couple of hours.
Chris: All right, gentlemen, should we allow a last-minute contender in?
Wes: Let's do it.
Chris: Okay, all right. We've got to give Bearded Tech a score before we move on.
Chris: And I'm going for, can we do points? I feel like a 3.5 or a 4.
Chris: It's really close, though.
Wes: I think four because there's some fancy scripts in here.
Chris: All right. All right. All right, Brent, tell us about our last-minute contender
Chris: that came in live on the show.
Brent: Yes, we have someone in the Matrix chat, D-Drill, who said, oh,
Brent: I got a config. Maybe you guys can have a look at this one.
Brent: So this has been a totally fresh config for all of us. So I think we should dive in.
Chris: Coming in fresh. first thing I'm noticing just right off the top well we got
Chris: some systems here but I like the systems are broken into two categories do you
Chris: see this Wes? you see these two categories of systems here?
Chris: You got the Nix OS systems and then you have the systems that still need to
Chris: be Nix there's nothing else,
Chris: that's pretty good and you got the structure in here and all of that I'm also
Chris: noticing just a couple of things is pretty recent commits,
Chris: As of 29 minutes ago, actually, that's what are you are you listening to the show or not?
Wes: It's so organized.
Mumble: I am.
Chris: He's in the mumble room. So you're in the mumble room.
Wes: Do you want to just tour us through here?
Chris: Yeah. Tell us about your system. Yeah. Why not?
Mumble: Sure. So the most recent commits there, I made a quick read me update and flake lock action update.
Mumble: So if you basically jump back to the root, I essentially have things broken out.
Mumble: I attempted to recently do a major refactoring and make things a lot more modulized,
Mumble: modularized, however you say it.
Chris: Right.
Mumble: But basically, I got hosts. Right now, I'm purely running NixOS.
Mumble: I don't have any Macs. But...
Mumble: Basically, in the host, under NixOS, I have the different configs.
Mumble: I have a couple special... Actually, if you want to look at the modules,
Mumble: there is a host spec module that I have borrowed from someone else I found online
Mumble: and then tweaked it to my own needs.
Mumble: I want to say it's actually right in the root there.
Chris: Yeah, this host spec.nix there, huh?
Mumble: Yeah, so basically that creates a host spec and then creates just a bunch of
Mumble: variables that you can call throughout.
Mumble: This file is actually imported within
Mumble: each host so i can reuse a lot of the same variables without messing up any
Mumble: other hosts itself but starts off just with some basic specifying primary username
Mumble: a secondary username it's basically just myself and then a couple of the systems
Mumble: are also used by my wife gotta.
Chris: Make sure you get a llama installed i see that.
Mumble: You know i have a couple you know i break it down if it's a workstation it adds
Mumble: a desktop interface to it if it's gaming it does another layer on top of that
Mumble: um couple services specified there i.
Chris: Really like this i mean i'm coming in fresh but what i'm seeing i really like
Chris: the way you have the modules workstation laid out the audio.nix the bluetooth.nix
Chris: the fonts.nix nvidia.nix this is really well structured.
Wes: Quite a lot of helpers here in the just file too like it shows you're you're
Wes: definitely using this stuff and maintaining it and you've you've got commands
Wes: that you actually need to run and have helpfully stashed them away, which is nice.
Mumble: Yeah, I borrowed that off from someone else. And honestly, I need to go through
Mumble: it and use it a lot more because I really don't use just the way that I should.
Brent: I was curious about one of these here. I'm not sure if you're using it currently,
Brent: but you have a just command for creating an ISO.
Brent: It says build an ISO image for installing new systems and create a sim link
Brent: for QEMU usage. Is that something you're using actively? And if so, how'd it go?
Mumble: I have not built that in yet. So that was actually a carryover.
Mumble: I've got to give credit to Emergent Mind.
Mumble: On that because that's part of what i had ripped off of him so it's an intention
Mumble: that i plan on going uh basically building a minimal iso that i can use for spinning up new systems,
Mumble: it'll already have some of the basic tools that i want in it rather than having
Mumble: to use the customer installer all the time because realistically with the with
Mumble: nyx if you have a config all you to do is get into a system that has nix on
Mumble: it whether it be a minimal iso or whatever grab your flaco to github and let it build yeah.
Wes: Yeah exactly right well good the fact that you haven't used everything makes
Wes: this like a real person's config because before it was almost suspiciously good so yeah.
Chris: Yeah yeah okay and the raspberry pi that's on the to-do list for 2016 huh.
Mumble: From 2016 yeah.
Chris: So I'm noticing. So not done?
Mumble: Well, it's my Raspberry Pi 3. I have my 4 already Nixified.
Mumble: So it's just a matter of actually going down in the basement,
Mumble: grabbing it, and putting the image on the SD card, which sounds simple enough, but it's a timing.
Chris: No, no. I've got a couple from 2016. I'm going to get this running,
Chris: too, on my project list. So I totally understand.
Chris: But I feel like this is a top-tier setup. up even if it's not fully implemented
Chris: it's well done it's well thought out it's well structured i mean do we have
Chris: a reason not to give this a five
Chris: out of five i defer to the committee but that's the way i'm inclined i.
Wes: Thought we were going six.
Chris: Oh whoa can we do that.
Wes: For you know for the very last one i think we have to.
Chris: Brent you'd have to co-sign i.
Brent: Mean are there even rules at this contest i say go for it.
Chris: All right there we go six out of five i don't know how that's possible.
Mumble: If you want to take a look at that lib, one of the cool things that I saw on
Mumble: someone else's config and borrowed is actually an importing method for those files.
Chris: Okay.
Mumble: So without being able to rip through it often enough.
Mumble: So I actually have in there, I have a relative to root, I have a scan paths
Mumble: and a recursively import that I just recently did.
Mumble: I haven't built that out yet to actually utilize it in many places.
Mumble: But the scan paths or the relative to root is realistically kind of one of the key pieces I use.
Mumble: So if you actually go back into the modules and look at any of those default
Mumble: files, I'm sorry, those actually all use the scan path.
Mumble: So I'm not actually specifying all of those files by default. I'm specifying.
Mumble: So, I mean, even that default nix there, I'm pretty sure has it in.
Mumble: But when I'm importing, I'm basically doing a one line importer.
Mumble: Yeah third line or line 11
Mumble: out of there scan paths dot so and then that function has built into it filtering
Mumble: out to directories and dot nix files and then within each directory has a default
Mumble: dot nix that would run the same scan paths file again or line again and it would
Mumble: import all of the files that are adjacent to that that.
Wes: Is great so you've got custom nix lib that see i stand by my six out of five for sure.
Chris: All right.
Mumble: I mean, I figured if you were going to give me a six, I had to,
Mumble: you know, throw some extra little.
Chris: You know. Well, and you know what? You didn't even, because we were impressed
Chris: so much, you didn't even get docked for missing the deadline,
Chris: which we didn't really set a deadline.
Mumble: I was going to say, I sent it, I technically sent it in Friday night.
Chris: Oh, okay. Oh, okay.
Mumble: All right. Through the Linux Unplugged website.
Chris: I see. I see how it is. All right. Well done. And we will link to these configs
Chris: in the show notes if you want to get some ideas for yourself.
Chris: Unraid.net slash unplugged. You want to build your dream server?
Chris: Well, Unraid 7.2 makes it easier than ever. The new 7.2.0 stable is here.
Chris: I've been telling you it's going to be a good one.
Chris: Fully responsive web GUI, and Unraid now works beautifully across all your devices.
Chris: You got your phones, you got your tablets, you got your desktop.
Chris: Picture it. You're sitting there with your tablet on your couch managing your ZFS RAID, right?
Chris: Like, I love that they're working on this stuff. And they didn't ask me to say this.
Chris: So, so thrilled to see them roll out this open API.
Chris: It's officially here. It's open source. It's fully integrated,
Chris: secure, programmable access to your Unraid box.
Chris: People are already using this in the community to build dashboards and automation.
Chris: External apps are going to be able to use this. And there's even going to be
Chris: ways to pipe into external authentication, like OIDC and stuff like that.
Chris: You know, you're O-Dykes. That's not how you say it. Don't say it like that.
Chris: Also, I believe in 7.20, checking my notes here, it looks like ZFS RAID Z expansion
Chris: support, boom, is here. That's great to see.
Chris: You can now grow your ZFS, or some say ZFS, pools without having to start over.
Chris: Unraid 7.2 also introduces support for extended 2, 3, 4, and your NTFS and extended FAT.
Chris: You know, the NTFS thing is nice, right? You got an old disk laying around with
Chris: some family data on it. I do, actually.
Chris: Grandpa's photos. Grandpa's photos are on NTFS. So I'm really happy to see Unraid support that.
Chris: This is what's so nice is they just keep iterating on this.
Chris: They've already had 25,000 downloads of Unraid 7.2. So that's the other thing
Chris: is people are trying this, testing this, building on this. It's a really great community.
Chris: Go unleash your hardware. Use what you've got today. Build your dream system.
Chris: Take advantage of the applications we talk about. Their community store is packed.
Chris: And get a free 30-day trial at unraid.net slash unplugged. It's the OS that grows with your skills.
Chris: Unraid 7.2 with that new API, new responsive web UI. And now we can get Grampus photos.
Chris: Unraid.net slash unplugged.
Brent: Well we have a boost here it is a live boost and it is also a live baller boost,
Brent: now derivation dingus sent in a live boost for 100 000 sats oh.
Chris: Are you serious,
Chris: all right thank.
Brent: You that's great derivation says here i boosted in asking for this episode last
Brent: time but um episode two landed on my anniversary weekend and while i've been
Brent: making big changes to my configs i just ran out of time to send my config in
Brent: this time so i'm listening live and loving it while doing my Sunday chores.
Brent: And please consider this boost a request for Config Convessions episode three.
Chris: Okay. Well, we'll have to get a few plus ones on that because,
Chris: you know, we have to space it out too, but sorry you couldn't make it.
Chris: That's great. Really appreciate the boost.
Wes: But, uh, you know, you get at least a one or two stars for having your,
Wes: your life priorities, uh, properly in order.
Chris: Listen to live and boosting really brought up the average for this episode because
Chris: we were kind of lagging for this episode too. So it made a big difference.
Brent: Yes, happy anniversary.
Wes: I meant being able to resist just messing with their next config and paying
Wes: attention to their spouse and chores. Like, that's pretty impressive.
Chris: Oh, okay. All right. I thought you meant he was listening to us, which is...
Wes: Ah, that too, though. Yeah, you're right.
Chris: That too. Thank you for that baller boost. Nykoff comes in with 22,222 sats. That's a big old McDuck.
Chris: No message, just value, though, which we appreciate. Thank you very much, Nykoff.
Wes: Turd Ferguson comes in with 21,000 sats.
Wes: I have no config to send in. You see, boys, where I'm going,
Wes: you don't need a config file. It's the future!
Brent: Yeah, okay.
Chris: All right, Doc Brown. Okay.
Wes: Is this just, like, so post-vibe that, you know, you don't even really need to keep a static config?
Wes: You just constantly revive on demand for whatever you need at any moment? I don't know.
Chris: Yeah, clearly the future is dynamically vibed configs as the system boots. what can go wrong?
Wes: It's like a SaaS and you pay per minute because you're live streaming your config from a cloud server.
Chris: Well, you need to pre-render, right? And you want to have it globally available.
Wes: That's true. Yeah, you want to fail over it.
Chris: That's probably 90 bucks a month, I would imagine.
Wes: Easy. But you got to pay with some sort of zero trust ERC-20.
Chris: CK roll-up ERC-20 token. That'd be great. Thank you, Turd. appreciate that boost.
Brent: Of course you're gonna like this next booster 4590 sats from BTC is my 401k.
Chris: All right. All right. Okay.
Brent: This one comes from Cast-O-Matic. Elevation boost, boosting from my mountain
Brent: home. The sad amount is my current elevation.
Chris: Wow.
Wes: Love it.
Brent: Also plus one for config confessions. I've yet to truly commit to NixOS,
Brent: and these confessions help set us Nix noobs on the right path.
Wes: I like hearing that.
Chris: Oh, good. There's also some Ansible and geeks in there.
Wes: Yes, because it can also be a little intimidating, I think, right?
Wes: You see these complicated, big, well-set-up configs and be like,
Wes: how am I ever going to get there? But I like that attitude.
Wes: I like the like, oh, look, there's all this stuff I can copy from.
Wes: And you don't have to go from zero to vibed giant config. There's lots of nice
Wes: little middle grounds in the way.
Brent: Also, BTC, I have a question. Your elevation boost there, is that feet or meters or furlongs?
Brent: What do we got here? Four, five, nine, zero. Let us know.
Chris: Yeah. And is it snowing already? I imagine at 4,000, it probably is snowing
Chris: already. Because I've got friends that live at like 7,000 in Arizona,
Chris: and it is already fall-on snowing for them. So I bet you're-
Wes: I like this idea of an elevation boost and seeing how high can we go, right?
Chris: Yeah, but some of them are like mine. Mine's like 180.
Wes: Yeah, us, the C-level folks are not going to do well here.
Brent: Plus or minus the error bar too, right?
Chris: I guess. Oh, yeah, right? Yeah. It's got to get above 2,000 stats to get right
Chris: on the air, I suppose. But thank you for that boost. That's a great idea.
Chris: Sohang's here with 3,333 SATs.
Chris: I bet you that's a reference. Sohang says, I'm kind of getting a bit tired of
Chris: using Nix. The documentation problem doesn't seem to be making any progress.
Chris: And a side effect of the drama has been that a lot of work, both around flakes
Chris: and the general stuff, is stalled.
Chris: I just had a situation come up where I couldn't reason about my config and there's
Chris: no documentation I can look up.
Chris: My three-way brain split of Nix, NixOS, and Nix packages is getting untenable.
Chris: Not to mention the whole deal is a tangle of shell and Perl scripts.
Chris: But alas, what alternatives do I have?
Chris: Geeks is still a bit obscure, and I'm unsure of the reliability there.
Chris: Getting a gosh darn PhD in comp science and Nick documentation is still too much.
Chris: And I just spent a hot minute finding the non-existent boost button on the member
Chris: feed. Yeah, I know. I'm sorry about that.
Chris: It's a problem with private feeds versus public feeds. He says maybe we could vibe code effect.
Wes: The issue is, right, it's like per app, so we have to make some PRs for a bunch of these apps.
Chris: You know i do hear the complaint about the nix documentation a lot.
Wes: I would be curious because you sound like
Wes: you're using nix at a fairly sophisticated level
Wes: and it's true that like there could be
Wes: better docs or more docs but i sort of find like once i
Wes: know a system to like that point i'm sort
Wes: of just kind of in the code anyway so for me
Wes: like the docs problem hasn't been as bad because i just
Wes: assume for anything i'm going to use i'm probably going to go read at
Wes: the module code maybe gets more tangled if
Wes: you're like into like nix packages build time
Wes: helper frameworks for dot net packages or
Wes: something so i'd be curious to know like which particular areas are really
Wes: falling down i do sympathize i've seen a lot of stuff on the nix os subreddit
Wes: like i hate nix os but i hate it less than everything else wow that's rough
Wes: i don't feel that way but like i think i can get the you know there are definitely
Wes: paper cuts frustrations uh but it's also it's hard to quit once you're there.
Chris: That's true that's true okay good luck keep us posted sir.
Wes: Doornail 7887 comes in with a row of ducks.
Wes: Albi Hub deep dive question.
Chris: Oh, here we go.
Wes: And it's a suggestion, actually.
Chris: All right, I'm going to get my notepad out, Wes.
Wes: Albi Hub deep dive suggestion. After setting it up myself, the channels thing
Wes: is really still confusing to me.
Wes: I was surprised to find out I had to type 150k sats just to open a channel to send a small amount.
Wes: Forget the tech barrier to entry, the upfront cost seems like it might be a bigger barrier.
Wes: Any advice to reduce that barrier? Maybe the JB node would be open to supporting
Wes: small channels for newbies?
Chris: So this is, I think, the tricky part of setting up your own node and why services
Chris: like Fountain just do all of this for you, right?
Chris: Is the way Lightning works is it's an open source protocol and it's a peer-to-peer
Chris: system and the peers are these channels between nodes.
Chris: And the reason why the liquidity gets
Chris: locked up the 150k in your case is that way
Chris: it's a guarantee that the amounts can be sent across those channels
Chris: instantly the funds are essentially guaranteed in there so that is tricky and
Chris: i agree with you and so i don't think it's for everybody i think it's for people
Chris: that like to mess with computers and i think it's also for people that might
Chris: use it with multiple applications if your only application is boosting i just
Chris: don't know if it's worth it.
Wes: It's a lot yeah it's a lot to invest both time operations in terms of all the
Wes: software and running it and then yeah as you're finding out and it's very true
Wes: it is like if you especially if you don't already have like a pile of bitcoin
Wes: hanging around you definitely need some capital to fully fund a node's liquidity
Wes: and it's worth calling that out.
Chris: There are ways to buy channel liquidity for pretty cheap like you don't have
Chris: to spend the entire month there are,
Chris: liquidity providers and there's some included in albi that you can commit you
Chris: know 15 dollars and you get 150k channel or something like that so it.
Wes: Is worth noting that a lot of those some of them are single payment some are
Wes: like a monthly payment and then
Wes: if you do a single payment often they'll keep them open but they might.
Chris: Close them if you don't use them so yeah yeah and then about the node our node
Chris: uh that would not be a huge help because our node isn't particularly well established
Chris: or well-connected, you really want to be connected to nodes that have a good network graph.
Chris: And there's like Ambrosia and something, there's sites that help you find that network graph.
Chris: The AlbiHub ecosystem is growing because Albi supports something called Nostra Wallet Connect.
Chris: And it's an unfortunate name because it invokes Nostra, but what it really is
Chris: is a secure way to connect into these things.
Chris: And you're going to find more apps in the next couple of months that you never
Chris: expected are about to announce support for that. and it's going to make Albi even more useful.
Chris: So it could be worth it there. But it's a great question.
Chris: And channels is, I think, one of the things we have to spend some time on for
Chris: sure. Appreciate that boost.
Brent: Well, we have a boost here from Mick ZP for 10,000 sats.
Brent: They say, I couldn't agree more with you on AI and LLMs from last episode.
Brent: I work primarily as a sysadmin at an R1 university, and I'm heavily using Claude
Brent: for projects with software. I'm just not familiar with what researchers want.
Brent: I also have the exact same experience regarding a NIC card that Claude was able to solve.
Brent: The biggest problem in this space is its explosive growth and the fantasy money
Brent: flowing between companies.
Chris: Ah, the circular deals. Yeah. Yeah, I mean, I think it's pretty reasonable to
Chris: expect some of that's going to fade out, maybe a lot of it.
Chris: But things like the functionality you just covered will probably still stand.
Chris: And I don't think we'll have to have big tech frontier models for a lot of that,
Chris: which I'm really excited about.
Chris: Some of the stuff you will, but that particular use case, I don't think so so much.
Chris: Thanks for the field report, Nick Zip. Give us some updates on how it goes. Appreciate that.
Chris: All right. Next boost comes from the Muso with 5,000 SATs.
Chris: I previously had printing problems on Nix as well, and it took me ages to work it out.
Chris: I could find the printer on the network, but the driver just couldn't be determined,
Chris: so I couldn't print, even if I chose the driver in the UI.
Chris: I solved my problem by making sure services.avahi.nsmdns4, as well as Avahi itself, was enabled.
Chris: You may also need nsmdns6 if your printer uses or requires IPv6,
Chris: and your network also has IPv6.
Chris: Ah, yes, the old Avahi.
Chris: Vahi a v a h
Chris: i is what apple used to call bonjour sort of auto dns discovery where things
Chris: find each other and a lot of devices use it now so you should probably have
Chris: that on all your desktops if you're working with things like printers but uh
Chris: thank you muso for letting us know that could be helpful for other people out there.
Wes: Yeah this is one of those the i love it yeah even
Wes: without a linked config you're getting next tips and then this is exactly one
Wes: of those things we're like okay there's probably stuff right maybe other distros
Wes: automatically enable this because they just turn printing on for you no matter
Wes: what next you're gonna have to figure out that you need it but then the plus
Wes: side is once you do it sticks in your config forever so you don't have to re
Wes: figure that out so pros and cons yeah.
Chris: Yeah that's a good one and i guarantee you like ubuntu they're just probably
Chris: installing that they're just installing that just taking care of it.
Wes: Fuzzy misborn comes in with a row of ducks,
Wes: An Ansible repo for config confessions. I should probably go back and do some
Wes: streamlining, but overall, it served me well.
Chris: Ah, we didn't get this in. We did check the boost, but I checked them on Thursday.
Chris: I checked them on Thursday. So, all right, we'll put this in if we do version 3.
Wes: Yeah, stick it on the pile. Thank you, Fuzzy.
Chris: Thank you, Fuzzy. We'll take a look at that after the show.
Brent: Well, WRT54G boosted in a row of ducks.
Brent: I'm sending in some of my very first sats to the show that helped me stay up
Brent: to date and interested in Linux as I started my IT career. So thank you.
Chris: Oh, wow. That's amazing.
Wes: Oh, thank you.
Chris: That's fantastic. Thank you, WRT. And yeah, stick with Fountain.
Chris: You're going to see some impressive stuff coming soon. Appreciate the boost.
Chris: User75 came in with 2,099 sats. Long time listener.
Chris: Love the show. this is my next config oh no uh to be to be uh considered on
Chris: the show also i don't want to give you my real postal code so here's one that's
Chris: nearby uh-oh wes oh postal code hope you got the map hope you got the map westpain
Chris: here it is the postal code nearby four one eight three zero,
Chris: Dash 050 if you need it. That should be pretty easy to find on your map there,
Chris: Westpain. You did bring it, right?
Chris: Oh, good. I thought you didn't have it there for a second.
Wes: Well, of course. I keep it in my back pocket.
Brent: I have a zip code question here.
Chris: Yeah, sure.
Brent: I'm used to those first numbers, but what's with the dash numbers? Dash 050 is...
Chris: Sometimes you need a little more accuracy sometimes.
Brent: What? Was this like some kind of add-on or 2.0 or something?
Chris: You don't have that up in the Canucks? Because you don't have a little extra
Chris: sometimes when you're shipping?
Brent: No, no. We use alphanumeric so you have enough precision.
Chris: Why would you want to go mixing letters and numbers when you could just have nice clean numbers?
Brent: It's actually really annoying to type into fields whenever you need to fill
Brent: in your address, I've got to say.
Chris: I can bang that out on a 10 key in two seconds. Boom, boom, boom, boom. Right?
Wes: Okay, well, I'm going to guess here. And I did have to pull out my unfortunately
Wes: little used uh southern map module okay but i believe this is a brazilian postal
Wes: code uh located in the patuba neighborhood of salvador in the state of bahia eh.
Chris: Really wow that's i hope that's right because that's super neat thank you user 75.
Wes: Where it's currently 81 degrees um with the wind from the east 16 miles per hour.
Chris: Oh man that map of yours A nice little breeze. Yeah.
Brent: That's got features.
Chris: That's a good point. That's really impressive. Very impressive.
Wes: Can we get a little map check for you there, Brent?
Brent: Oh, where am I? Let me just pull out my map here and try to locate myself.
Brent: Can we get, do you hear my map? I don't know if you can hear my map.
Chris: I don't, I don't hear it. You put up. Yeah, there you go. Get it closer to the mic.
Brent: Oh yeah. It might take a little bit.
Wes: Is that like a Mylar map? What is that made out of?
Chris: Yeah. It's like what they make their money out of.
Brent: It's colored.
Chris: Yeah, it is pretty colors. That's for sure. It just doesn't feel real in the hands.
Brent: What? How can you feel that? I'm way over here.
Brent: Okay all right okay okay i don't have an exact postal code but i have a near-ish
Brent: leave postal code for you if that works so are you all right do you have more than just a 10 key.
Chris: Just no just tell us your weather brent for.
Brent: God's sakes oh i thought you wanted,
Brent: So angry.
Chris: All right. GLA comes in with 3,600 sats.
Brent: Wait, it's snowing.
Chris: Hello, everyone. Long time listener here. It's snowing. There you go.
Chris: Love all the JB shows. Although I'm boosting for my Albi Hub.
Chris: I can't wait for that Albi Hub special.
Chris: Cheers from Mexico to my known postal code multiply by 10. Oh,
Chris: my gosh. Another postal code.
Wes: Whoa. I'm going to have to get out the analog mechanical calculator for my men.
Chris: You take the 3,600 and then you multiply it by the 10 and you have well it would
Chris: have been a really great boost but you also have his zip code I don't know if you've got oh okay good,
Chris: There you go. Careful. God, careful, please.
Wes: I know, sharp edges.
Chris: I don't get workers' comp. Could you imagine trying to explain that?
Chris: Yeah. Telling the doctor, how'd you get this injury? Well, you see,
Chris: my buddy Wes was unfolding this map because somebody boosted in their zip code. Yeah, that, yeah.
Wes: Yeah. Okay, I believe I have located, I had to do some scanning.
Wes: I got my paper cut myself here on the, on the stupid meat slicing module.
Wes: But this would be a postal code in Guanajuato where it is in Mexico where it's
Wes: a pleasant 77 degrees with less wind at 11 miles per hour.
Chris: That is great.
Wes: Also from the east though. We're getting a lot of east wind today.
Chris: Thank you. Thank you and it's nice to hear from you out there.
Chris: I love it. We're getting some around the world boosts.
Wes: Thank you for listening. It really makes us feel special.
Chris: Yes and taking the time to get the boost stuff set up. I know it can be a bit
Chris: of a journey and I'd love to see how many of you are taking on the LB Hub Challenge
Chris: because you really get a sense.
Chris: You get a sense of what the challenges are, but then it starts to click too
Chris: the more you use it. And then, of course, thank you everybody who streamed sats
Chris: or boosted under our 2,000 sat cutoff.
Chris: We did have 28 of you stream sats as you listened, and you collectively all
Chris: together stacked 23,876 sats for the show.
Chris: When you combine it with our boosters, and of course we had that baller boost
Chris: that brought up our average, our total stats for this episode,
Chris: episode 640 of your Unplugged program, stacked 203, $1,639.
Chris: Thank you, everybody.
Chris: If you would like to support the show with a boost, Fountain FM makes it easier,
Chris: and it's going to get even easier really soon. Not that I know, but I'm just saying.
Chris: Also, you can set up an Albi Hub, and then there's a whole ecosystem of applications
Chris: you can plug it in and boost the show with open source money.
Chris: A huge thank you to our members, our Jupyter Party, and our core contributors
Chris: who put that support on Autopilot and support us every episode.
Chris: You are our foundation, and we appreciate you.
Chris: Details at linuxunplugged.com slash membership.
Chris: All right, gentlemen, we do have some picks before we go. And one of our first
Chris: picks is from the community.
Chris: Sultros now has Sultros OS and a website. His Immutable Linux is designed for
Chris: gaming and development.
Chris: He's got a couple of release tracks now, an LTS that follows Fedora's stable
Chris: releases, and then an unstable that tracks upcoming features,
Chris: you know, beta, alpha channel stuff, with still some guardrails in place.
Chris: And it has a beautiful website. Now, he's really, I think, really knocked it out of the park.
Chris: And I tried this for a little bit on my Knicks book and loved it.
Chris: He's got a cosmic version, plasma version, Gnome, and a hyper-vibed Hyperland
Chris: version coming very soon.
Chris: As well as a plasma big screen and enlightenment yeah that.
Wes: Is this is becoming a full-time thing it sounds like.
Chris: It is he's also working on the server edition,
Chris: Uh, I mean, wow, really watching them go here. It's really something.
Chris: So check it out at Soltros. That's S-O-L-T-R-O-S dot dev.
Chris: It's pretty neat to see one of our community members working on something like
Chris: that and watching it grow.
Wes: Nice looking website too. This is slick.
Brent: I echo that.
Chris: He's done so good.
Brent: Six out of five.
Wes: I think, I mean, I think this is ahead of Hypervibe now and I don't mean to
Wes: be, you know, I mean, I feel a little personally responsible because I've been
Wes: helping, but Soltros OS for the lead.
Chris: For sure. Definitely. Okay. Now a couple of different picks.
Chris: To help you do the same job, depending on the scale that you need.
Chris: The first one we're going to mention is Parabolic.
Chris: And Parabolic lets you download Vidya and Adya from the web.
Chris: And it's a nice graphical front end to the YouTube DLP client.
Chris: And it gives you some options and features, also helps you support multiple
Chris: downloads at the same time, makes it really easy to pick if you want an MP4
Chris: or a WebM or an Opus or a Flack or whatever it is that they might have.
Chris: And it also will help you grab the metadata and subtitles if you need that for the video as well.
Chris: And it's available as a package, and it's also available on Flathub. It's called Parabolic.
Wes: That's the part that stood out to me, is the sub. Not all of these tools make
Wes: the subs and that kind of stuff super easy.
Wes: So this seemed like, I mean, you don't have to be like me, who constantly runs
Wes: YTDLP from Nix packages on Stable without even caching it locally.
Wes: So if you want an easier time, use Parabolic. Plus, isn't that a cute name?
Wes: I know it's a little silly, but just like a parabolic dish. It's like receiving
Wes: all of your content from the internet. I like it.
Chris: Good icon too. Makes for a good icon. And it's GPL 3. So nice and easy.
Wes: Mostly C++. We don't get too many of those, but there you go. Should be fast.
Chris: Interesting. Now, so that's on the desktop scale. Maybe you're a little more
Chris: industrial scale on your needs here.
Chris: And this is where, and you can tell what they're trying to invoke with this
Chris: name, YouTube R or UTAR comes in.
Chris: It's a self-hosted web app that automates downloading, organizing,
Chris: and scheduling YouTube channel content with support for Plex,
Chris: Cody, Embi, and Jellyfin info. And, um...
Chris: I think what stands out to me is unlike Pinchflat, which I use for a similar
Chris: task, you could have a web UI on your network and you could just grab one-off
Chris: videos or you could do automated stuff.
Chris: And it can do channel archiving. There is also, I think, a really nice option
Chris: here for parents that are trying to curate the YouTube experience for their kids.
Chris: There's some family-friendly curated options in here that I think are a really great option.
Chris: And then you just play the videos back through Jellyfin or Plex.
Chris: And they never go on YouTube.
Chris: And it is designed to download all of the extra info you need so that way you
Chris: have all of the nice-looking display in your media player of choice.
Chris: It's a really, really nice UI, too. I think the UI is top-notch.
Wes: Pinchflat's pretty great, but it does work a little better as sort of infrastructure
Wes: where it's like, well, I know I have these channels that I always want you to
Wes: populate, whereas this does seem a little more friendly for ad hoc stuff that maybe you want to grab.
Wes: A couple of videos you don't want to follow them, you don't need to download
Wes: all the last three weeks, that kind of thing.
Chris: Yeah or maybe like one live stream you know is coming up and you want to grab
Chris: it yeah this is great for that this will do that so it's U-T-A-R-R Y-O-U-T-A-R-R U-T-A-R,
Chris: and did I grab the license for that one I made a note of it's.
Wes: The I-S-C license.
Chris: There you go. I did not make a note of it, but thank you for grabbing that.
Chris: Yeah, it looks like it's a lot of JavaScript and TypeScript,
Chris: and then a little bit of Docker and a little bit of ShellScript.
Wes: Yeah, they do have some Docker Compose example files, so that's probably the
Wes: easiest way to get started if you do want to give it a try.
Chris: Indeed. We'll have links to that in our show notes. Again, linuxunplugged.com slash 640.
Chris: Now, if you made it this far, you might already know, but Wes,
Chris: we have some pro features for people that maybe they're going to revisit an
Chris: episode or maybe there's a topic they want to replay or a topic they want to
Chris: skip, we have it already for them,
Chris: either in the podcasting 1.0 client or even more so in the two clients. Tell them all about it.
Wes: Yeah, that's right. We use the Apple-approved podcasting 2.0 tags in our feed,
Wes: and that means we have both transcripts and chapters.
Wes: So chapters for the high granularity, skip around at the high-level content,
Wes: transcripts for when you want to know exactly what we said and when we said it.
Chris: So the reference Wes is making there is Apple announced they're adopting yet
Chris: another podcasting 2.0 feature, which I think this is like the third one that they've onboarded now.
Chris: And so the chapters and the transcript standards that we have been using now
Chris: for a couple of years are being adopted by one of the largest podcast clients in the world.
Chris: And all of our episodes for the last few years are just going to have all of that information.
Chris: They'll just be turned on for Apple podcast listeners when they get their app updated.
Chris: And there's a bunch of great apps, new podcast apps, if you want to switch to
Chris: a 2.0 app, so that way you can listen to us live and you get all the stuff Wes
Chris: was just talking about and instant updates when we update.
Wes: Expect more from your podcasts, from your podcast apps, and from your podcast
Wes: feeds. We can do better. And we try every week.
Chris: We try. We'd love it if you joined us live next Sunday. We'll do it live.
Chris: It's a Tuesday on a Sunday at 10 a.m. Pacific, 1 p.m. Eastern.
Chris: All right, everything we talked about today, linked at linuxunplugged.com slash 640.
Chris: Mumble Room info is over there. Matrix info membership, contact,
Chris: all of that. Thanks so much for joining us. See you next week.