(0:14) Hey there, and welcome to episode 11 of the IT Guy Show. (0:18) I'm your host, Eric, the IT Guy Hendricks. (0:19) And today, I'm really excited about the topic because it's one I don't know anything about. (0:25) A lot of times, I've done a bunch of research or I've or I've worked with the technology before, and I just wanna take what I've learned and and pair that with with someone I'm interviewing. (0:34) But today is not that kind of a show. (0:37) In fact, I know next to nothing about Nick's OS except for the fact that it's been gaining a ton of traction in a lot of the same watering holes that I I spend time in from other podcasters, from a lot of self hosters. (0:49) So I knew next to nothing about NixOS except what I needed to know to get ready for today. (0:53) So it's gonna be fun because you, the audience, and I will get to learn about Nick's OS a little bit bit together. (0:59) So to do so, joining me from from his home lab is Aaron Honeycutt. (1:04) So let me bring in Aaron, and, welcome to the IT guy show, my friend. (1:08) Hey. (1:09) Thanks for having me, everybody. (1:11) So Aaron and I go back at least fifteen years. (1:14) We went to it was a Gnome developers conference in Denver, and he was kind enough to open up his home. (1:21) And I did some social media for the Gnome Foundation, but my goodness, that's been over ten years ago. (1:27) It's been it's been a while. (1:31) But, for those that haven't had the pleasure of of knowing you all that time, why don't you introduce yourself? (1:36) Tell us what you do. (1:37) And and, of course, fan favorite question, what do you do when you're not when you're not working? (1:41) What do you do for fun? (1:42) I'm Aaron Highcutt, a flight software engineer or developer at a company, York Space Systems. (1:50) And then off my off time, I either three d printing stuff or playing games or messing with my home surfer and adding to it. (1:58) It's the mess. (2:00) So typical typical self hosting nerd. (2:03) Your Yeah. (2:04) Downtime is spent doing the the same kind of stuff you do in the daytime. (2:08) Probably. (2:09) Yeah. (2:11) So you you reached out and said that that Nick's OS was something that I should know about. (2:15) So how did how did you come across Nick's OS? (2:19) I think it was a coworker at Systems76, I think, what kinda started it. (2:24) Think it's it all blends together at certain points when That's right. (2:28) All the configuration files and everything blends together. (2:34) Okay. (2:35) So so give giving me the the the couple of minute elevator pitch, how how would you describe Nick's OS to a traditional Linux user? (2:43) Traditional, if you're kind of the person who uploads their dot files, like GitLab or GitHub or something like when you wanna restore configuration, you just copy and paste them over. (2:54) The issue, at least what I was trying to do with Plasma, was, like, the configuration would be all over the place. (2:59) One setting for, like, theme would be in this file, window sizing and stuff would be in this file, just all over the place, versus you could just define it in one or two files. (3:09) I do it in three, one the flake and one the configuration, one's the home. (3:13) But you could just do any user configuration stuff just in that one file. (3:18) Any shell changes, aliases, programs you wanna start, anything like that, loading your SSH keys like that in one file. (3:26) It's awesome. (3:28) Yeah. (3:28) And I was I was one of those dot file configuration savers on GitLab for a long time. (3:34) I moved to, Ansible for the most part, but it works great on the server side and for a lot of the back end administration. (3:41) Customizing GNOME or Plasma settings is something that I've wanted to dive into, but, like you were saying, it's it's kind of all over the place. (3:47) So it's it's a bit of a nightmare. (3:49) And at some some points, it's just easier to to have a a text document with with screenshots that say click on this button, unclick this button, just be done with it. (3:58) Yeah. (3:59) Pretty much. (4:01) Been there. (4:01) How does how does Nick's OS differ from traditional distributions in terms of package management? (4:09) Generally, you have, like, static names of things that they can libraries can overlap each other. (4:14) It's kinda one of the bigger issues with upgrading is that they'll spec one library, one library is actually not there or it's already there, and there's a newer version that this package needs this version. (4:23) This package needs this version, and there just ends up being this weird dependency tree issues from what I've seen. (4:30) Next, everything should store to the next store, and then the package version every package's version itself with a unique hash at the end. (4:38) So in theory, you could have a modified version of Python 1.313, and then an mod o g original from the source version 13. (4:49) 13. (4:50) But they'll be completely fine in the store as is because they have a separate hash at the end, so they're be unique enough. (4:56) So it's it's not using containerization. (5:00) Is it using some sort of library isolation? (5:04) It's there's a lot of library sharing between them. (5:06) I don't think it's in that central idea now. (5:09) Gotcha. (5:10) That's that sounds really cool, and I'm I'm all for anything that makes my builds an idempotent. (5:16) Where where would you say NextOS shines the most? (5:20) I've particularly been enjoying it for getting quickly set up on new environments, particularly. (5:26) Like, I just copied my configuration over rebuild, and I have everything that I need. (5:30) Even with WSL in my workplace right now, I'll just copy my home file. (5:35) I'll have GNU make. (5:36) I'll have auto tool stuff. (5:38) I'll have Rust stuff, Cargo, all that stuff already prebuilt out of the box once I copy my home file or home NICS file and then rebuild. (5:47) It's that that's really appealing because someone who ends up rebuilding a system or changes desktop environments or moves from a laptop to a desktop, it'd be nice to be able to port my environment and the tools that I use from one to another. (6:01) That brings up an important question though. (6:03) What is the what what what is sort of the learning curve? (6:08) I mean, I I'm familiar with Ubuntu. (6:10) I'm familiar with Fedora. (6:11) I've run Arch in the past BTW. (6:15) So what what is what is sort of the onboarding, the the new user experience look like? (6:21) Originally, when I said it'd be very similar to Arch where you had to partition everything, do the installer and everything. (6:29) Since then, it now has its own installer from I think it's, like, the it's a similar the universal installer that a lot of other distributions are using. (6:39) Calamaris installer, so you could just go roll with their thing. (6:42) In the general installer, it will let you choose your desktop that you want. (6:46) You can always just change it later, drop in the configuration file that you have of your changes, and then rebuild, and then you have your stuff. (6:53) So it's, like, similar. (6:54) Like, I had a bash script that would just I run on new installs, install packages, set up aliases, and stuff like that. (7:01) But instead, I just drop one one or two files in there, run the rebuild command, and I'm set minus file resyncing for, like, keys and stuff. (7:11) I see. (7:13) Do you have any tips or tricks for for people just getting started? (7:16) I probably, from the get go, use the installer and just kinda let it do its thing with its partitioning everything and just till you get your feet wet with it, and then probably move on to, like, what I'm doing, like, using custom partitioning and stuff for the most part. (7:31) I imagine that Nick's OS would lend itself well to a virtual machine. (7:34) It might be a good place to to get started. (7:36) It uses sort of a Nick's OS development environment to try out different configurations, run through the installer a few times before you commit it to bare metal? (7:44) Oh, yeah. (7:45) Yeah. (7:46) Funny you say virtualization. (7:48) The NextOS rebuild command actually has a VM option, which takes your configuration that you have and then makes a VM and starts the VM. (7:55) So you can actually see if it boots and everything before you reboot your system. (8:00) Nice. (8:01) That that's very comforting. (8:02) There's nothing like, spending all this time building an a nice automated installer and hitting reboot, and then just nothing. (8:09) Just that one little underscore in the top left hand corner of your screen, and it's like, well, there was seventeen hours down the drain. (8:16) That's that's terrific. (8:18) Yeah. (8:19) When you do the regeneration, when you do the rebuild, it actually makes a new generation. (8:24) And when you reboot, you'll have that as the first option, and then you pick that. (8:28) If that doesn't boot, you just reboot, go down the list until the before you make those changes too. (8:33) Gotcha. (8:34) So it it gives you the the ability to to roll back fairly easily then. (8:38) Mhmm. (8:39) It has rolled back most into the packaging. (8:43) So is is that one of the reasons why Nick's OS has been, seeing an increase in popularity? (8:48) It seems like everyone's moving towards less RPM transactional to to more. (8:55) I I mean, we've had it on phones and mobile devices for years where you download a full new installation and then be able to roll back to the old one if you need to. (9:04) Yeah. (9:04) Even CMOS has proven that it's the most popular method of the AB update system. (9:08) Google's, like you said, has been doing it. (9:10) Now, Steam's doing it with seamless. (9:11) You have two copies, so updates one in place, but keeps the other one untouched in case things go wrong. (9:17) You you mentioned Git a couple of times. (9:19) Is is that your preferred method for managing complexity within your configuration? (9:26) Personally, yes. (9:27) A lot of people just use GitHub or GitLab to host their configuration files. (9:31) I usually use git I use GitHub now. (9:34) I use it I was moved to GitLab. (9:36) I was using GitHub before and then keep a copy on my own Git Fortro instance. (9:41) Makes a lot of sense. (9:45) How how do you manage the, complexity sprawl? (9:49) I generally have the most installs to just do the configuration file. (9:53) That's where the entire system is defined. (9:56) I have most of my stuff in there as well, but I have a home dot nix file, which is just from my user itself. (10:02) And then I've seen other people, and I'm also doing this where I just have a host file, which has configurations per system. (10:11) So, like, for my laptop, I'll need a newer kernel to bring the video support and stuff and hardware acceleration stuff. (10:17) I'll have that just update to the newest kernel, the keyboard configurator from system 26 because it uses this keyboard. (10:24) And then on my on my desktop here, I'll have, like, Steam and stuff preloaded, development tools and stuff preloaded on that one that's not in the general configuration. (10:32) So it's a lot like using nested playbooks in Ansible. (10:37) Like, I had one main playbook that I would run against my environment. (10:41) And within that playbook, there would be a playbook for my user account. (10:44) There'd be a playbook for installing server side applications. (10:48) There would be another playbook for, say, laptop side that would include things like NVIDIA drivers and and Steam, whereas I don't need that kind of stuff on the server side. (10:57) So I could nest those roles and based on tags and and and different procedures, run specific playbooks against specific targets. (11:07) Yeah. (11:07) If you just you take I just take the general configuration then have it a little there's an import at the beginning where imports the hardware configuration file, which defines, like, partitioning and everything drives and stuff. (11:18) I just import my configuration. (11:20) Like, my desktop's called Shepard. (11:21) So I'll just import shepard.nix, and it'll import that, and then it'll add seam and Keyboard Configurator and anything else that's desktop related to that. (11:29) And laptop will be the same. (11:31) It'll import its scarce configuration, and it'll just have the keyboard feeder, but not Steam, then a couple other mobile things that I will need on the go versus things that's at home. (11:41) Gotcha. (11:42) That's really cool. (11:45) So if I'm not mistaken, you're one of the contributors to next OS nowadays. (11:48) What what kind of projects are you working on? (11:51) I have been contributing some of the Cosmic desktop packages to next, And then helping approve those, they added me to the Cosmic DE team on there. (12:02) And then I'm trying to get one of my pack my personal projects packaged as well. (12:06) So for those that aren't familiar, could you tell us what, the Cosmic Desktop is? (12:11) Cosmic Desktop is a gnome it's a similar, like, the gnome or Plasma. (12:16) It's a desktop that a system 76 is making all in Rust to replace gnome for their their operating system. (12:25) Yeah. (12:25) A lot of, lot of Rust changes, like sudo now has a Rust version in some of the newer operating systems. (12:33) Yeah. (12:33) CoreUtils, I think, replaced, there's a Rust based CoreUtils, I think, got replaced in development for Ubuntu twenty five ten, I think. (12:41) That sounds right. (12:42) I I think that's where I was hearing that. (12:44) But, yeah. (12:45) Very interesting to see how much Rust is taking over the, the Linux core. (12:51) So let's let's kinda talk we we've kind of done a high level flyover. (12:55) Let's let's get a little bit deeper into the weeds now. (12:59) So there's there's these concepts of NICs, NICs packages, and flakes. (13:04) So so what are these, and and how do they, how do they interact with each other and with the system? (13:10) So, generally, Nix is the package manager. (13:13) There's a lot of confusion there. (13:14) It's like Nix the package manager, Nix the programming language as well, which what the Nix packages are written in technically. (13:21) And then mixed packages, n I x p g p g x, is the actual repository for mixed packages that the OS uses. (13:29) Or if you're just using the package manager, like, run, you're pulling it from the next packages repo. (13:35) Like, if you wanna pull in Python three, you'll just pull from that repository. (13:40) Or you could pull from locally, but that would be the general Chris. (13:44) Yes, sir. (13:45) So are there any good GUI or beginner friendly tools you might recommend for starting to work with these different packages? (13:53) There's I think it's called NIC Software Center. (13:56) I don't know how much in more development. (13:58) It's also Rust based, funny enough. (14:01) It was part it's part of the Snowflake OS project, which is kinda trying to bring beginning intro to Nick's OS and have a GUI to, like, install software and edit your configuration file and show the option stuff that you can use in a GUI format versus just a text file and running the rebuild command from there. (14:20) So I would check that out too if you're wanting to see. (14:23) It's an alpha right now, but that that's the goal is of making it more easy to approach to NextOS. (14:29) Well, in in typical Linux fashion and open source fashion, next OS is being developed open via open source. (14:35) So what's great is if you try out one of these alpha projects, if you try out the software center, you can go and make comments. (14:41) Or if you're handy on the command line or a developer, you can go out and make contributions, which really makes it nice to to be able to help develop an operating system, especially one that has so much momentum from the community behind it. (14:57) So maybe I should have led with this, but where does next OS really excel? (15:00) I mean, is it is it something I put on my desktop? (15:03) Is it something that I'd run on the server? (15:06) Probably wouldn't wanna containerize it, but where where does it really excel the most? (15:11) I've been using it on all of the above, personally. (15:15) There's even a mobile NICS OS project Okay. (15:19) For running it on various phones. (15:21) I think I think my OnePlus six is one of them. (15:25) I've been really enjoying it as a home server configuration management. (15:30) So I could just run each NICS file itself as I'm running this service. (15:34) This is a service a, service b, service c, and I just turn off this service from here. (15:39) It has all the options that, hey, my files are here. (15:43) I need these packages to enable, excuse me, video encoding. (15:48) I need these packages, set up password authentication, like that. (15:54) So it really is a kind of a Lego kit for an operating system. (15:57) You can kinda pick and choose what modules and pick and choose what libraries you wanna install. (16:01) That's that's really cool. (16:03) So, normally, this would be the part of the show where I ask what what sort of weird or fun projects you're working on. (16:09) But as a as a quick tease to the audience, one of the things I wanna do is get more hands on with with some of the content that that I'm producing. (16:18) So Aaron has very graciously agreed to record a companion video with me where we take kind of a tour of Nick's OS and Aaron's own home lab. (16:28) So if you're catching the audio version, make sure to head over to my you YouTube channel and subscribe. (16:33) I know shameless self promotion here. (16:36) But I I've I kinda got a sneak peek during during the preshow of Aaron's home lab and and some of the projects that he's working on. (16:43) So definitely go check out the YouTube channel. (16:45) There'll be a link in the show notes for for that video. (16:48) If you're watching this on YouTube, it should be attached to this to this channel as well. (16:53) So definitely check out check out that companion video. (16:56) Aaron, is there anything you wanna tease about what what what we're gonna cover in in that video? (17:02) I have a couple of services running, like, as general replacement for, like, Spotify, YouTube music, replacing, like, Plex and stuff. (17:10) And so using Plex instead of Google Photos, have our service running for that. (17:15) Kinda stuff like that, like, just taking it all back home, and I manage the data instead of anyone else and having little copies and everything. (17:24) As someone who just resubscribed to a number of different projects or number of different products, subscription services, that's that's very appealing to me. (17:32) In fact, in 2026, I'm kind of hoping to launch a devendor kinda sort of devendorize my my home lab again. (17:42) I I got away from that slowly and painfully over the last few years. (17:46) And the the last time I paid one of my big annual subscription fees, I was like, this this is ridiculous. (17:52) You know how nice of a server I could buy with what I'm spending and how cheap storage is? (17:58) And what I'm what I'm hoping to do is, like, half of what I'm paying in subscriptions, reinvest my own infrastructure, and the other half, do donations for some of the key projects that we're using here in my home. (18:09) So definitely stay tuned for that. (18:11) I might have to have Aaron on again to talk about some of the some of these home lab projects. (18:15) But so definitely check out the companion video for this episode. (18:19) So in the meantime, where is NICS going? (18:21) What what's some of the current release things we should know about, and what of what what future goals does NICS OS have? (18:30) Well, Nick's packages is getting very close to 1,000,000 commits, which is Oh, wow. (18:36) That's awesome. (18:37) Pretty wild. (18:39) I think the latest release of twenty five zero five, I think they marked as having over 120,000 packages. (18:48) Wow. (18:49) Literally, it's it's literally bigger than, I think, even Arch with AUR at this point. (18:58) It's one of the big things in just having more options for these packages with every single release. (19:08) Gotcha. (19:08) So any any resources that you wanna point people to? (19:12) Docs, communities? (19:14) The I think the Nick's OS Discord is mix of unofficial official, but it's pretty active from what I've seen of it. (19:24) Next dot dev is, I think, kind of more of the official documentation they're trying to get for, like, getting started with, either Nick flakes, Nick's stuff, generally using it in developer environments, stuff like that, or it's good go tos. (19:43) I am sure that a project with that many commits and that many packages can always use more help. (19:50) So as as always, please, if you're in the audience and you're looking for a project, consider NICs OS for for doing packaging, doing coding, getting involved with the community. (20:00) There there's nothing like like the online family that that a lot of us build in different communities. (20:07) Alright. (20:08) So give me give me your best sales pitch. (20:12) Give me, give me that couple line, reason why I should try next OS today. (20:23) Definitely, the configuration management take taking out of that equation is very much has been a very appealing thing. (20:31) I got to the point where I wrote my own installer before they had the official installer to try it out. (20:37) And I've just been really enjoying just writing down, hey, services.servicename.enable equals true and get that surface that I need to run some configuration here and there for depending on what you're doing, but that's about it. (20:51) Just adding, hey. (20:52) Need this package, add it to the line, update update my GitHub or GitLab, and then now next time I need it, it's already there. (20:59) I've been using the crap out of it for personal projects, generally the flakes personally. (21:05) So I guess go into my repository and, like, say, I just reimage this with Ubuntu. (21:09) I installed next package manager. (21:11) I clone my repo. (21:12) I run next develop. (21:14) It downloads everything. (21:15) I have cargo. (21:16) I have our analysts, all that stuff out from the get go. (21:19) I exit it. (21:20) I no longer have it because I don't need it. (21:22) I'm not developing. (21:24) Has been kind of a lot really helpful and enables me to you show you saw me run this a little bit, I guess, of a sleep peek for the after show or second show. (21:34) Alternate ending is what we called it. (21:36) You could just do next run, get lab, the where you're hosting it, your name, and the project name. (21:42) Because it has Flake, I could just run the service from anywhere that has next installed. (21:48) Like, I don't even have to install it, or it doesn't have to get packaged or anything. (21:51) Just the Flake provides that. (21:53) Oh, that's so cool. (21:56) Well, is there anywhere you'd like to send folks to follow you and, and your, ongoing adventures? (22:01) Probably the Mastodon, I think I linked somewhere, and then my personal dot honeycut. (22:05) Family. (22:07) Those are the main places I'm at other than Discord and stuff like that. (22:11) Typical stuff. (22:12) Yeah. (22:12) Well, we will make sure to put Erin's, contact information in the show notes as well along with some some additional resources. (22:19) So that's going to, that's gonna conclude our official episode, but definitely appreciate you all tuning in, catching us on audio or on video. (22:29) This has been a quick look at Nick's OS, and definitely stay tuned for the follow-up for this episode. (22:34) We'll I'm really looking forward to Aaron kind of walking me through his home labs, some of the projects, and getting a chance to see how the the flakes and the configuration and all this kind of interact. (22:44) So definitely check out the YouTube channel for that. (22:47) Coming up in two weeks, we'll be we'll have our next episode. (22:51) I'm going to be talking with Joel Kruswick, who up until recently was the CTO for federal not really sure what his title was. (23:00) It was long and impressive, but he was basically the CCO for federal customers for GitLab. (23:06) So he was actually a former manager of mine and a and a good friend. (23:11) And so his life is going in an exciting direction, so we're gonna catch up with Joel and see what what he's up to. (23:17) But also to kind of talk about the differences between working in the public sector versus working in a government job. (23:23) So lots of experience, very wise, very very big influence on my life. (23:28) Really excited to be interviewing Joel here in a couple of weeks. (23:32) So, yeah, the former federal CTO for GitLab. (23:35) So all that said, make sure to like this. (23:38) It really helps get the get the word out and grabs the attention of people like Aaron who will then come on and say, hey. (23:44) If you haven't tried this, try it now. (23:46) So really looking forward to to seeing where this goes. (23:50) Glad to be kind of in a good solid release cadence. (23:53) So if you haven't yet, make sure to subscribe because we'll be doing more episodes. (23:57) I've got episodes planned through the end of the year and hopefully some additional extras things like Aaron's Home Lab. (24:02) So with all that said, thank you all for joining us. (24:05) And on behalf of my guest, Aaron Honeycutt, and myself, Eric, the IT guy Hendrix, thank you for joining us, and we will see you next time.