LINUX Unplugged - 549: Will it Nixcloud?
Episode Date: February 12, 2024Deploying Nextcloud the Nix way promises a paradise of reproducibility and simplicity. But is it just a painful trek through configuration hell? We built the dream Nextcloud using Nix and faced realit...y. Special Guest: Alex Kretzschmar.
Transcript
Discussion (0)
Well, we're just thrilled to congratulate and welcome a new family to the Fedora project.
It is the Fedora Atomic Desktops.
I think this is actually a great move.
A lot of times we'll talk about silver blue or silver blue-like spins from Fedora.
There hasn't been kind of a catch-all term for these.
And immutability isn't quite the right phrase either.
They write on the FedoraMagazine.org,
some may note that this is more of a reintroduction.
Project Atomic started 10 years ago with the development of Atomic Host.
As the team stated back then, quote,
the Atomic Host comprises of a set of packages for an operating system
pulled together with RPM OS tree to create a file system tree
that can be deployed, updated as an atomic unit.
So it's more really about how it gets updated and those updates get implemented than
the mutability of the system. And so you have a class
of distributions that kind of fall under that. And so they wanted to
adjust their branding so that when more spins come along, it all makes
more sense. Like maybe you might have a cosmic spin, right? So you'll have
for example, instead
of Fedora Sarisa or whatever it was, it's going to be Fedora Sway Atomic. Or instead of Fedora Onyx,
it's going to be Fedora Budgie Atomic. Yeah. Okay. Now that I've seen it, it does feel like we
probably did need a name for this kind of thing. I mean, already you kind of wouldn't know that
Silverblue and Kinoite were necessarily trying to accomplish similar things.
Right.
Now, they are going to keep the Silverblue and Kinoite branding just because people are pretty familiar with those.
Yeah.
But the other projects, Sway and Budgie, agreed,
since they were early enough,
that they should probably just adopt this new branding.
And new spins, like, seriously, if we see a cosmic version,
it'll be Fedora Cosmic Atomic.
And then you'll know that you can grab that and have atomic updates to your system.
It also has the nice side benefit that it feels like you're playing Fallout.
Hello, friends, and welcome back to your weekly Linux talk show.
My name is Chris.
My name is Wes.
My name is Brent.
And my name is Alex.
Hello, gentlemen.
Yep, we got a special crew this week to dig into a brand new episode idea we've come up with, Will It Nix?
The idea being take something that might be complicated traditionally to deploy, or at least complex,
and see if we can't make it reproducible and simple with Nix,
or at least, at least, see if the Nix way might be better or not.
We'll compare and contrast the two, then we'll have some great boosts and picks and more.
So before we go any further, let's welcome our Mumble Room Time Appropriate Greetings
virtual lug. Hello. Hello. Thanks for joining us. I hope you brought your next clouds.
Yeah, yeah, I hope you brought your next clouds. So this episode is brought to you by Tailscale.
So go say good morning to Tailscale by going to tailscale.com slash Linux unplugged. You know,
I am done with putting my services on the public internet.
Seriously, like when we deploy stuff now, we're just deploying it on our tailnets.
Not only does it let me experiment with more types of software that might not be ready
to go on the public internet, but it just makes a lot of the security trade-offs a lot
less of a trade-off.
It is the easiest way to connect your devices to each other wherever they might be, secure,
remote, and it is
super fast you can get tailscale going up and running on your devices in just minutes and it's
protected by oh my god that's right the noise protocol it's pretty great go support the show
and try it free on 100 devices by going to tailscale.com slash linux unplugged okay so before
we get into this new will it Nick segment, I got some questions for
the audience I want to put out there. I have been trying to come up with some kind of tiered storage
solution that ages data that you don't use very often to a longer term storage, and maybe with a
threshold where you set six months or a year, and then in the background, it's sneaky, moves that
data to something cheap. Maybe it's cloud storage. Maybe it's another computer on your network.
So just to make sure I'm understanding, right, you're not looking for like a fixed tiered system
where you kind of, you know, you already have pools that you're managing. You want something
that is smartly rearranging stuff, making more room on the local storage when you kind of stop
using stuff. Yeah, you got it, but with one really big caveat.
The applications and the OS might not even be aware it's happening.
So say Jellyfin were to scan the file system,
it would see maybe an 18-gig MKV file,
even though in the background that's been a sneaky move to some kind of slower, cheaper storage.
And kind of the really rough equivalent would be like the Dropbox Smart Sync feature
where it tricks your file system into thinking that the file is there
and then when you go to access it, it actually pulls the file down.
One moment.
Yeah, and then you just wait while it pulls the file down.
And I think the reason why I'm looking for something like this
is because if you look at media collections and photo collections
and all these kinds of things, like a lot of these things you access infrequently.
Some of it you access frequently and other things very infrequently.
And it would be nice to just age those out over time but then not have to actually manage that and not have to split your library up into multiple libraries, say, in Jellyfin.
Right.
You want one sort of universal view of it.
Yeah, if possible.
You want one sort of universal view of it.
Yeah, if possible. And our friends over at 45 Drives have something.
It hasn't been updated since December 7th of 2021.
But they have something called AutoTier.
And it is a pass-through fuse file system that does intelligently move files between storage tiers based on frequency of use, file age, or fullness?
Tier fullness.
Oh, tier fullness.
Okay.
So when you start filling up the disk.
It's called auto tier, and it seemingly would kind of do this job, but there has to be another way.
One wonders if perhaps BcacheFS could have a solution for this.
I know that's something you kind of teased, Wes, but it's not exactly what I'm looking for.
I think we got to at least try AutoTier, right?
This looks neat. Maybe.
Maybe. I'm putting the request
out there. People boost in with how you've solved this
problem. We'll test it with Brent's data. Don't worry.
That's fine.
I don't
know. Because what I'd really love to solve
is spend more on your your like maybe you have
eight terabytes of solid state storage and that's your most frequently accessed stuff and it's super
fast and then you have 20 or 40 or whatever it is of slower storage that you know if you don't play
that movie for a year or you don't access that iso or that drone video you created two years ago it just slowly migrates to the slower cheaper storage does seem like it'd be
nice if you also expose sort of the stats for you on when you did access your files like maybe be a
nice way to sort of surface stuff that you either do want to leave or you maybe just want to get
rid of entirely yeah that's true you could look at this and be like well okay i actually never
opened it bro yeah it's like when you move and leave things in the box.
Yeah, exactly.
So what would be the trigger?
Would it be a last modified time?
Because when you read a file, it doesn't leave a trace that you've done that anywhere, does it?
So something would have to be watching every process all the time to say, hey, I've read this file recently.
Yeah, I think that's where AutoTier uses the fuse layer
so it can track the rig.
Oh, I see.
Ah, yeah, okay.
That's interesting.
Maybe IO Notify also would do that.
Is there an eBPF hack involved?
Not yet.
I'll tell you what comes to mind for me is MergerFS.
You could very easily have different types of storage
unified under a single mount point.
Now, what you wouldn't
get with that is the automatic moving of files based on how how dusty and crusty they've gotten
sat in a corner but you know i have a zfs mirror that handles all of my important data alongside
a jbod array of disks that is formatted with XFS on each individual drive.
MergerFS groups those together so I've got a single mount point,
and all I have to do is know which directories live on which tier.
So, I mean, you could do a prefix or whatever you wanted to do
to the folder names or whatever, however you wanted to organize it.
And the nice thing about MergerFS is that you could add and remove drives
usb drives would count and could automatically be picked up and that kind of stuff so like in
terms of the tools that are already available and tested like merger seems to me to be the the mvp
that crossed my mind and i was going to ask you how would that look say from a library standpoint
if because what i'm trying to get is like a unified almost jellyfin large do you say
where uh i wouldn't have to separate out well so like folders like because you'd still think
you'd have to have folders for the older slower stuff maybe you can add multiple folders to the
same library right so you could have a an old and a new so i've actually done this fairly recently
myself with uh i have a staging movies library where where all the new stuff that comes in that's honestly, frankly, not worthy of keeping around.
I just call it movie staging.
And then anything that's actually any good, I will just manually copy across that folder.
Huh.
I like this idea.
I could do that.
That's fine.
Yeah, because it's not like we're talking about a volume of input that is unmanageable for us like we're talking media and it could be media we create
here at the studio or it could be media that you know it's backed up you might even have some easy
sort of scripting things where you're like okay i know that in general this you know anything older
than this maybe i've been reading it i can always bring it back but just in general flush this every
so often i got this idea from my good lady wife who reads ferociously yes and she has a bookshelf full of books waiting to be read and she just
calls it the staging bookcase and anything that's worthy of keeping goes on to a separate bookcase
elsewhere and that's like the collection and then anything else that's no good goes to the book box
yeah that's a great system actually because you can't keep everything that's no good goes to the book box. Yeah, lovely. That's a great system, actually, because you can't keep everything.
That's just – you just bury yourself in storage.
All right.
Yeah, if you've got a solution too, I like that one.
If you've got one that's burning a hole in your pocket, please boost it and let us know.
And then here's a second question before we get into it.
I really don't have a read on this.
I'd like to know your opinion on this too, Alex, and you, Brent.
I'd like to know your opinion on this too, Alex, and you, Brent.
So for the last two weeks for Coda Radio, I've experimented with seeing if the Quest 3 can be used in place of the Apple Vision Pro for productivity.
Everybody's all excited, but for $3,200 less, you can get a Quest.
Yes, there is the MetaTie.
But if you think about this from an abstraction standpoint about is the technology there? And Wes and I sorted out about two weeks ago how to get the Linux desktop into this VR environment.
And it's not specific to the Quest, but the Quest is sort of the technology demo that I'm using.
There's definitely compromises, but it is doable.
And I'd just like to know if people are interested to hear me blab on about that a bit or not.
I am tempted to say not, but I thought since I have been spending the work and the time, and if anybody else is out there considering it, I'm happy to do a review.
I don't know.
Brent, do you have thoughts on that as a topic?
Well, I think as someone who isn't quite as, I don't know, bleeding edge as you are on this kind of stuff, I always appreciate your perspective on kind of all your technologies especially more affordably so i i don't know i feel like you should do like
a state of state of vr on linux every six months or something yeah i'm talking desktops you know
bringing your desktop in and using it in vr what do you think alex topic worth exploring more so
what i'm more interested in hearing about is how open the quest is versus
the vision pro because obviously with the apple thing it's a walled garden and you can only use
it in the predetermined ways that they've told you you can use it with the quest i have no idea
is it a lockdown ecosystem can you put sd cards in it can you connect hdmi inputs like what can i
do with it because there's like the screen mirroring stuff in the Vision Pro that's super cool.
Like if I'm traveling and I want a 100-inch display in my hotel room, boom, the Vision Pro is doing that for me.
Can the Quest do the same from a Linux box?
I don't know.
I would love to know.
Okay.
Well, I have answers for all this.
Spoiler alert, though.
You can sideload apps, and I have been experimenting with that,
and that is a big differentiator between the Vision Pro and the Quest.
I'd love to know what the audience thinks, too, if you'd like to hear more.
I'm not going to do it unless I hear a few other people say,
let's talk about it, because I think other people listening are going,
oh, God, VR? Please.
Although when one of the world's richest tech companies gets involved,
you've got to think something might be there.
Yeah, and I mean, I don't know. It's one of those areas where it tech companies gets involved, you got to think something might be there. Yeah.
And I mean, I don't know.
It's one of those areas where it'd be nice if Linux didn't totally fall behind.
Even if it's not for you, you don't use it all the time.
Having a foothold then would be. I will say there's only a couple of limited ways to wirelessly bring the Linux desktop into a VR environment where you can have virtual screens.
It is a little tricky.
We can talk about it.
Let me know.
And put it out there before I actually spend the time putting it all together, I suppose.
All right, ladies and gentlemen, it is time for Will It Nix?
Next Cloud Edition.
And I will make a disclaimer, as we realized as we were putting this show together,
for some of you out there, you're thinking, thinking wait doesn't Brent work at Nextcloud yes I decided to do this
and I didn't even I didn't even think about the fact that Brent works at Nextcloud this really
is more about the fact that I have complained about and so as most of the internet I'll put
some receipts in the in the show notes there's just too many ways to install Nextcloud. And unfortunately, while some of them are great, it is not clear what
is really the most optimal, depending on what you need. And it, to me, seemed like some
low-hanging fruit for this particular kind of segment. Could we come up with like a blessed
way to deploy Nextcloud?
And I mean, it's kind of directly relevant, right? Because the network has one.
Many of us have a personal one.
It's a pretty common sort of starting point
as people are trying to de-Google or explore self-hosting.
And the question we really had is,
it's about, at a high level,
there's common ways to deploy popular applications on Linux,
and now there's the Nix way.
And there's sometimes multiple Nix ways.
So what is actually the signal in that noise?
Is it better than, say, Docker Compose or something like that?
So we're going to try to compare the benefits of each method
and tell you which one we're going with.
And also I just want to address ahead of time,
it's not a Will It Ansible segment,
but Ansible can be used for a lot of this stuff too.
But because it's a Linux-focused podcast
and Nix is a Linux-first
solution, but it's great for other
platforms too, we're doing Will It Nix.
But we love
Ansible and we're glad you love it too.
And I think the next
immediate question that'll come into the show is,
guys, why not the all-in-one
Nextcloud? They've built it for you.
You just run all-in-one. That's right.
It's built. It's ready to go. It's got
some nice features like
built-in Borg backup,
Nextcloud Talk ready to go with
recording if you want, optional Clam
AV, full text
search, and they say high performance
Nextcloud Talk and Turn server, which
is also optional. This is really a
really a compelling solution
out of the box. And it's kind of, I think, maybe
the most official install method
you're going to get for installing
Nextcloud is this all-in-one. And probably a solution
that works for most people.
You know. Have any of us tried it?
Oh, you and I tried it.
Yeah, we tested it out briefly.
I've never actually run it for any
longer than a month. I don't think so.
Alex, I'd be curious to know how you're deploying NextCloud most commonly.
And I'm guessing based on, you know, our time on the show together,
I'm guessing it's Docker Compose.
It's maybe the upstream image now.
I'm not sure though.
Yeah, no, I actually compile it from source code and run it on Gen 2.
Right.
Just do it.
No, just kidding.
Just that one Gen 2 server.
Yes, yes, yes.
No, I, of course, being the Docker guy, run it in a container
and have done for many years, actually.
I've used the image from Docker Hub, the official Nextcloud image,
not the all-in-one.
I find the idea of an all-in-one container extremely concerning.
It doesn't give me anywhere near enough control
over the various pieces of data
that I come to rely on through Nextcloud.
So mine is a, I'm just looking at the source code
in my infrastructure repo right now.
Nextcloud 27, backed by a MariaDB container.
Okay.
Yeah, I think that's a really common setup too.
Wes, why don't you tell us a little bit about our setup?
I think we've done something very similar,
but we're using Postgres, I believe.
Yeah, Docker Compose setup with Postgres and Redis.
I think it's fronted by traffic at the moment.
And then we went with the S3 backend storage
for all of the actual files.
So it's a pretty minimal setup
where it just runs those containers,
the database is the main persistence there,
and then all the files are up in S3.
That S3, is that the Linode one?
Yes, that's the Linode object storage.
Yeah, you can do anything compatible.
What would you do without a cloud provider
providing you an S3 back-end, though?
That's always the trouble, right?
You want to run it locally, same.
If we weren't in the cloud, we'd probably just have a box that has more local storage, right?
The problem we always had classically as a team running Nextcloud is we'd run out of local storage on our VPSs, and then the box would break.
And so our solution to that was to just move the backend to S3 and then just periodically go through and clean it up.
Yeah, but we would definitely have to rethink that strategy
or, you know, would we want to back it with object storage locally?
I don't know that it would give us anything.
Could just do Minnow locally too.
I mean, that's always a possibility.
But it did work pretty nicely.
Daniel Melzack in the chat says that TrueNAS Scale has S3 support
and just acts like S3.
Yeah.
Didn't know that.
It's probably Minnow, I bet.
Right?
I mean, I think that's how a lot of these are doing their S3.
Me and Minio aren't exactly on speaking terms after they changed their database schemas
and lost me my 12 terabytes of off-site backup.
Oh, yeah, that's right.
Yeah, that was painful.
I was pretty cheesed off about that one.
Yeah.
Oh, yeah, that's right.
Yeah, that's right.
Yeah, that was painful.
I was pretty cheesed off about that one. Yeah.
Another popular way to deploy NextCloud that looks really great is NextCloud Pie.
And don't let the name confuse you.
Why would I put it on my pie?
I don't even have a pie, Chris.
It works on all devices, all architectures.
And again, this is a ready-to-go.
They also have an image for virtual machines.
Or, like, they have one for the Rock 64.
So you could, you know so you could you know you could
deploy it that way uh so there's another way that i think is really appealing and then brentley i'm
curious to know remind me but are you are you using the snap for for next cloud is that right
i am yeah and it's was a choice five years ago when i first deployed this thing and it's been
pretty hands-free ever since so it's been stable I think
these days it's feeling very molasses like so I probably need to put some attention to it but that
was what I chose back then and it was kind of like a hey there's a team behind this project doing a
bunch of work to make sure that updates and things are well vetted and just work well when you go to do it. Well,
it happens automatically, actually, which is also kind of nice. But I got to say, yeah, it's been
a great solution for me. These days, I feel like maybe I would make a different choice.
And many audience members have suggested that I should. But it's one of those projects that
made things much easier for me back then. I mean, that speaks pretty well that you haven't had to deal with too much.
I'd be curious if you had to do any sort of administration or repair or troubleshooting, what that was like.
But otherwise, it kind of seems like you're doing the closest to all in one experience with the SNIP.
Yeah. Have you had a break at all?
Only because of storage running out.
But for no other reason.
Updates between versions has never been an issue, which know for some folks uh occasionally can be yeah yeah definitely can be
yeah but no it's and in that way i'm like i don't know is there a solution better than this and i
am you know curious to find out from folks what their experience has been like with updates and
stuff so you mentioned in that little uh spiel that you would do something different
if you were choosing today.
I'm curious what that would be
and then also why.
Well, Alex, every time I describe
my situation with my Nextcloud server to you
and the fact that I have like 10 active users on it
and the way it's set up,
you tell me that I'm in great need of some attention.
I was just thinking,
this app sounds perfect for
my solo Nextcloud that I just run
at home. I know. I've got a family
of five, and I don't have as many
users as you do. Yeah, well, I think
maybe I've outgrown it, but
also I think there are
best practices that I just didn't
know existed back then. So in that way, I think there are best practices that I just didn't know existed back then.
And so in that way, I feel like maybe I'm pushing things a little bit and I need to be a bit more careful about my setup.
And pulling it off the public internet sounds like a great option to me.
It does.
biggest thing that anybody can do in my opinion to improve the long-term reliability of not just next cloud but any self-hosted app is to have some way to snapshot the app data between upgrades so
for example for all of my containers i run my app data as bind mount volumes as directories into
those containers backed by zfs data sets which are then replicated across the world in various
different ways.
But it allows me to have that confidence that if something does go tits up, I've got six months worth of backups to look.
Because sometimes it takes me a while to notice it's broken.
You know, it's like daily often isn't enough for me to actually notice it's broken.
Yeah, that's a great point, Alex.
It will take me a week or two if I'm lucky.
That's a good point.
My setup has been really simple at home, and I've been very happy with it, but not perfectly happy because it has been a little bit of a chore to maintain.
We solved the reverse proxy by just using a dramatically simple Nginx config in Nix that I think, Wes, might have been five lines if to define all of that.
And I realized, oh, this is very powerful now because Nix will always just be configured with these settings.
Nix will always just deploy Nginx with these configurations.
And my reverse proxy is kind of just locked in now.
And I started realizing the power of that,
but continued to run Docker as a container.
Historical momentum,
I just continued to use the Linux server IO container, which has been pretty great other than it uses SQLite.
And I mean, you know, to your point,
as much as we love to try weird, wacky new things,
there is certainly a reason not to change things
if it just works and it's part of your infra.
Yeah, it's just slow, and
I have had a couple of database problems
that Wes has had to help me resolve,
and I have had a couple of
upgrades where I've had to go into the
OCC command and fix things
or manually update the apps before
things will go out of maintenance mode, and I've had
to do hands-on
for every single major upgrade
so far for the Nextcloud component. Yeah, I would say you've not necessarily had an easy experience.
You've had a worse time than the one we use for transferring show files. Yeah, yeah. Well, I
definitely probably didn't help myself with when I adopted the Linux server IO image,
you had to update the two independently, both the image and then also NextCloud.
And now they've changed that into more recent releases, which is beautiful.
So that has made that a little bit easier.
But that hadn't been my experience so far.
And then you combine that, you know, with having to keep the apps updated and then all of that.
So I really wanted something that was much more maintainable.
And also I don't need all the stuff that the all-in-one or the pie image. You want a little customizability.
Yeah, a little bit, but not a lot.
And I don't want it to become a big headache to maintain.
So that's kind of where all this fit in.
The existing ways to deploy Nextcloud are pretty great, including the community-maintained Docker image,
which has like tons of 500 million polls or something like that.
So there are a lot of ways people have attempted to solve this,
but I'm feeling pretty good about the way we figured out.
I'm feeling pretty good.
And the nice thing is when we're all done here,
people can go look at what we posted on our GitHub,
and they should be able to replicate it immediately on their system
with very little changes.
Warp.dev slash linux dash terminal.
Yeah, the warp terminal, the one with AI built in, built on top of Rust, that sweet terminal
that I have watched jealously over there in Mac OS land.
It's coming to Linux later this month.
You can join the waitlist and sign up for the launch party and get some sweet Linux
swag when you go to warp.dev slash linux dash terminal. this month. You can join the waitlist and sign up for the launch party and get some sweet Linux swag
when you go to warp.dev slash linux-terminal. If you're not familiar, I've been watching for a
while and wanting this, but if you're not familiar, what gets me excited about it is that it is a
modern command line built on Rust, so it's super fast and performant. It's not like some Electron
thing. It's really great. It has AI built in with a beautiful way to discover the commands
that you might be looking for with AI suggestion.
And it's highly customizable.
You can create your own prompts that you can recall really quick.
It has collaborative features.
There's this feature called Warp Drive that lets you save parameterized commands
and then run them later and share them with your teammates.
It's just a great user experience.
It kind of feels like the terminal hasn't seen a lot of interesting developments for a while,
and this has really been it.
And I'm really excited now to see it actually coming to Linux.
I was always a little jealous that the Mac users got it.
They don't even really appreciate the command line over there at macOS.
They just use it because they have to.
But us Linux users, we enjoy the terminal, and you're going to enjoy Warp Terminal.
Warp.dev slashux dash terminal to sign
up and support the show again it's a little tricky it's warp.dev slash linux dash terminal that's
where you sign up get the linux swag pack perhaps maybe even get a little bit of info about when it
comes out before everybody else and support the show again that's warp.dev slash linux dash terminal.
Well, like everything in the world of open source software, there are, I don't know,
a dozen, probably more than that, ways that we could use Nix and Nix-related tooling to try to
get ourselves a next cloud server. But, you know, we didn't necessarily want to have to write a whole
bunch of Nix ourselves, try to package stuff from scratch. Ideally, we could find
something that would be approachable to someone just starting out with Nix if they want to try
to move over some of their infrastructure, but, you know, also workable for someone who's been
using Nix for a while. And maybe something that you could just copy from GitHub and use on your
system if you were curious and wanted to try it after the show. And thankfully, this went better, I think, than we had any right to hope
because Nextcloud is just really nicely supported in Nix.
Yeah, there is a lot of really nicely supported projects.
It's kind of like the list of top, like, awesome self-hosting, awesome open source,
filled with modules on their GitHub that are kind of essentially,
you could almost call them playbooks, if you will, that build you a Nextcloud system. And you just
tweak a few things in there and you can read this pretty clearly. So from a practical standpoint,
I guess the way we did this is we created a Nextcloud.nix file. We put that on our system
and we did what's essentially
called an include to include that new configuration file. And then in there, we put this module.
And it's a building block for the system. And it is very easy to read, even if you're not familiar
with the Nix language. And because you go through this and it has to build properly, if you've
typoed something or you haven't configured something correctly,
it'll catch it, much like software won't build
if you haven't written the software correctly.
If you haven't written the config file correctly, it won't build.
And so you could make a tweak, attempt to build.
Okay, I've got to go fix this on line 20.
All right, I'll go tweak that.
Okay, build again.
All right, I've got to go fix this on line 40.
And the thing's like 52 lines long, and you have a complete Nextcloud system. Yeah, it ends up being a kind of nice, fun,
interactive experience. Once you get past the like, oh gosh, it's freaking out. What is it
yelling at me about? You know, you get to test things. The system tells you where you're wrong.
And, you know, there were a few different places where we kind of had questions as we were getting
going or had to tweak things to get it just right. So you knew once you'd gotten past, you're like,
oh, it's airing on a new line now.
Okay, that section must be working.
And it was.
Some of those error messages can be a little cryptic, just fair warning.
But the best way to kind of work around that is if you look for like a line number,
it'll almost always give you the line number somewhere that it failed originally.
And then it gives you a good jumping-off point in your config.
Yeah, that is my go-to.
And what you end up with is something that sets up a Nextcloud system.
It sets up your TLS certificate through Let's Encrypt.
You can define the applications that get deployed inside Nextcloud.
So my wife loves the Cookbook app, so we made sure we deployed the cookbook app.
We deployed several apps just to test. You get to define the exact version of Nextcloud that
gets installed, where the configuration paths are, where like the secrets path is. And then
additionally, you can take advantage of other things in there because it's very expressive
language and you can set up things like a Postgres database backup. And you can say every night, backup the Nextcloud database and save it to this directory.
And that can all be part of the module.
So when you deploy it, all of that from Postgres and Redis and Nextcloud and the ports and the TLS certificate, all of that just gets configured and set up for you.
But it's not a black box.
It's not like the all-in-one container where you just get something set up for you,
you don't really understand how it works because it's an opaque box.
This is something where you go through this 50-ish lines of syntax
and understand exactly, line by line, what this thing is doing
because it's human-readable.
And it's a map.
It's a self-documenting map of how your Nextcloud works.
And even if you don't touch this thing for two years,
you can open this back up
and understand how you're getting the TLS certificate,
understanding what domain name it's using,
how it's getting the host name, all of that.
I think that's very powerful.
It strikes me, too, that a lot of this is possible
because it gets to reuse so much
of what's already in Next packages.
So there's sort of two components.
There's the NextCloud, like the actual package itself,
the files that you're going to need on your file system.
And then there's the Next Cloud service,
which is provided in Nix packages,
which sort of ties all this together.
And that's what's able to let you automatically
create the database, because, well,
Postgres is well-supported in Nix packages already.
There's a service for that,
so it doesn't have to reinvent the wheel.
It can just go, oh, yeah, turn on Postgres,
turn on Redis if you want, and
it just relies on what's already built in Nix
packages, and I think it especially works nicely
for NextCloud, because NextCloud is a
PHP application, and
Nix has great support for Nginx,
and so you can just kind of have, like, you know,
there's a lot of stuff you need to do to interface with Nginx
and PHP to get it all to execute together,
or if you want to customize things,
it's already in a Nix strength.
Like something we know we have to change
is we need to set a larger upload limit
and things like that.
You can set that in there.
Some of those are PHP config options
that you're just setting in this module.
I think the trickiest thing is trying to figure out
which module to use,
but most of them just live on the Nix GitHub project page.
So you just go to their page
and there's official packaged modules for you.
So it's pretty easy to narrow them down.
Brent, you and I, I think,
we're the newest to this process.
Wes was already familiar with modules when we started.
And you're looking at this probably
from the perspective of,
I'd like to maybe replace my Snap package one day.
I'm curious what your impressions were
and your thoughts about it.
My initial thought was that this is going to be, again, way too complex for someone like me who
can probably be defined as quite a home user. I've never had experience professionally as a
system administrator or anything like that. So learning some of these technologies for me,
like Alex can say, reverse proxies has been a challenge for me right it's a thing i
haven't learned you don't give yourself enough credit is another thing i'll say right now
when we hack together brent you know a surprising amount of stuff so hey i will agree with that
oh well now you got me blushing but but i think what attracts me to some of these projects that are already done for you like the all-in-one or the
snap is that i don't have the background necessarily to have a bunch of best practices
and so i really appreciate the like here's a good place to start and everything's already kind of
well defined for you and you're not going to expose things that you didn't intend to because
you know i just don't know any better.
Although maybe with the snap, I'm doing that, but who knows?
So that was my fear with going into this project together to Nixify our next cloud was that I figured it would just end up being too complex.
turns out now i had like these massive light bulb moments going off using these modules because it's a super nice blend of using best practices someone's already really thought about this
and that's you know to become a nix module there's a review process and there's a team of people
looking at this stuff and yet you can use those default, but then you can also change them all.
So if you're a more advanced user, you can use that baseline and just really customize
it the way some people say with Docker images and stuff like that is a really nice thing.
Yeah.
And we did just that too.
I would argue though that, I don't mean to sound gatekeeper here, and it's kind of a
fine line, but I would argue that that simplicity of jumping off
that you get through an all-in-one container,
you're kind of just kicking that can down the road.
And by not fully understanding what it is quite that you're deploying,
you do run the risk of further down the road
being locked into a deployment methodology
that is difficult to migrate off of, or is vendor locked into a deployment methodology that is difficult to
migrate off of or is vendor locked like a snap or etc etc like you get the general idea and what
really thrills me about these nix configs is the fact that you can't at least to my knowledge in a
docker compose declaration say i want these applications installed inside the app that i'm deploying
i mean you can if the container manufacturer that's not the word if the container maintainer
exposes those knobs and and whistles to you but you know the fact that the next cloud module in
nix for example lets chris deploy qo notes and the cookbook and tasks and only like
you get the idea there's there's what six or eight apps deployed inside the application you're
deploying here the entire application is defined in this file declared in this file and this
sounds like a broken record but this is where the magic of Nix really starts to come home.
It's like everything is there.
And like you said, Chris, if you're looking at this file in two years' time, there's no ambiguity about, well, what did I do?
What random command did I run that's now left my bash history, et cetera, et cetera.
Like it's literally in the config.
That is the source of truth.
Yeah.
And it also means that I can be very intentional about when I rev the Nextcloud environment
because we have one line in here, one line, and it just is Nextcloud 28.
And I'm going to keep that at Nextcloud 28 for a couple of months after NextCloud 29 comes out.
And then I just go in there and rev that to 29, do a rebuild, and now I've got all the new apps for NextCloud.
And I got the new NextCloud install and any kind of Redis updates that might need to be done.
All of that happens at that point.
And I like the intentionality of that because NextCloud is the back end to manage my phones.
It manages like a lot of the family calendar stuff.
It manages the cookbook stuff.
So it's like dinner is kind of important to me and I want that to work.
So I want to be very intentional when I actually rev that NextCloud version.
But I don't want it to be a big hoopla where I have to go in there and do a bunch of commands that I execute through Docker and all that kind of stuff.
to go in there and do a bunch of commands that I execute through Docker and all that kind of stuff.
Yeah, if you do choose to opt into the declarative apps too,
you get the benefit of the apps sort of say
which versions of Nextcloud they support,
and that gets encoded into Nix.
And so if one of your apps wasn't yet updated for the new release
and it wasn't packaged for that release in Nix,
your build would just break and you'd be like,
oh, okay, I guess I'm not updating this.
I'll wait another week or two and try it out then.
It sounds like that's a little bit of a sense of security too.
Chris, I at first was really confused by that
because the other modules that I've used previously
and just like the next config on my laptop
have never had version numbers tied to them.
And so I thought that was a little bit strange.
I kind of expected to be rolling at first, too.
I just thought it would be always current Nextcloud.
But now, after thinking about it,
I don't think that's actually what I want
for my production Nextcloud.
Well, and it's kind of decoupling your Nextcloud,
which is a somewhat complex beast,
to your actual system.
Wes, you were saying that, and that was one of the light bulbs that went off for me somewhat complex beast to your actual system.
Wes, you were saying that,
and that was one of the light bulbs that went off for me in this specific module with these specific version numbers to it.
It's like, actually, you want that state.
You know, one of the reasons that upgrades with NextCloud in particular
can be so dicey is that when you do a NextCloud upgrade,
it's changing the database schema
underneath so it goes into the mysql or the sqlite or whatever and it will add or remove certain
columns and change you know data types or whatever like typical stuff in software upgrade release
cycles and i used to work for a bank in london and i that we're talking you know they they did
like 60 of the uk's credit and debit card transactions.
And so you can imagine the database that ran that thing was pretty beefy,
and it was an Oracle thing.
And the amount of time these guys spent on building rollback scripts
and, you know, all this kind of stuff for this database,
because even a minute of downtime for a bank is just not an option.
And for Nextcloud, every time I've had an issue with an upgrade it's been some kind of database wonkiness and the reason that's so
important and i mention it here is because rolling back unless you have a snapshot you don't really
know what state the database is in unless you go through each column in each field manually one by
one and i ain't got time for that so take a snapshot of your database before you make any changes. And then that way,
it's kind of like a risk-free thing. But then, you know, Nix takes it a level further because
you're basically building a new environment that you're switching into and you can just roll back
to the last one and you're good to go. So i think comparing and contrasting this process to the traditional
process i jokingly describe it as it's a one-click deployment after you do 30 ish various different
things to make it work so it's a lot of front work you'd go through this thing not building
you change paths you figure out where you need to put stuff on your file system for like a secrets
file you spend the time figuring out how to make a module work if it's new to you.
And so maybe an hour, right, or two, whatever it is.
And then you build it and you're done.
It's the weirdest thing where typically when you're deploying server software on Linux, you deploy it and then you go configure it.
And then you spend a lot of your time actually configuring the software
and you know setting up accounts and setting up all the apps or apis or whatever it might be
whatever you're deploying but in this scenario it's the reverse you do all the work ahead of
time to figure to figure out what you need to do and configure everything and then you tell it to
build and it's done and not only is it done but like it's set up to auto backup with the script
that we have it auto backups the postgres database you got to get only is it done, but it's set up to auto-backup with the script that we have. It auto-backups the Postgres database.
You've got to get that file out of there,
but it takes care of the backups for you.
It takes care of the SSL cert for you.
Does it renew the cert for us, too?
I can't remember, but I think it does.
Yeah, it even renews the cert.
One of the nice things, too, about the Nix stuff
is a lot of things end up in NixOS.
It renders out the various templated files or config files that it spits out.
Everything goes in the store, so you kind of know that.
And then it gets all tied together a lot of times just by systemd.
So ultimately you end up with systemd timers and systemd services that you can look at.
You can look at the logs for it.
You can go view the actual unit files underneath.
And it's just a bunch bunch of next stuff tied together with
standard systemd stuff that makes linux work making it work so if you're looking of where to
find more nix modules search.nixos.org and if you go across to the which one is it is it the options
or packages i forget which one exactly options yeah options and you just type services.nextcloud
you'll see all of the different options.
Like there are hundreds of different options
that these modules expose.
And then it's a reusable pattern.
So if you want to deploy Prometheus next week,
you've kind of got that same deployment pattern
and you can start to reuse a lot of these principles
across different applications.
And the reason I say that is because in our chat right now,
you know, folks are saying that that initial build
of the Nextcloud image is a big hurdle
specifically for newbies.
And I would argue, yes, that very first one is a big lift,
but it gets significantly easier
each time you do it after that
because you're just reusing those same patterns.
Yes, absolutely true.
You can really just kind of go look at your old configs and be like, okay, how did I, okay, so that's how I'm going to do it for this application now. That, absolutely true. You can really just kind of go look at your old configs and be like,
okay, how did I, okay, so that's how I'm going to do it for this application now. That is very true.
And, you know, as NixOS has gotten more popular these last few years, there's more and more
example configs. I mean, we're going to have ours out there. And so, you know, maybe you can get a
little bit more of a foothold, find something that pretty much works. You just got to change like some API credentials
or, you know, any of the little secret bits,
but something you can play with in a VM
where there's like no cost, you don't need it to work,
and you can actually take the hour or two
that it probably will take to try to get a first build.
It does initially take a bit, yeah.
But it is like they both are making the point.
It is worth that investment.
You know, one thing I was curious about here was curious about here is, like, what were the
edge cases? It's easy to get just, like, a NextCloud
going, right? Like, you're running NextCloud, the standard
service, but, like, we knew we wanted
some apps, and so having the ability to add
custom apps if we need to. Ones that were not
necessarily packaged by the Nix community. Yeah.
How hard was that going to be? Yeah.
That turned out to be really easy. Yeah. So that
knocked it down right there. And then I think it was just
nice going through sort of using a bit and configuring it
as you're talking about,
because, you know, we checked the little self-check
that Nextcloud very helpfully has about like,
hey, how does your installation look?
And it had some complaints for us.
And so being able to go set easily the PHP options
in Nix is like, was that going to be a whole thing
where we had to like custom render out a file
somewhere in here?
Or was it going to be literally like php options dot option name equals the new value that next cloud
recommended to us and it worked and it's so nice because sometimes you run it with areas and you
know these these nick services are more or less sophisticated sometimes it's just sort of like
making a cron job for you and setting up a default installation. And sometimes it's managing a lot of the details like here with NextCloud.
You know, you don't quite know where that support necessarily is going to end
and when you're going to have to do a little more custom nicks yourself.
But with NextCloud, it seems like it's very well covered.
So I'll tell you my takeaway and why I'm going to redo my home setup like this,
besides the fact that it's sustainable and self-documenting.
I'm going to redo my home setup like this, besides the fact that it's sustainable and self-documenting. For me, I think it has the advantage over, say, like the NextCloud Pi
or all-in-one images in that I can get NextCloud releases a little bit faster because those
bundled, for good reasons, those bundled distributions wait a little bit to test,
to make sure they have application compatibility, to do all of that stuff, which is fine, good, I'm glad they do. I want it sooner than that. So I can have the same kind of
almost, it's my own custom all-in-one setup using all open components, well-documented,
and I can update it on my schedule as soon as the applications are published in the next package
repository or, you know, doing the outside of the repository. I think that's a big advantage.
Brent, though, I suspect your big advantage,
the thing that I think impressed you, because that was mine,
might have been the performance of the thing.
Yeah, I, you know, we went through that three steps you talked about,
about, like, configuring it and also deploying it at the same time.
So we went through a few iterations of, you know,
doing a Nixos rebuild switch and complaining
about something but once we got that it was like amazing how quickly everything was just like oh
yeah the site's ready at the url that we have and but it was the performance that really hit me like
i've as you might imagine used a few next deploy my own, the one we use here at JB and our internal one at Nextcloud itself, and including some like technical previews that we have.
And I got to say, this one was the most snappy, performant one I've used to date.
Like it was also empty, but I don't know what it was.
I've used to date, like it was also empty, but I don't know what it was.
I just had this like feeling that it was more performant than anything I'd ever tried before. And I'm curious if that's how you guys felt, or I'll be curious to see if anyone tries
our config, if that's how you feel as well on various hardware.
Yeah, that's a great question.
I would like to know if people grab our config and they experience that, please let us know
because Wes, I think was a little a little like, it seems fine.
But you and me were like, this is the fastest NextCloud I've ever used.
And I made the comment to Brent this morning before the show that if my experience with NextCloud has always been this performant, I think I would have been more inclined to use the web apps than I have been.
I traditionally use NextCloud more as like an API endpoint and file sync.
A little more asynchronous.
Yeah, I don't interact with the web applications because I barely can tolerate how fast native applications launch, right?
So God forbid a web application.
But this is something else.
And it's either – maybe it's the box.
It is a nice box we have it on.
Don't forget that quality Postgres database. But, you know, he's also accessing it remotely
from Canada, and he's experiencing
the same thing I'm experiencing on the LAN,
performance-wise. And I think
maybe it's just some of the
optimizations in the PHP config.
I don't know what it is,
but I'd like to know if other people... Is it Redis?
That could be it. I mean, I'm not using
Redis in mine. I think that could be it, too.
I do think it could be that.
But that just brings me back to the point of like having some well thought out defaults built into these modules.
I was like, I don't even really know what Redis is.
Like I kind of do now.
But that's just there by default.
And I know that's the case in some of these, you know, pre-made, like the all-in-one and such.
But I don't know.
It just seems so easy here.
And fair enough, we had Wes helping us out to build this thing.
But now that it's built, like the entire JB community has access to it.
And we'd love to hear optimizations that you're adding to it.
And like, maybe we did something silly you don't think we should have done.
That would be amazing feedback.
Yeah, or maybe there's something we should be adding.
I mean, it's on our GitHub, so pull requests.
Bring them on. We'd love to see them.
Let's get it.
Yeah, and also we'd love your suggestions on future applications.
We should see if they could mix.
They don't necessarily need to be server stuff.
It could be desktop software.
It's really just trying to look at, you know,
is there a better way to do this in Linux?
Final cut, bro. You bastard. Alex, I'm curious, did you give our little Nixcloud config a try? And if you did, how was your experience versus doing it the traditional, I don't know,
Ansible way, for instance? You got any feedback or thoughts on that?
Well, my traditional Ansible way is actually just Docker compose file way.
And my instance is like six or seven.
It started in London, and it's the same database.
It's the same files since then.
All of my photos go through it.
All of my contacts, calend calendars all that kind of stuff
go through it as well so it's probably getting a little crusty so much like chris and yourself like
there's probably some database cleanup that could improve performance i was actually just looking at
the uh the mem caching stuff when you mentioned redis that for example allows you to to cache some
of the queues of things coming in some of the requests
in memory so that's how it speeds things up there a little bit what i was hoping to dig into before
i spoke again was whether the uh nix os module uses some of those memcache things to speed things
up underneath in the php configuration file because that would explain why it feels so snappy when I tried it out.
Collide.com slash unplugged.
If you're in IT, security area particularly,
you know you've been dealing with these kinds of reoccurring problems for a while.
Data breaches that come from the end users, machines, maybe phished credentials,
whatever it might be.
It's not even necessarily their fault.
But man, is it just not a constant nuisance and requires IT's attention all the time. All these little tickets that come in to solve a problem that really could be handled
better. Even something simple as just making sure everybody's software is up to date before they
connect to your cloud apps. Well, that's where Collide comes in. It's a solution to this challenge.
It's something that finally takes care of this layer, so that way IT can be freed up and employees can be empowered to fix it directly through
your existing messaging system following your procedures. Collide works to make sure that
devices can only access your apps after they've passed the checks. They also give you a dashboard
where you can see your Mac, Windows, and Linux machines from one pane of glass, manage everything,
check the state of things, run reports, run audits.
I think you should go experience this firsthand.
They got a video set up at collide.com.
That's K-O-L-I-D-E dot com slash unplug.
You go over there, you see what I'm talking about, and you support the show too.
It's not really their fault.
They just need better tooling.
They need better solutions, and they don't necessarily, I'm talking about end users, need to be burdening IT with every single problem.
If I had this when I was in IT, I think it would have been a game changer.
I'm passionate about this because I think it could make your life easier too.
Collide.com slash unplugged.
That's K-O-L-L-I-D-E dot com slash unplugged.
Go check out their video, support the show, and see what I'm talking about.
Collide.com slash unplugged.
If you can believe it, boys, there's five episodes left until we get to scale.
It's coming up really soon.
That also means NixCon North America.
Oh, boy. All kicks off March 14th in Pasadena, California.
And our audience made this trip possible
so we will have a full live stream
schedule on the way down while we're there
before, after Knicks, all of it, plus
a live Linux Unplugged. We'll be
putting all of that out more, but just get yourselves
ready, mentally prepared for that.
Even if you're not going to be there, you'll get a little taste of it.
If you are going to be there, get the full
thing in your mouth. We'll be doing
lunch on the 16th.
Meetup.com slash Jupyter Broadcasting for those details.
Who doesn't want more Chris Fisher in their mouth, huh?
Oh, yeah.
Big, big burger named Chris.
No.
And then we could all complain about it in the scale chat.
We'll have a matrix chat set up for that too.
It's going to be a good time.
Alex is going to be there.
Yes, sir.
We're going to have a little Airbnb down there where the crew can do some stuff.
And Alex, we do some barbecuing, maybe burn some more sticks.
Is it the same one?
No.
No, I don't think so.
Oh, because that had such a great grill last time.
It did, but also had that grease fire.
Yeah, but, you know, flavor.
Yeah, you work with it.
Think of the char on those things.
I was impressed.
That's when I knew the man.
The man was a grill artist where he leaned into the grease fire and just worked with it.
Yeah.
I was impressed.
No, we're getting something a little closer to the venue this time, I think.
So we'll be like within walking distance of scale, which will be nice.
Yeah, it's getting a little bit changed.
Yeah, downtown Pasadena is supposed to be quite nice in the spring.
I think so.
Brentley, we got some emails this week we wanted to get to. We got sent a lot of suggestions on how both you would run a NextCloud and also how you're currently doing it.
So thanks, everyone.
But we did get a little piece of mail this week from Thought Criminal that I thought actually was just perfect and you couldn't write it any better.
Hey, guys, this is probably too long for the show, but too coincidental not to share.
The Next Challenge came up in my busy season, so I was always going to be late to the party. Things finally slowed
down for me though, and so I ordered a little Dell micro PC with the intention of putting NixOS on it.
Being a lazy admin type, I'd settled to going with Snowflake, and to my delight, you guys ran a whole
show on that very topic. I finally got my hardware in order,
tamed the medusa of eye-watering, sneeze-inducing cables
under my workspace disaster area,
and then tamed the disaster area itself
because I've learned the Linux gods demand a good blood, sneeze, sweat,
and tears sacrifice before a good journey.
If I'm being honest,
cheat code Snowflake did all the heavy lifting, and I just stacked myself a good journey. If I'm being honest, cheat code snowflake did all the heavy lifting and I just stacked myself a quick win. And I also slapped HTOP on there because, you know,
Linux unplugged. As I lucked into services and started wrapping my head around the idea of one
config file to rule them all, the magic of the deal finally clicked for me. I started to realize
that this just might be the mythical distro of power
that finally helps me slay the dragon
that has been my own many Nextcloud implementations,
each more glorious than the last,
all poorly documented in some fashion hacky
and inevitably fatally flawed.
And then, as if the whole thing had been preordained,
what should come up on the very
next linux unplugged episode it's like you guys are right inside my head i cannot wait to see
what this community comes up with on this episode that's amazing thought criminal thank you very
much i'm glad we could be of service there and let us know how it works too i always like you
know we talk about this stuff but what's the long term you know what do you stick with it do you go
somewhere else yeah the work area is yeah he's gonna write in in six months and say i've grown gandalf length
beard right and yeah that's how it goes with it he's right back and say i'm redoing the whole
thing it's all going to be based on flakes uh yeah now the maintainer over there flakes are
a whole thing they're worth it i you, but they're pretty difficult.
And now it is time for the boost.
And our baller booster this week is listener Jeff.
He comes in with 81,361 sats. Hey, rich lobster!
And the biggest one there was, of course, the birthday boost with 50,000 sats.
He says, surely I'm not the only late birthday boost.
Happy birthday.
The answer to the ultimate question.
Thank you, Jeff.
Appreciate that.
You know, I feel like you were like, oh, crap, these guys are going to be down here at my place here in a couple of weeks.
And I forgot to say something, but I appreciate it.
I thought Albie was broken, so I'm just glad it got through.
Oh, yeah, me too.
Me too.
We did get some repeats there, but I printed them.
Yeah, sorry.
Did you clean them up?
No, no, that's just more sad, so thank you.
He writes, though, he's got a Linux truth for us.
I'm a desktop user.
I merely dabble in server stuff like self-hosting things.
I got more into it in the last five years or so.
I game, I tinker, I create and edit all formats of media.
I install, play, break, and fix things on my PCs,
and I always have both Windows and Linux until just a few years back when I finally wiped my last Windows partition for good.
But why?
I game.
Why would I limit myself to just the issues that Linux has, particularly around gaming?
Because Windows has worse.
Good.
I'm glad to hear this.
I spend more time fixing stupid little issues around my Windows system than I got to game.
Windows updates will break things.
Driver updates break things.
There's a constant need for specific DirectX versions.
Oh, yeah, that's ringing a bell.
Flashbacks.
Yeah, that's all ringing a bell, Jeff.
Oh, man, not to even get into the accessories.
Like you need the software to run the mice and the keyboards and all the different headsets.
All of them which run in the background,
all of them want to automatically update,
and then, you know, God forbid,
your Windows install goes for more than six months.
Yes, we do have issues in Linux land,
but pick your poison.
Nothing just works.
Yeah, yeah.
Even on the supported platforms,
it just makes me laugh when my Windows gamer buddies
tell me they're reinstalling Windows again, and it's just normal in every six-month routine.
My last main system was running the same install of Arch for over 10 years, even outlasting its own hardware support on Windows.
Of course, my biggest caveat is I don't do professional work on it of any kind.
My desktop is just a toy where I can learn, create, and have fun.
But for me, I find it easier and faster to manage when new issues arise.
Don't use Linux if you value your time.
I use Linux because I value my time.
Jeff, that should be a sticker.
That right there or the front of a shirt.
Like, don't use Linux if you value your time.
It could be the front of the shirt and everybody would be like, what?
How dare you say that? Like, we bring these to scale, and the back says, I use Linux because, all in uppercase, I value my time.
Right?
Beautiful.
It's a shirt, Jeff.
Damn straight.
Telling you what.
Coming to an Etsy store near you.
Jeff goes on writing us about his Nextcloud setup. As for Nextcloud and NixOS, one of my Nextcloud instances is a NixOS via Docker Compose
with an image found on Nextcloud's GitHub,
Nextcloud 28.
I found I needed to fix the cron thing
that Nextcloud cries about in a very Nix way.
I had to make a systemd timer
that lives in the configuration.nix file,
which runs a simple bash script.
All the script does is run NextCloud's cron.php
via Docker exec.
I think that's exactly the kind of thing
where sometimes in setups,
you're going to need to figure out how Nix does that.
But once you do,
there's a lot of times where something similar to that
kind of just bridges what NixOS already has
and can fill the solution in for you.
And honestly, it's kind of,
while it might not be what you were originally going to do,
it's not a bad practice.
And again, it's just going to work forever now.
It really threw me for a loop because I've never used systemd timers either.
So looking up how to use systemd timers the normal way, not the Nix way,
you know, it's just that extra little bit of learning
on a system that's not very well documented.
Yes.
The dude abides boosts in with 50,000 sats.
I hoard that which all kind covet.
Been running Nextcloud on a scaleway VPS running Daku since 2018.
Hey, all right.
Yeah, Daku's got pre and post deployment hooks,
so you can run the OCC commands without even entering the container.
I'm using a simple Docker file based on the official Apache one.
I've run into some upgrade issues through the years,
but it's pretty solid in general.
And now you reminded me I have to upgrade.
Well, at least you got those pre- and post-hugs.
Yeah, sounds like a nice setup.
Yeah, you could throw a little backup in there too on the pre-one.
You know, we'll do a little database dump there, and boom, boom, boom.
A little database RSync, boom.
As Richard boosted in with 46,038 Satoshis,
I'd like to see how to set up a Minecraft server in the Will It Nick segment,
mostly because I'm going to be doing that very soon.
Feels like it's probably also a good place to get into self-hosting.
Just a reminder, this is a zip code
boost, and P.S., when does
Nix get its own theme music like Rust?
Okay, that's a fair question.
It better be something you like to hear a lot, I'm sure.
Sorry, everybody.
Okay, so
46038
46038 Postal Code in Hamilton County, Indiana.
Oh, yeah.
With cities like Fishers.
Yeah, my town.
And Noblesville.
Yeah, hello, Fishers and Noblesville, Indiana.
Thank you for boosting in there.
Boy, if you have any suggestions for the next theme that you wouldn't mind hearing a couple of times, go ahead.
Send those in.
Well, we talked a lot about modules today for Nextcloud.
You'll be delighted to know that Minecraft Server is also available as a NixOS module.
Perfect.
Maybe we should give it a go.
Actually, it would be kind of nice because I'm running one right now via Linode's deployment script, which is great.
Actually, it would be kind of nice because I'm running one right now via Linode's deployment script, which is great.
But they're using like some sort of management program, which I bet you I just could get away with not having that if I did it that way.
Worth a shot.
Maybe.
Martin Debrer comes in with 44,444 sets.
I think it's a bunch of McDucks to tell you the truth.
Things are looking up for old McDuck.
And he writes, hey, guys.
Coming in from Podverse,
my uncomfortable truths about using Linux are related to gaming and office work.
Some game launchers, Ubisoft, are not working,
so I dual boot to play Assassin's Creed games.
The Tomb Raider series works just fine, though.
The best workaround is a cheap Windows 10 license key for office work, LibreOffice to Office 365 conversions.
Never quite perfect, so I export everything to Office 365 conversions. Never quite perfect.
So I export everything to PDF instead of sending ODF docs.
Those are my truths.
Best regards.
It's true.
I do feel that.
I do feel that.
Also, he sends some thoughts with the Podverse team feeling the burnout recently.
He says, I'd try maybe an AI chatbot to respond to some bugs, some feature requests,
and then try to find a community member to do the triaging and add those items to a backlog.
But don't overcommit to the responsiveness.
His focus really should be on the business side,
so making money from memberships, expanding the podcast market,
and prioritizing feature development.
Good insights, Martin.
And a copy of that boost got sent to Mitch over there,
so he is receiving those.
Hybrid sarcasm boosts in with 42,000 cents.
In the heat of battle during this production cutover weekend,
it's great to have the JB crew in my ears.
Oh, I want to know what's going on.
Yeah, good luck.
Hope everything goes smoothly.
Yeah, I know what you mean.
Thanks for the boost.
Those weekends, you know, they're like, it's like you want to just crash,
but then, of course, you have to be around on Monday because that's when all the users are going to be on the system.
And then, God forbid, things don't go well.
We'll be thinking about you, Hybrid.
Good luck.
Mixed EP came in with 25,000 sats using Castomatic.
Thank you for the discussions and criticisms of gaming on Linux.
It's my only sticking point, so I use Windows for gaming only.
The area that broke the camel's back was Mirror's Edge.
I had the very same monitor troubles that Chris talked about with CSGO,
so my parkouring had to be left turns only.
I challenge anyone to treat Mirror's Edge like a NASCAR race.
Not fun.
No, that does not sound fun.
Yeah, you know, and it's like, I'm sure it went through your head at the time,
except it's like, well, I guess I could just unplug all my monitors.
But that's so embarrassing.
Like, hold on, son.
Dad's going to go unplug his screen so he can play.
I just bailed, to tell you the truth.
But I wonder if it crossed your mind.
Thank you very much for that boost.
Purple Dog came in with 5,000 sataroos.
And he says, I was running the Linux server IO container for years, talking about NextCloud, but then I switched to Nix. My servers
config is a flake. Ah, there it is. Then I've got my own NextCloud module based on someone else's
that I found on GitHub. But what he likes about it is it includes a Collabra container for Office.
It's been working great. In general, I've been trying to move out of Docker and onto just using Nix,
so it's one less thing to maintain.
Image is the last one left.
Maybe you could do that in a will at Nix.
Oh, yeah.
That'd be a great shout, particularly given the news of Image this week
of their switching from MIT to a GPL-based license.
That's a really good contender.
I'm going to write that down, guys, because, yeah, yeah.
That is a very complicated set of containers, too.
There's a lot going on with image.
It changes a lot.
There's a lot of breaking changes with each image release at the moment.
Yeah, you could see why maybe you'd want to have a little more control over that.
Hmm, hmm.
Good suggestion, Purple Dog.
Thank you for the boost, too.
An anonymous fountain user boosts in with 10,000 cents.
Just to say, happy to hear you went Podcasting 2.0.
Oh, yeah, yeah. The feed's going to be getting, the main feed will be getting updated soon,
and the members feed has already been upgraded. We're looking for feedback there.
Let us know if you're a member with a new podcasting app.
And then, of course, grab one because Scale's coming up,
and our stream's going to be live in the podcast app.
One of the features of Podcasting 2.0 that I am very excited about is live streams can be in your podcast app like they always should have been.
We never should have been sending you to YouTube and Twitch to listen to a podcast.
And now you can just be subscribed to the Linux Unplugged feed.
And when it's a 2.0 feed, when we go live, it'll just show up in your feed like another entry.
And you can just tap and listen live, like a regular old
episode. It's such a beautiful thing.
Bamham 182
sent in two boosts for a total of
6,666
sets. I have all of my services,
including Nextcloud, set up as
Nix-configured SystemD services,
which fire Podman compose
commands. Not the most
Nix-away, but it is how I've been managing containers for a long time,
and it still works just fine,
so I don't see a reason to switch it.
I also don't need to wait for Nix packages to get the newest updates.
I just systemctl restart if I didn't pin the version.
I forgot to mention I'm using the official unofficial container
in the Nextcloud slash Nextcloud namespace on Docker Hub, even though that means the health page nags me about the totally unnecessary BZ not being installed.
Yeah, fair.
I like a lot that we got a Podman shout out in here because that's absolutely a valid way that we didn't even touch on this episode.
It's not because we don't know about it.
It's just not one that any of us really have a lot of experience with.
So getting some experience from the audience with using Podman is really good to hear.
Yeah, sounds like a nice setup.
Bam ham.
Appreciate that.
Thank you.
Talk criminal.
He's coming in with a row of ducks.
You nicks pilled me.
Thanks.
Faraday Fedora also got a row of ducks.
And he says, keep it up, Mitch. You're
doing great. Agreed. Thank you. Thank you to the Podverse team out there. Hal Was Right comes in
with 4,200 cents. I was curious about running a monitoring service on NixOS. I tried Nagios,
but I failed to get the web interface working on a local host, so I'm trying Grafana. How about
LN bits with Cashew or Fetament on NixOS?
That would be really great to know how to do,
but the software is mostly experimental.
Oh, and then a follow-up boost, another 2100 here.
Mitch could apply for an open-source contribution
from OpenSats or Geyser.fund.
Maybe that makes some sense for all parties.
That is a really good suggestion,
especially the OpenSats one.
I'm going to pass that on personally to Mitch.
Hal, thank you.
Yeah, a monitoring package, great idea.
We are maybe cooking something up with the LNBits direction.
We may have more on that in the future.
But I'm writing that down.
I think NetData is well-supported on NixOS, right?
Totally.
Oh, yeah.
Oh, yeah.
I have it running on my home one already.
So, you know, I really should just bite the bullet
and really just get into their whole alerting mechanism.
I really should.
Because I got it running on two different systems already.
Zach Attack comes in with 13,356 sats using the index.
Send them from the podcast index.
And I really appreciate this boost from
zach because we talked very positively about nix and i think it's good to also show the other side
of the coin he gave it a go and he writes i tried nix for a week and it wasn't for me i just got way
too many timers my okay i may try snowflake os when it gets more stable i ended up wandering
again and i'm trying pop OS for the first time.
I do like how they've tweaked GNOME.
And for someone who wants tiling, it's great.
I'm nervous that their GUI won't be as smooth to get going, but we'll see.
And an uncomfortable Linux truth for me,
you'll always need Windows installed on the rails somewhere.
I can get away with VM for a bit, but things like certification testing,
well, they just really hate VMs.
I hadn't thought about training. I've been very fortunate that I haven't really had to deal with that kind of stuff. He says, I forgot to mention how I Nixcloud. I'm using the all-in-one Docker
image on Rocky Linux. It's got all the tools I need. It's been really solid. And I'm trying out
Podverse again, because why not? If Nix won't work for me, I'll make a podcasting 2.0 app work.
That's the spirit. Thank you, appreciate that zach i think that's fair too you know if you're just trying to get some stuff done uh nix will probably get in your way for a while because
you kind of have to bend yourself to it to get anything done yeah don't pull a linus and i mean
linus from youtube and try to switch when you're super busy so you don't have the time to deal with the
nuances and you just hit yes continue continue I'm busy I don't got time for this that's not
the right time to make a switch it's just not. Gene Bean boosts in with 4,444 sets. I'm just
about to migrate next cloud to Nix and was considering doing the built-in way but will
absolutely be waiting until I hear the results of this quest.
And a follow-up, RoaDucks here,
if only there was CarPlay support in Audiobookshelf.
Yes, but in CarPlay,
you can have pretty easy control over just the audio that's playing,
so it's still kind of manageable.
If he's on iOS, though, that means he's got access to Prolog, which I'm pretty sure does work on carplay assuming he's got a plex back end of course yeah i
think what would be great is the native audio bookshelf app actually got carplay support but
it doesn't even have official ios support it's in test flight and it's kind of hard to get and right
yeah yeah moon or night boosted in 10 000 s sats from Fountain. I'm going to second the 2013 Mac trash can love.
That thing is such a monster.
At my old work, we had one on the test rack that ran Linux, and it frigging chewed through everything, even all the way through to 2020.
By far the beefiest machine we ever had, and it never had any stability or hardware issues.
and it never had any stability or hardware issues.
Isn't it funny how when these computers come out,
you don't really, I mean, you just don't imagine it ends up like this.
And it's such a weird one-off from Apple that they're never going to make again.
And they're not even making x86 machines.
And here this thing is with Xeons and ECC RAM and silent operation.
Wild.
Just, yeah, it's a heck of a machine.
I was very impressed.
Jordan Bravo comes in with 13,345 sets.
He says, regarding NextCloud server on NixOS,
I'd like to learn how others are doing automated backups.
I'm in the process of setting this up with Borg backup
to run in the middle of the night,
but my questions are this.
Number one, what exactly to backup and which directories?
And number two, does the
database need to be locked while backing up? If so, how? Now that is a very good couple of questions.
To take the top one there, the way I backup is I backup the underlying files that are on the file
system for my Nextcloud instance, and then I backup the database each night. And what I really like about our module is the module uses a systemd timer to actually properly do a Postgres database dump and drop
that on your file system. And then you could just grab that with anything, a file system snapshot,
rsync, duplicati, whatever it might be. The NextCloud project has some docs,
which we can link about backup. They say you need to backup the config folder, the data folder, the theme folder,
if that theme is important to you, and yeah, of course, the database.
And then they do mention that there's a maintenance mode that you can do which locks sessions of logged-in users
and prevents new logins if you want to just freeze things at the application layer.
That's like an OCC command.
So if you did want to go that route,
you can put it into maintenance mode
and then do whatever backup stuff you need.
But there are a lot of ways to do it.
Yeah, I like what we're doing,
but I'd love to get more input
because I think that's always something
you want to get right.
Yeah, Nextcloud even has some sample
database dump commands too,
so there's a lot to look at here.
Come and join me in the ZFS cult
and do all your app data on ZFS snapshots.
And that does, you don't have to worry
about stopping MariaDB
or going into maintenance mode
or anything like that.
Just with the magic of ZFS really.
No one ever got fired for deploying ZFS.
Indeed.
But they did for saying Z instead of Z.
The amount of feedback I get on that is, my poor brain's so confused. main ZFS. Indeed. What they did for saying Zed instead of ZFS.
The amount of feedback I get on that is, my poor brain is so confused.
It stands out.
It stands out.
I'm going to read a couple.
Linux Teamster comes in with 10k sats to tell us about his Nextcloud setup.
He was using the Linux server IO setup.
But then he had to take a go at me, which I appreciate.
He says, I've never had a bad upgrade with Nextcloud, but that might be because I've never used SQLite, only MariaDB.
See, unlike Chris, I know how to follow directions.
Anyways, about a year ago, I migrated to LXC container on my Proxmox, mainly because I wanted to keep tweaking in ways the Docker container didn't always like.
Love you all.
We need to send you to the burn unit, Chris, after that one.
I know.
Teamster, you got me.
Appreciate the boost.
Ambient Noise came in with 3,930 sats.
Says, I tried NixOS on a new MVME.
I was going to install anyways.
I went with a stable channel, but things are a little buggy on my PC.
It refuses to suspend.
I found out it's a known NixOS issue with gigabyte motherboards and MVME drives.
I apply the fix.
The PC suspends.
I found most of my other issues were either fixed or unstable,
so I changed to the unstable branch,
and now, well, everything's working and it's fast.
However, now my computer tries multiple times
to re-suspend itself when I wake it up.
Thanks for recommending a moody teenager as an OS.
I think you have a moody kernel, right?
Because that's probably where most of that's coming from
is the kernel layer.
I wonder, you know, if you could actually, just for fun,
I mean, this is just clearly for fun noise,
but if you could roll back to the different states of breakage with the rollbacks,
just to see what that's like.
Could you go back a couple of snapshots and go to a different broken state?
That's fun, right? That's fun.
With Nix, you could actually end up going down different,
you could have multiple broken paths to pick from.
Totally.
Isn't that a fun idea?
Anonymous boosts in with 12,345 sets.
So the combination is 1, 2, 3, 4, 5.
That's the stupidest combination I ever heard in my life.
I'm currently running my Nextcloud instance in an Unraid app,
but I'm considering moving my apps to a Next VM.
Maybe this episode will help change your mind.
Did it? Yeah, let us know.
And I'd also kind of like to know anonymous why.
Unraid was one that I did see in our Matrix chat room,
brought up a couple of times.
Seemed like people were pretty happy with it,
so I'd be curious to know your feedback there so if you're running it
as an unraid app or a container something like that there'll be some upstream docker image
somewhere that you're running let us know what that is well fuzzy miss born comes in with one
two three four five satoshis one two three Yes! That's amazing! I've got the same combination on my luggage!
I also had issues gaming on Linux recently.
I set up a Sunshine Moonlight to stream to my main gaming computer and ran into issues with screen resolutions.
I have it on ultra-wide, which obviously has a different aspect ratio than TVs and the Steam Deck.
I tried all kinds of solutions to switch resolution, used dummy HDMI plugs,
tried X11 versus Wayland,
etc. Nothing worked.
Installed Windows, found a plugin for Sunshine that auto-switches resolutions,
and it just worked. Sad to not use
Linux for gaming, as I've generally been happy
with it, but in this instance,
Windows was just easier.
Hmm, I understand, Mistborn.
My kind of compromise was when I just couldn't get it to work,
just went over to GeForce Now streaming.
I've got one of those old grandfathered-in subscriptions too,
so I pay like a semi-reasonable price,
so I don't want to cancel it.
And I'm always doing the math on it,
but then it is nice when I do have those problems
to have the streaming service.
It has its own unique issues, especially on Starlink, but it's there.
Eric sent us a bunch of feedback on his NextCloud on Nick's journey,
and one of the most amazing things was he was trying to get Collabra working,
and he couldn't figure out why he couldn't get it working.
It turned out he was having connection issues and all of that.
As he went on, though, he decided to go what he calls hashtag Nixnerd,
full hashtag Nixnerd, and package Collabora for Nix.
He says it builds, the runtime is a little challenging
because Collabora expects it to run in each process in its own true environment.
But if anyone wants to contribute, I've got a link,
and we'll put that in the notes.
I've hit a wall for now, but maybe we can continue in the future.
It's been a fun challenge learning how to package for Nix.
Next up, Sterling PDF.
It's already packaged up, but it's not committed.
It just needs that service module now.
Such a great app, Sterling PDF.
We talked about it in Self Hosted recently.
It's just the MVP of PDF life if you've never tried it.
We'll definitely underscore that.
I have really enjoyed having that.
We did that. We recorded that episode of the cell phone.
I installed it that night, and I've used it several times since then.
Don't need Adobe anymore.
Samurai Yeti boosts in with a row of ducks.
I'd love to hear how you guys would set up a coding environment using NixOS and, say, Tailscale.
I've not had the time to dig into it myself,
using NixOS and, say, Tailscale.
I've not had the time to dig into it myself,
but having access to a self-hosted open-source cloud development environment anywhere on any device that supports a modern web browser,
all while enjoying the stability that an immutable operating system could offer,
well, that sounds like an absolute game-changer.
I will add, it becomes even more important
when you start thinking about different types of devices you might use in the future.
You know, I'm not Mr. Web App Guy, but I've been really grateful to have some web apps
when I've been using the native VR apps to do work.
So you never know what future device you might be using.
As far as putting a coding setup on Tailscale and NixOS, that's a good topic.
I can see us taking that on self-hosted too.
That could be one we could chew on.
Noodles has a little advice for Nix beginners with 5,000 sats.
A while ago, you were talking about trying out Nix
and many people were worried about moving their main system to NixOS.
Well, try it in a VM.
The beauty of Nix and NixOS is that configuration.nix file
that can be copied almost verbatim to your Nix machine
and it will work exactly the same.
If you can get it working in a VM,
chances are very high of transferring
that to your main system and having it work there too.
That reproducibility is
amazing, especially in disaster recovery
situations. And having a VM
environment where you can tweak things and not worry about it
and be, you know, quick little reboots, also
very handy. And it's a great way to try things.
Even like the new version of Genome or Plasma.
Genome, sorry. Thank you, Noodles.
Appreciate that. Evil Emperor Zerg
comes in with a row of ducks.
And I like this one. This I'm going to write down
too. I'm taking some notes this segment. Have
you ever done
a RAM-only distro challenge
before? I looked, and
there is an overlap with some of these 32-bit distros,
but this could be a fun distro plus hardware challenge.
Maybe the winner would be the one getting the most performance
with the least amount of RAM.
A RAM-only OS for a week.
This could be a fun one.
Yeah.
If anybody would like to underscore this one or co-sponsor this idea,
boost in the RAM-only challenge.
Give us some ideas.
I'll definitely put it down on the list as a contender.
I immediately thought of a few things we could try.
Then I started thinking,
which one of my systems has the most RAM?
Yeah, I think we all...
How do we run Hannah Montana Linux in RAM?
Oh, God.
You know, the Ubuntu installers got that two RAM flag
on the inner RAMFS.
We just have to all live there for the whole week.
There might also be a way to do it.
I don't recall exactly because I don't use it very often,
but isn't there a way to do that with Ventoy too with just about almost any ISO?
So you could just about make anything a RAM-only environment with Ventoy.
Mazer boosts in with $12,345.
We're going to have to go right to ludicrous speed.
I just used the built-in NixOS Next Cloud service,
and they also sent us a short write-up,
which is nice, kind of details some of the things they're using,
very similar to what we're doing,
except MySQL instead of Postgres.
They've also done some custom caddy work,
not using Nginx,
and had to come up with the right matching rules to use caddy
but got it all working and
I'll link to the config so something to check
out after the show. He includes the receipts
yep we'll link to that thank you
that's not only is it great to just
have that for something we can kind of compare to what
we just did Mazer but I really appreciate the ability
to share that with everybody too.
Max Power came in with a Spaceballs boost
The hell was that? Spaceball won! They've gone to plaid! the ability to share that with everybody too max power came in with a space balls boost the hell
was that space ball one they've gone to plaid i've got a bone to pick with you guys your love for
nix breaks down my distro hopping defenses and i end up installing it it's happened twice now
i love nix shell and the ability to try out software but i ran into trouble with the
documentation when i start reading about flakes my eyes just kind of glaze over and i go download Love Mixshell and the ability to try out software, but I ran into trouble with the documentation.
When I start reading about flakes, my eyes just kind of glaze over and I go download the ArchEye.
So their wiki is just too good.
And it's this old man's comfort zone.
Insert old man yells at cloud.
Jeff, Jeff, Jeff.
By the way, audiobook shelf plus libation is amazing.
So thank you.
Yeah, plus one to that.
Libation is amazing. So thank you. Yeah, plus one to that. Libation is amazing.
Appreciate everybody sending that in.
I think the Arch wiki still is the gold standard in distro documentation.
I feel like the Nix wiki is pretty good for a lot of things and it kind of gets a bad rap. But how do you hold a comparison to the king, right?
I agree.
And also I get the idea of like arch has this brilliant simplicity to it
that nix well nix has a simplicity to it but it's a different kind of thing it's a
it's not once you get flakes involved right it's simplicity through complexity
and it's just so different right like arch is uh everything's just as a pretty much thin
wrapper on upstream so it's like yeah it is just the
standard components the freshest versions of them you good luck here's how they work
the thing is about a flake in particular i i'm with you that eyes glaze over and there was a
there was a weekend or or a week you know last late last year where i finally fought through
the glaze and figured it out if you are a software developer by trade and i think this is where is probably why you find it so easy compared to the rest of us, your brain already works in the way
of flakes, like inputs, outputs, you know, you're dealing with passing data around and all that kind
of stuff, inheritance type stuff. If you're not a developer and you don't write software for a
living, you're going to have to learn some of that stuff for flakes to make sense to you.
And I think the issue with the flake documentation is it's written by the people that understand it who are developers for the most part and so there isn't really that kind of easy
jumping off point yet uh for flakes in particular so if if nix has anywhere to focus on in my opinion
over the next year, say,
it's going to be that jumping off point for Flakes as they become the kind of less experimental arm of the distro.
And I think things like Flake Hub are going to help that and that kind of adoption.
I'll put a link.
I really liked Nix from First Principles Flake Edition by Tony Finn,
which is a sort of series.
It is kind of development-oriented.
You start thinking about how Nix works as if you were going to package something just like starting with
the pure raw Nixlang, and then you build up from there. But seeing all the parts laid out kind of
makes things fit together at the end, I think so. Again, I just want to remark, we seem to be
witnessing a phenomenon here. This is an organic thing that seems to be developing. And yes,
we're talking about it a lot. I appreciate that. But this has also been the history of the show. When these things are developing in the community, the show
ends up kind of really honing in on this stuff. And then what we discover years later is that we
were right in the middle of a new era being developed. You know, we have this with WireGuard,
we have this with SystemD, we have this with Pulse Audio. There has been these events in the Linux
landscape during the history of this show where
the show becomes very focused for a period of time. And I've described this before as Linux
Unplugged is the DS9 of Jupyter Broadcasting podcast where a storyline will continue across
multiple episodes for a while and you'll have a season arc that lasts two or three seasons.
It's not the show. It's not a defining thing about the show, but it'll be here for a while.
When we get some historical perspective on all of this, I think we're going to look back and realize that we were witnessing a transition take place that is going to redefine the Linux community.
I don't know the extent of that transition, and we're in the middle of it right now, so I couldn't even measure it for you.
But I can feel something's happening, and I think that's part of the phenomenon as to why it comes up so often on this show.
But thank you very much, Max, for that boost.
Appreciate it.
Todd comes in from North Virginia with 11,101 stats and says,
Happy Sunday.
Anonymous user 42 from Fountain sent us two boosts, 3,000 stats total.
Kind of wrapping up here and says,
I started listening to the show a month ago,
and I just moved my ARC install on my laptop from ButterFS to BcacheFS.
Okay, now this guy, user42, you are an early adopter, sir.
He goes on to say, I added a USB hard drive as a background to give myself some more storage.
I moved my Windows into a VM, and I created a macOS VM as well.
This is quite the little role.
Wow.
I know, dude.
And it says, I was wondering why ButterFS copy on write is bad for a VM, and if this
is an issue for BcacheFS.
I heard it is because of fragmentation.
But would that be an issue on an SSD?
I do use encryption, so turning off copy on write is not an option for me.
Now, the issue you really have, I believe, and boys, correct me if I'm wrong, with a copy on write file system and storing a VM image there is the write amplification issue you could potentially have in that scenario.
And you could end up with a lot of extra writes to that disk.
I was doing some rough, quick reading and research before the show to try to give you a little value back because I appreciate that you sent in User42. And what I was seeing in early benchmarks
is there is a lot more write overhead
using copy on write on ButterFS
than the same exact setup with BcacheFS.
I don't have a technical understanding as to why that is.
You still have some write amplification on BcacheFS,
but it seems to be significantly less.
I suppose I'd also be curious, you know,
as I wondered, are you worried in the academic sense
or are you having problems with your workloads?
I'd be curious to know how are they performing
for you out of the gate.
Yeah, and please, please keep us updated
on how BcacheFS works out for you, good or bad,
if you stick with it or not,
because you're one of the few listeners I know
out in the wild using it right now.
Yeah, I think there are at least plans to have
the no-cow path for BcashFS
so you can disable that, I think at a pretty granular
level, but
I don't know if that's a mature feature as yet.
Yeah, you're a trailblazer, dude.
Thank you for the boost, too.
Thank you, everybody that boosted a huge, huge
boost segment. Thank you. We enjoyed all of that
very, very much. It's sometimes our very
favorite part of the show.
We had 36 boosters.
We stacked 457,897 sets.
All right.
Also, thank you to everybody who streams, why they listen.
We see you and we appreciate you.
It's often the highlight of our day when we open up that dashboard.
So thank you very much for streaming those sets as you listen.
And thank you, everybody who supports the show, either through a boost, through the membership program,
we do have the Unplugged core,
or by even just recommending the show to somebody
or participating with one of our sponsors' offers.
That all means a great deal to us
and keeps us independent.
We have some picks today,
and we have some really great ones.
And I want to start with one
that I have not yet checked out,
but both Brent and Wes put this one in the doc.
It's called Arion? A-R-I-O-N?
I like it.
Arion? Arion? Yeah, sure.
Okay, what is this, Wes? What is this? Tell me, and why are we linking it in today's episode?
Well, Brent found it, but I have played with it before, so. Well, I found it in our inbox because
listener Charin
sent
this in and says,
hey, great fallback for when you're too
lazy to properly hook something up to run
on Nix. There's a thin wrapper around
Docker Compose that lets you configure
your services in Nix rather than in
YAML. Uses Podman by
default and can support Docker as well.
That creates systemd services for your projects automatically.
So I find myself using it often when some service I want to spin up
requires MySQL or Postgres, and I'm just too lazy to hook it up natively.
So Arian is a tool, basically, that takes the old ways of Docker Compose.
Oh, sorry, Alex, I said old.
Takes the ways of Docker Compose
and just kind of like quickly nixifies them for you
until you have time to actually do that yourself.
Okay, it's a resource to do that for you.
Yeah, you can run it just like you would with Docker Compose
where you just have like, say, a standalone folder
somewhere on the file system
where you go run instead of Docker Compose up,
it's Arian up and it handles it for you.
And you have like a little Nix file instead
of a YAML file. Or you can integrate it a little more deeply
and have it set up in your configuration
on Nix to go call Arian and spin
things up. I haven't used it a ton
because we've been trying, you know, just running
stuff with Nix for the most part. But
when we were first playing with NixOS, I gave it a go.
And, I mean, it really just worked.
You know, it has pretty much all the
escape patches you need to go do any sort of custom stuff that you might be trying to do in the underlined Docker Compose if you just worked. You know, it has pretty much all the escape patches you need
to go do any sort of custom stuff that you might be trying to do
in the underlying Docker Compose.
If you have some, you know, fancy network features
or volume stuff that you need to set up,
it seemed to support pretty much all of it.
I at least tried moving some of our existing thing,
you know, example, Docker Composes out in the field.
They all worked.
Yeah, that sounds really handy.
I always like to jump straight to the FAQ in a project like this. And there's one thing here that just gives me just a hint
of pause. And it's the question they ask is, what is
messing with my environment variables? And obviously Docker Compose
performs its own environmental variable substitution.
And so there are a couple of little gotchas with the syntax there
for a straight lift and shift.
That's a good rule of thumb.
Check out the FAQ.
You know, I like that.
You know, it's like the next, it's the modern version, Alex, of RTFM.
It's RTFF.
Well, you're relying on the project to be honest about their own shortcomings, but.
Yeah, that's true.
Before we get to the end of the show, I have a big question for all of you guys.
Did it nix?
Oh, it nixed.
I think it nixed well.
I think if I would have had just a couple extra hours this weekend,
I would have ripped out my existing install and nixed it.
And I think we're going to transition to this in production, too, for the JB stuff.
It's just a matter of kind of timing that.
But what about you? Did it nix for you brent i mean you got the snap you might have a just as a impending need to switch as i do now i know we are running this on like a bit of a beast of a
computer but just seeing the performance differences like basically one end of the
spectrum to the other it gave me the motivation i think I need to switch this over. So I think it nixed for me.
Yeah.
Wes, did it nix for you?
Oh, yeah.
Yeah?
Yeah?
Good.
I'm glad to hear that.
And Alex, what are your takeaways?
Nixed and blended.
Very good.
I'd like to know what the audience thinks.
Also, you know, in the back of our minds, we're always worried that we're going too
deep with this stuff.
We may be getting too technical, going on too much about modules and NICs and whatnot. That's always something
we're pretty sensitive to. So give us your feedback on that, either by boosting in,
which you can send us a little value if you do, or by going to linuxunplugged.com
slash contact. Also, don't forget, we want to hear about if you even want me to get into what
it was like getting desktop Linux into VR and how you have solved a tiered storage setup
or how you would build it if you were going to solve it.
Because I don't know.
Next week is episode 552.
Nothing really planned yet.
I think we're going to take the week off.
See you next week.
Same bad time, same bad state.
Well, that guy says it.
Yeah, we should have updated the recording.
What were we thinking?
Now we got to do it.
Okay.
All right.
We'll figure it out. No, I thinking? Now we've got to do it. Okay. All right. Well, we'll figure it out.
No, I kid.
I really just appreciate you making it.
Of course, we will be live if you'd like to join us for 550.
We do it at noon Pacific, 3 p.m. Eastern over at jblive.tv.
You can also subscribe in the Jupiter station.
That's a lit feed for now.
It will be coming to the main feed very soon.
Links to what we talked about, linuxunplugged.com slash, well, you probably guessed it,
554.
Right? Is that what it is? Or 549?
You didn't guess it, because I got it wrong.
I probably need a nap now.
You see, Brent, it's you in the pre-show confusing
everyone. Thanks, Brent. It's Brent's
fault. It's Brent's fault. See you next Tuesday. you Thank you.