LINUX Unplugged - 617: The Disposable Server

Episode Date: June 1, 2025

Spin up, share, nuke. We each build a throwaway server, and then rate each others' setups.Sponsored By:Tailscale: Tailscale is a programmable networking software that is private and secure by default ...- get it free on up to 100 devices! 1Password Extended Access Management: 1Password Extended Access Management is a device trust solution for companies with Okta, and they ensure that if a device isn't trusted and secure, it can't log into your cloud apps. Support LINUX UnpluggedLinks:💥 Gets Sats Quick and Easy with Strike📻 LINUX Unplugged on Fountain.FMTUI ChallengeTUI Challenge ScorecardSelf-Hosted 150: The Last One — Before hitting the road, we test the limits of local-first file sharing, debate what self-hosting really is, and share our all-time favorite apps.Pick: ws4kp — A web-based WeatherStar 4000Pick: ytdl-sub — Lightweight tool to automate downloading and metadata generation with yt-dlp.

Transcript
Discussion (0)
Starting point is 00:00:00 Alright, here we go boys! It is time for episode 116. 100? Oh my god, what's wrong with me? Oh god. Going back in time. Look how beautiful we are. Hello friends and welcome back to your weekly Linux talk show. My name is Chris. My name is Wes.
Starting point is 00:00:29 And my name is Brett. Hello, gentlemen. Coming up on the show today, we're getting ready for the TUI challenge by locking into a disposable server mini challenge this week. We'll tell you all about that. Plus, because we love doing this for some reason, we're gonna do a live update of our extremely precious production-grade Nextcloud server. We didn't tell Drew about this beforehand.
Starting point is 00:00:50 He's just finding out if it worked and he got the files. Then we're gonna round the show out with some great boosts and picks and a lot more. So before I go any further, let's say good morning to our friends at Tailscale, tailscale.com slash unplugged. Tailscale is the easiest way to connect your devices and services to each other, wherever they are, whatever they might be.
Starting point is 00:01:11 I'm talking VPSs across multiple providers, your mobile device, your machines on your land. It is modern networking that connects devices directly to each other over a mesh network protected by a wild goll. Yes! Nice one. I mean, we're talking really fast, secure, remote access
Starting point is 00:01:30 that you can get up and running in just a few minutes. It is a intuitive, programmable way to manage a private network. It kind of fills in the gaps that the internet never quite delivered. Back in the day, when I got my first public IP on a land that I managed, every single node was on the public internet.
Starting point is 00:01:47 And that's how you just move files between each other. That's crazy today. But on a tail scale mesh network, which we call a tail net, you can have all of your nodes across complex networks with ACLs that are defined by the admin console that tie into your existing authentication infrastructure. When you go to tailscale.com slash unplugged, you can try it for free on 100 devices for three users, no credit card required.
Starting point is 00:02:12 That's the plan I'm on for my personal account and I've used it for a few years now and I have no inbound ports on any of my firewalls and I realized we need to do this at Jupiter broadcasting to thousands of other companies. Thousands of listeners are using tailscale. Go try it out for yourself or your business. Just start at tailscale.com slash unplugged. Well, the Terminal User Interface Challenge kicks off next week in episode 618,
Starting point is 00:02:38 which will be coming out on June 8th, and we'd love to have you join us. I have in the show notes linked the two we challenge rules, which are the final edition after incorporating everyone's feedback. The idea is for this to run seven days. The objective is to complete some common computing tasks using only terminal applications.
Starting point is 00:02:56 So no GUI apps like Firefox, LibreOffice, Thunderbird, et cetera, other than your terminal emulator, of course. So you can use your terminal emulator, Wes. We have a point system for completing the challenges. There's also some bonus points in there for some creative solutions. We also have outlined how you should share your progress, and I've created a scoreboard
Starting point is 00:03:17 so people can have a little scorecard. Ooh, okay, so it's like the rules digested into a little table? What do we got here? Yeah, so you can track your progress as you complete the challenge and I don't know I don't know my githubs, but I think people could take this and They could post it on their githubs and then they did and they could link it to us either in a boost or on the contact form and Bob's your uncle we could see their score
Starting point is 00:03:43 so there's a total of 170 points available. And so we're gonna total up how we all did and see who comes out on top. I think it's gonna be- I'm getting nervous, because I know you've been doing homework and a bunch of listeners have been building apps and stuff to get ahead on this.
Starting point is 00:03:59 There are some easy low-hanging fruit points. So easy stuff is 10 points. Stuff that's a little bit harder is 20 points. And then things that are a little more complicated are worth fruit points. So like easy stuff is like 10 points. Stuff that's a little bit harder is 20 points. And then things that are a little more complicated are worth 30 points. So you could knock out a few things and get some big points or you could do some of the easy stuff.
Starting point is 00:04:13 And all the challenge tasks, there's a day one task, a day two, all the way to day seven are all outlined in the challenge rules, which we will have linked in the show notes. And we will officially begin at the start of next episode. Ha ha ha. So, I guess figure out your web browser solution.
Starting point is 00:04:30 Yeah, we're gonna need to be able to look at the doc. Ha ha ha. Yeah. So, 618 is when it kicks off, Sunday, June 8th. We will stream that episode live over at jblive.tv and jblive.fm. If you want to have fun with us and join us live or just listen on the download and participate and let us know how you did. Or I suppose just kick back and enjoy the ride. Should be a fun seven days.
Starting point is 00:04:56 Now we're going to do something that you should never do and we're going to live update our production Nextcloud instance on the air. And this is the instance we use to upload this very show to editor Drew and all of our productions. We use it for all kinds of things, but we like to run these things in production and then report back to you how they've actually done. And part of that is updating them live on the show.
Starting point is 00:05:16 And if it blows up, we have to own it live on the show. How you feeling, Wes Payne? About as good as one can. I've at least got the Docker Compose file updated and pre-pulled the images. So now we just gotta, you know, down and up. All right. Can we get a little reminder of how old this box is?
Starting point is 00:05:35 Surprisingly not that old. I don't remember the last time we updated it, but apparently not that far in the past. Yeah, we're like a version and a half behind or something. Yeah, about that. Not too bad for us, actually. All right. Let's give it a go.
Starting point is 00:05:54 Now, best case scenario, it pulls down everything just fine, starts the new container, and there isn't anything you have to do, like in the past, where you've had to enter the container and do some OSC commands or OCS commands. I do sometimes do that anyway, you know, but you're right Hopefully there's nothing and like it just automatically applies any needed data by its migrations. Yeah, let's take a look at the logs Yeah starting up. Okay, we're updating a bunch of apps. So that's probably good. Okay. Yeah, that's always part of this files PDF viewer to 4.0
Starting point is 00:06:24 I'm gonna get a tab ready. so when you tell me to check it, it'll be ready. Uh oh. Starting integrity check. Okay. Integrity check is good. Still going. Uh oh.
Starting point is 00:06:39 Update successful, turning off maintenance mode, resetting log, level initialization finished. Notice, ready to handle connections. Let's go find out then. Okay. I'm seeing activity in the logs. Okay. Get indexed on PHP.
Starting point is 00:06:52 That's me. I'm gonna see if I can log in. Are you ready, West Bay? I am. This is the final test. This would be really great. This would probably be one of our smoothest ever, I think. Except you probably have to log into your password manager several times. Yep. Okay, here I go. Okay,, I think. Except you probably have to log in
Starting point is 00:07:05 to your password manager several times. Yep, okay, here I go. Okay, here I go. I'm seeing 200. Hey, there it is, Wes! You got it! Now the real test is can you actually upload a file, but I suppose that can wait till the end of the show.
Starting point is 00:07:22 Hey, if they're hearing this episode, I think it means it worked. That is the smoothest Nextcloud upgrade we've done yet. ["The Nextcloud Upgrade Theme"] Live right here on the air, well done. That's gotten a lot smoother. That used to be a process where you'd have to go in and then manually do some of those upgrades.
Starting point is 00:07:39 Yeah. It's nice to see that smooth out. So that's on theme with this week's episode. Don't necessarily do as we do. And we, with that disclosed, wanted to try out a little mini challenge this episode. While we were recording the last episode of Self-Hosted, Episode 150, we were remarking in the episode about a common problem.
Starting point is 00:08:01 Some of our favorite self-hosted apps are just not that easy to share with friends and family. You know, Audio Bookshelf I think is a good example of this. Melee is another example of this. LubeLogger is another example of this. And the one that we were talking about in self-hosted, especially when you compare it to the alternative, is Jellyfin. Plex really solves this problem. They make it easy to share media with friends and family if everybody has a Plex account and you're all in. But if you're trying to live the Jellyfin lifestyle,
Starting point is 00:08:31 but maybe you wanna watch a season of TV with your friends, this is hard. Either you have to come up with a VPN or you have to come up with some sort of VPS router that basically is just putting your Jellyfin server on the internet. Or holes in your firewall. Yeah. Or a shared, maybe for your close friends Or it, you know, holes in your firewall. Yeah.
Starting point is 00:08:45 Or a shared, maybe for like your close friends or family, you can have them on your tail net or do like a, you know, tail net share thing, but that gets difficult quickly. And it's one more thing people have to use. They can't just like pull up the Jellyfin client in a hotel. You're gonna have to explain how to like do all the stuff that is sometimes even tricky for us.
Starting point is 00:09:02 And maybe they wanna watch on their TV and they can't install a VPN client. Right. So this is where we started thinking about the concept of a disposable server, which is an idea that I think all three of us have played around with a little bit. Brent, I know that you've kind of done the disposable server
Starting point is 00:09:17 thing on and off as different projects have come up. Yeah, there's one that I created to just basically create an on-demand VPN that I connect to in various countries. So the last time I created to just basically create an on demand VPN that I can connect to in various countries. So the last time I went to Germany, I think I spun one up on a VPS in Germany using NixOS in fact, I think it was with a nice little NixOS configuration that I could just pop up in whichever country I happen to be in. So that's a nice little ephemeral VPN endpoint that I could create.
Starting point is 00:09:45 I think for that I used just a tail scale exit node, but I don't need it to be running all the time. So I could just boot it up when I need it and then tear it down after that. Yeah, I've definitely done the Jellyfin on a quick VPS, synced some files over for friends, especially because for a long time I was running Jellyfin on like an older box
Starting point is 00:10:01 where with my devices for the most part, I didn't need to be transcoding dynamically, like my stuff worked, and it could really support at least one transcode. But if I was trying to watch with a friend or really share it, it just wasn't gonna work. But if I was specifically doing that, especially when maybe some Star Trek
Starting point is 00:10:17 was coming out or something, yeah, just sync a couple seasons over, stand up at Jellyfin, share it with them, and tear it down when we're done. And that's almost a perfect solution. couple seasons over, stand up a jellyfin, share it with them, and share it down when we're done. And that's almost a perfect solution. But it has, I think, one major flaw. And that is every time you did this, you had to upload the media.
Starting point is 00:10:34 Yeah. So we were thinking, wouldn't it be pretty neat if you could have a disposable server, like say a jellyfin instance, maybe to watch a season of a show with a friend, and once you're done, you could totally destroy the server, but the storage would be persistent. So you could quickly start up this ready-to-go self-hosted app, and you would have it auto-connect to remote storage. And then you would just finish the final bits of setup,
Starting point is 00:10:58 and it'd be good to go. But the trick is, is how do you do that? And so we made an attempt. We set off to solve this in our own ways. Chris, myself, using, yeah, that's me, using a new Podman workflow that's still new to me. I was taking advantage of Podman Desktop and solving this. And then Wes took more of a Knicks workflow route to see how he could solve this. So what we thought we would do is we'd present our setups to Brent
Starting point is 00:11:23 and he could score them on a few areas, like a point for cleverness of the setup, a point for easy for others to replicate like those of you in the audience, a point of everything needed to work is included, and then five points if it actually works, which Brent can be the determinant of. So that's what we thought with the disposable server and ideally you could apply this to all kinds of self- self hosted apps like I mentioned audio bookshelf and others and if nothing else even if this isn't something you'd necessarily want to do it's a really fun way to explore some of the really powerful technologies built in the Linux.
Starting point is 00:11:59 One password dot com slash unplugged. Take the first step to better security for your team by securing credentials and protecting every application, even unmanaged shadow IT. You can learn more at onepassword.com slash unplugged. That's onepassword.com slash unplugged and it's all lowercase. If you're a security or IT professional, you've got a mountain of assets to protect, devices, identities and applications. It's a lot.
Starting point is 00:12:26 And it can create a mountain of security risks, too. Fortunately, you can conquer that mountain of security risk with one password extended access management. You know, over half of IT pros say that securing SaaS apps is their biggest challenge. Well, with the growing problem of SaaS sprawl and shadow IT, it's not hard to see why, really. So thankfully, Treleka by One Password
Starting point is 00:12:46 can discover and secure access to all your apps, managed or not. Traleka by One Password inventories every app in use at your company. Then, pre-populated app profiles assess the SaaS risk, letting you manage, access, optimize spend, and enforce security best practices across every app your employees use.
Starting point is 00:13:05 Terleka by OnePassword provides a complete solution for SaaS access governance, and it's just one of the ways extended access management helps teams strengthen compliance and security. My friends and family have been using OnePassword for years. I couldn't imagine their online life without it. And now OnePassword's award-winning password manager that's trusted by millions of users from IBM to Slack. Now they're securing more than just passwords with One Password Extended Access Management.
Starting point is 00:13:31 So take the first step to better security for your team by securing credentials and protecting every application, even unmanaged shadow IT. You need to learn more by going to onepassword.com slash unplugged. That supports the show. It's all lowercase. It's onepassword.com slash unplugged. That supports the show, it's all lowercase, it's onepassword.com slash unplugged.
Starting point is 00:13:50 Well, Chris, as we heard in last episode, you're now living the cloud native lifestyle. So I'm curious if you took that route to build your little disposable server. You know I did, I'm embracing this. And this actually gave me a vast, complex, somewhat confusing world of opportunity and options.
Starting point is 00:14:11 So I could start with a like universal UBI image of rail 10, which they have like micro minimal and a base image. That'd be pretty neat. And I saw, I kind of started there cause I thought, maybe I could build this on a long-term base so then I wouldn't really have to mess with this for years. And this would be great for this style of thing. So I could have one for audio bookshelf,
Starting point is 00:14:33 one for Jellyfin, and you have ba-ba-ba-boom. But things like Jellyfin need modern FFMPEG amongst many other things. So I could sit there and kind of ram it in to rail But I scratched that idea because what I saw was there's a plethora of images based on fedora and often just straight-up Upstream fedora 42 this is nice because you get in there you got DNF so you can actually install stuff The rail images didn't have DNF so I meant super easy to get FFM peg and friends going Easy to get our clone going which I'll talk about more and you are a fedora fan, but
Starting point is 00:15:10 not super great for getting jellyfin going. There's just a lot of repositories and stuff you got to add not everything was available for fedora 42 yet. So I realized I need to think about this from more of a cloud native workflow standpoint and start with Jellyfin. Why am I trying to ram Jellyfin into an image when I could just start with the Jellyfin image with everything working? So I went and got the upstream Jellyfin image, which
Starting point is 00:15:37 is based on Debian 10 Bookworm. No big deal. In there, I'm app getting like a pro, so I got everything I needed installed. Had to add a couple of repos to get all the FFmpeg stuff, but no bigs, everything's packaged for bookworm. So what I ended up with is the Jellyfin container. And then I abused that to include our clone and tailscale,
Starting point is 00:15:55 which I'm not utilizing at the moment, but I thought, boy, I could probably definitely use this with tailscale at some point. So I installed it in there. And then what I did is I set up RClone to connect to our Nextcloud server that we just updated and have a couple of video folders in my home folder that have just the season of TV
Starting point is 00:16:15 I wanna watch with my friends. And I have RClone connecting over web dev, and you know RClone has a mode specifically for Nextcloud. And that goes in there and that creates a mount called slash mount slash horse. And in there, when you go into the slash horse, you see the TV directory and then you have all the Star Trek season one for Star Trek, the original series, of course.
Starting point is 00:16:35 However, and maybe I'll lose some points for this. I used Podman desktop to set this up, which was really great. It really let me explore this quick and iterate through ideas really fast. So I like that about it. And then what was that like? It were you sort of hacking on the container file there and like rebuilding with pod man test. Yeah. So and so what's really, you know, just one step easier is when you launch a container inside pod man desktop,
Starting point is 00:17:02 it immediately opens up a shell inside the container, which, you know, no big deal, but it's handy. It's really, so you can just immediately get to work and you know, you can copy and paste between your web browser and the Podman desktop terminal session. And so it's, it really feels like a first-class terminal experience inside the container.
Starting point is 00:17:21 So you're just getting immediately to work and you're building just like you would any Linux system that you know in building out inside this container. And then're just getting immediately to work. And you're building just like you would any Linux system that you know, in building out inside this container. And then Podman Desktop just gives you a beep export button and it tires up the whole thing for you. But if I could have one verbal feature request for Podman Desktop, it would be to tweak some of the container settings
Starting point is 00:17:40 after you've created the container. And one of the things that I couldn't change after I created it was including, including new devices and changing some of like the environmental options. Those are sort of baked in. Once you've created the container, you have an option at creation to add that stuff. But like a dummy, I didn't think about the fact that this
Starting point is 00:18:03 isn't a complete Linux environment. And so I needed to have few support for our clone, not only inside the container, but I needed few support on the host OS. Well, this was a brand new bluefin setup that I just did on the road last week. And so I didn't really have much loaded on this. So first I had to get fuse working on the host system. And then I realized I couldn't go back and proactively modify these settings in the podman container. So I couldn't pass through the Fuse device like I needed to, so that way the container environment could use Fuse. So I exported the thing out and I did the right thing and I sent it over to Wes. I said, Wes, take a look at this. Tell me what you think.
Starting point is 00:18:41 And unfortunately, I could not access the file. Oh, really? Yeah. Ah, okay, all right, okay. So I didn't get the fuse mount working properly, but I think if I had set it up properly in the first place, and passed that device through. Well you should be able to add it at runtime,
Starting point is 00:18:57 I would think. Well if I, also I think I could edit the YAML that actually sets up the whole thing. Oh yeah, and then rebuild it if you need to. And I opened that up, but, God bless, yeah, and then rebuild it if you need to. And I open that up and... God bless, but Podman Desktop, it's like using front page for YAML, dude. There's like every option that needs or could be defined is defined in this file.
Starting point is 00:19:17 And I open this thing up and I'm like... Oh, maybe I'll just worry about this later. And I closed it. And I was like, I just... This is too much scope creep for what I'm trying to do. So I think we have some extra work to do after the show because I want to see this now I want to get it working. Yeah. Yeah it so the idea I thought was pretty sound and that is I've created a my own version of a jellyfin container that I can throw on any VPS and it would start
Starting point is 00:19:41 It would mount the next cloud file storage It would start Jellyfin. Then I would go to the URL, which I'd be so lazy, I wouldn't even register a domain for. I would just raw the IP right into the browser. And then I would just say, you know, scan the files, because it would be a different set of files from time to time. And I'd have a Jellyfin server. And then we would watch the season one of Star Trek, the original series, like we should.
Starting point is 00:20:04 And then I would just the season one of Star Trek the original series like we should and then I would just blow that container away and Next time I want to do it those files are still there So I could spin up another one and I don't have to re-upload files or I can change them You know at my own cadence at my own will and then the next time I spin up this disposable jellyfin server I'm good to go the storage remains persistent and I could do the same thing with a selection of audio books and all of that. So I loved the idea. I just didn't get it quite across the finish line because I was also learning
Starting point is 00:20:32 Podman Desktop at the same time. Yeah, and the Fuse stuff does add a, device sharing and having to pass through the right stuff with containers can be something that takes a few tweaks to get right. So Judge Brent, I'd like to know what you think of the cleverness of my setup. That's one of the scoring here.
Starting point is 00:20:47 I'm going to give you a point for cleverness. I think you decided on a path you went for it and I think it's quite a nice little solution if you can get it working. Can I argue the reproducibility for others? You could do this on your own. All you need is pod man desktop and then get the jellyfin container and then pop in there and apt install this stuff and configure It for your own storage So it's stuff you would just do on your own box, but you're doing it inside a container
Starting point is 00:21:14 There's a bit of configuration for others to be able to use this but it doesn't sound too daunting So right and for others that would be watching jellyfin They would just go to the URL and it would just work for them. So for like, burden on the viewer, they don't have to install any kind of VPN. It would work on a set-top box. It would work on a phone. It would work on the web browser, because you're just running on a VPS for a small period of time.
Starting point is 00:21:36 And you're just handing us an IP or something like that? OK, so everything to work is included, but it doesn't all work. So everything that needs to work is included. Well, is it? Because you said, you know, Fuse is missing currently to make it all work. Well, Fuse is installed. When you set up the container, you have to pass through the Fuse device from your host. That doesn't sound like everything.
Starting point is 00:22:01 Well, that's just how containers work. I can't solve for that. Oh, fine. OK, are you convincing me here? I think you might be. I don't know. What do you think, Wes? I think, is everything needed? Feels like a stretch.
Starting point is 00:22:12 Is everything included to make it work? Maybe a readme for how to launch the thing with the fuse attached, but yeah, I think so, in principle. So the readme is not included? That's the problem? Well, like, not yet. I think all of this is going to on a Fuse device, right? All these, because you have to have Fuse
Starting point is 00:22:29 to do the amount of the cloud storage. If you're doing the, yeah, tricking Jellyfin into thinking it's just more media. So I think that's just a dependency. So that means three points for me, but I don't get the five points because it doesn't work. Does any portion of it work? Because I'm willing to give partial points.
Starting point is 00:22:46 Oh, yeah, I mean Jellyfin works. Everything works except for the fuse mount. Which is critical. Yeah, yeah. But I mean the same. I'll give you two points on this one. All right, so I get a total of five points. Total of five, that's what you,
Starting point is 00:23:02 well, you know, you could improve here, but for now. Oh, I wish I coulda got, ah. I'll take my five points. Okay, Wes, tell us about your setup. How did you solve this problem? Well, it's pretty similar to yours, really. It's just changing out the orchestration,
Starting point is 00:23:20 tying it together layer to use NixOS and NixOS modules. Okay. So, you know, to use it, you do need to be use NixOS and NixOS modules. Okay. So, you know, to use it you do need to be running NixOS. It needs that as a base because, you know, it'd be packaged up sort of as like a flake you could include and then have some module options that you could set. For my local testing of this, I just had NixOS spin up a Min.io server so it could be an S3 backend. I liked what you were doing with web dev and Nextcloud,
Starting point is 00:23:46 that's clever, but I thought, you know, S3 might be another way, you could just sort of have this hanging around if you already have that kind of storage. So first things first, it's NixOS, so it's gonna be a lot of SystemD, right? SystemD sort of plays the role of what Podman or Docker, and especially Compose does, to like, get all the things going, do it in the right order,
Starting point is 00:24:03 tie them together so they can talk to each other. So first things first, you know, systemd starts up rclone which uses rclone mount to talk to Miniora or whatever S3 server so you could just give it whatever parameters you want in the config to pass through like what's your endpoint and you're gonna also have to pass through credentials which right now I'm just they're just kind of hackily in there. I'd probably migrate that to use a file that gets loaded so that it's a little more properly done. And so then that establishes a mounted file that then in a second systemd service that
Starting point is 00:24:33 depends on the first one starting, that just launches Jellyfin. So it doesn't reuse the NixOS stuff as sort of a second instance of it. It has its own separate Jellyfin systemd service that runs. And then it's sort of pointing stuff so that like the config state dir and databases don't get kept. They're just stored somewhere that'll get that'll just get wiped when you reboot the system. But it does get access to the media folder mounted from our clone. Now the one thing I didn't get working that I was really hoping to is a stretch goal. but it looked like it's configured in kind of a messy way in a SQLite database, not in a config file, is I was hoping to have Jellyfin
Starting point is 00:25:09 pre-configured to just be able to mount the write. Have the collection pre-configured. So the library was already set to go to the RClone mount point? Yeah, exactly. Oh, that'd be nice. That'd be sweet. Yeah, you could probably copy, I guess,
Starting point is 00:25:22 if you wanted to hard code in the pre-configured database file. That's a little hacky. Or maybe you could have a post run systemd thing that would use the API to like, hey, add this. Because I know all the paths already, right? I could hard code those in, just do that, and then tell it to scan the library or something.
Starting point is 00:25:39 So those are stretch calls I did not actually get done, but I tried a little bit. Is that something you can define in the Jellyfin module or something like that? Not that I could see. Jellyfin has a bunch of config to tell it where to store stuff in its config-ter. And maybe there's some sort of special initialization.
Starting point is 00:25:55 But in my searching, I didn't find it. What I was eventually able to find is there's a library.db in the of the state directory that wherever it is, by default it's like.local slash share slash jellyfin, but you can set that with an envar command line. And then there's some tables. If you looked in typed base items, there is a media browser controller entities collection folder and physical location list.
Starting point is 00:26:23 And then that seems to have the right stuff. So there's clearly a bunch of state. I don't quite understand that you'd need to replicate stuffing it into a SQL I database is totally doable. Uh, but that's where maybe doing it via API call might be more practical. Yeah, very well. Maybe jellyfin also has some sort of startup parameters where you can just pass them that would be nice.
Starting point is 00:26:40 Yeah. Hmm. Um, but I was able to get it working. I used a sort of pinch flat alternative that I found recently that I snuck in as a sneaky pick later in the show. Oh good. So I was able to use that to just download
Starting point is 00:26:53 some YouTube videos into a collection format that would work for Jellyfin specifically. Yes. And then I synced that into Min.io. And then I was able to get my system going, pointed at that local Min.io, so I didn't have to worry about actually syncing these things over the network or anything, but it would all just work
Starting point is 00:27:09 with whatever S3 provider that you set up. Yeah, and then I watched some nature documentary, I forget which one, about the largest thermonuclear bomb. So it worked that far. That's not a bad way to just set up your own private YouTube and let a VPS just turn away at that stuff. So definitely a clever setup. I would say Brent gets a point for that, right?
Starting point is 00:27:27 Yeah. I feel like maybe we should take your cleverness point away because his seems. Whoa. Wow. Okay. We'll both give you one, but I don't mean to be the bad guy here, but I do want to argue the point for easy, easy for others to replicate. It is in one sense, but it does depend on NixOS
Starting point is 00:27:45 as the base OS, which is tricky on a VPS. Where mine you could do on any base OS. I do think I could probably, because I was just running ArcLone and Jellyfin, I could convert that to containers built with Nix. That could be a future option, but I did not do that for this challenge. Right, yeah, yeah, so that's the problem though,
Starting point is 00:28:03 because you'd almost be looking at a Nix takeover before you could really make this challenge. Right, yeah, yeah. So that's the problem though, because you'd almost be looking at a next takeover before you could really make this home. Now maybe you already have that, but I do love the reproducibility of mine in the sense that it's, not reproducibility, but the, you know, what am I looking for? Portability, the portability.
Starting point is 00:28:18 Yeah, it runs anywhere Python runs. Yeah. That's nice. That is, that's a very real trade-off for sure. I don't know, I don't know. I'm willing to take one last point there. You have to be the decider though. Yeah, now you nice. That is that's very real trade-off for sure. I don't know. I don't know I'm gonna take one less point right you have to be the decider though Yeah, and they've seen both options for the fun of the game. I'll give them a zero on this one. Oh Okay, so one point for Weston. No point there. Okay, everything needed included to make it work
Starting point is 00:28:39 I think you got this one, right? Yeah I mean you have to specify like the s3 and point connection stuff and all that, but the it handles everything after that. So point number two for you. Well I don't know I have an argument here the whole NixOS requirement. Yeah that's not included I don't set that up for you. It's also right? It's quite a hard one. I could probably build a VM image. Oh no! Okay, all right, so let me think about this. Hmm, hmm, hmm, that is a good point. But Chris didn't install pod man for you. Oh, I guess you could make that argument that you would Yeah, I'll keep going. That's like you believe a lot simpler And I'll be it's arguably gonna be like included on some of these VPS is already
Starting point is 00:29:18 It's like one line with next I'll give you a half point Okay, so we're getting granular one 1.5 points right now for Wes. Now here's where you're going to make it up though, Wes, because you get five points if it works. So Wes, did it work? I think it worked. It worked, yes. I can pull it up here. So that means 6.5 points.
Starting point is 00:29:40 I can verify. There it is, right there, a full episode. National Geographic, that's the Geo. So 6.5 points for I can verify there. Oh, yeah So six points for Wes and Chris you got a big five points or was it for I thought okay fine I'll take five I wonder what I you know, I'm trying to think back what I could have done differently Maybe not have used our clone and did something else I don't know what else I could have done house to solve the storage problem differently, maybe not have used our clone and did something else. I don't know what else I could have done. How else to solve the storage problem.
Starting point is 00:30:08 You do want something, unless Jellyfin has a way to have remote storage natively. You want something that will look like a normal. Well, but you could maybe, I mean, you could do Samba or NFS. Or what about solving it at the host? You know, this would be a dependency in a case, but like, if I was just thinking about the way I would do this, I might mount that fuse file system on the host. And then not bother with permissions or pass through. Yeah.
Starting point is 00:30:32 And then it's just like, you know, map it through to the container and like in slash media inside the containers actually pointing at a mount on the host file system. Doesn't mean you have more host container coupling and more orchestration concerns for the host. But it means simplicity to it. But then it means I wouldn't be having to add fuse to the Jellyfin container. I'd only be going in there.
Starting point is 00:30:52 Oh, and our clone. The only thing that I think it'd still be worth adding is tail scale. That is really handy, because if you do have a tail net and you just put Jellyfin on your tail net, that's- Yeah, definitely. Like in mesh network, VPN integration,
Starting point is 00:31:04 so you can just, wherever you stand it up, it automatically connects to the storage. There was a version of this too we discussed where the application runs on the host, but it's using network namespaces with something like Netbird. And then you just, if you were watching on a PC, you could have a browser that when it launches,
Starting point is 00:31:21 connects to that namespace, that has a similar namespace on your local machine that also is on a net burden network or a Tailnet and then the browser is just on that names network namespace and the jellyfin applications on that network namespace and maybe they're both on a mesh VPN and You could just do it that way like that per application network namespace layer Which would be a really fun way to solve this but there's no way to solve that for the set-top box It only work on the desktop, a Linux desktop, so.
Starting point is 00:31:47 But maybe there's another way to do it. Let us know how you do it. You can send us a boost or go to linuxunplug.com slash contact. If you'd like to support the show, this is independent media that we make for you. You can support us directly by becoming a member at linuxunplug.com slash membership. You get the bootleg, which has
Starting point is 00:32:05 a whole bunch more content and I think makes the whole membership worth it. But if you like something a little shorter still with all those editor drew touches, then you can get an ad free version of the show. You can do the Jupiter party membership and support all the shows, including some new stuff we're working on. That's a Jupiter dot party, or you can support just the show. Linux unplugged com slash membership. You can also support each individual production with a boost and fountain FM has some really incredible things in the works. It makes it super easy to boost and it's only going to get easier. Check that out at
Starting point is 00:32:33 fountain.fm. Then you also get all the extra podcasting 2.0 features as well. And of course, you can always sponsor if you think maybe there's a product you have or a service that the world's best Linux audience should know about, reach out to Chris at jupiterbroadcasting.com. Well this week we were lucky enough to receive two space balls boosts from our dear hybrid sarcasm. So the combination is one, two, three, four, five. Yes. That's amazing. I've got the same combination on my luggage. First question here. So Chris, why bluefin and not silver blue, aurora,
Starting point is 00:33:11 bazite, or something else? I have one part of the answer. He's a GNOME guy now. So it couldn't be aurora. Well, actually, that is kind of it. I've kind of gone for a GNOME workflow on my laptops. And I was on the go and this is the machine I'm gonna be using for a bit
Starting point is 00:33:29 for the TUI challenge and whatnot. And I kind of wanted to get into this workflow quick and something that was just while I was on a trip, I could swap over to and not spend a lot of time setting up. And so Bluefin seemed like a good fit for that when I was sort of, you know, just weighing my options there. Yeah, I wonder maybe if one comparison that's useful would be just bluefin versus silver blue.
Starting point is 00:33:52 Yeah, I felt like it was just sort of more ready to go. You know, like they have, they've taken some design choices there. They've made some choices like brew. Like there's just things in there that just make it ready to go compared to like, I felt like silver blue would be, I'd spend the whole day setting up my laptop.
Starting point is 00:34:08 Maybe it's more of a little base that you can start with and make something great, but it's a little more lean than what you get. Yeah, I don't know if this is where I stay for this. What I was fantasizing about, I don't know, maybe this was just me being a rookie, was fantasizing about somehow remixing bluefin to my own tastes. Yeah, I mean mean you can build your own image from there.
Starting point is 00:34:27 Well I... You're probably using podman desktop. That's what I was trying to figure out, but I never quite got there. I haven't gotten there yet. But that's where I was hoping to take it. So I started with Bluefin thinking that I would from there take it in my own direction. Crispin. Fishfin?
Starting point is 00:34:40 No. I like that. And the second Spaceballs boost here. Also, can we get an update on the race for the 2025 Boosties winner? That's not possible. Nothing can do that. Okay, request noted. We're recording earlier this week, so with the timing, I have not yet pulled those. But probably for the next episode, it could.
Starting point is 00:35:04 I'll tell you what, the news is going to be bad. You know, it's just we've had a few changes in the technology space. Albie has transitioned from a custodial service to Hub, which means some of the podcasting 2.0 apps are harder to boost with. And you know, there's been a lot of price action. So I think it's going to be a lot less than we
Starting point is 00:35:23 were at this point last year. But maybe a little competition will spur some. Yeah, perhaps. BHH32 came in with 2500 sats. The heck? I'm working on trying to make a video player as a TUI with real video, not ASCII videos. I've got a very rough prototype working that prints the controls and the time elapsed. The plan is to allow Jellyfin and YouTube streaming alongside local videos. I hope
Starting point is 00:35:47 to have enough done in time for the TUI challenge for you fellas. Yes that is so great. We might just have a hope yet. I would say send the project along like whichever state it's in. I'm sure our audience would love to give it a test. We would love to give it a test and to help you develop this thing. Yeah, if you need the bugs found, we got a guy. Gene Bean boosts in with 5,468 cents. I like you. You're a hot ticket. Chris, I am stoked to hear what you are going to do with Bluefin and Image Mode.
Starting point is 00:36:21 I am getting just started. It is a whole world gene. I realized I have a lot to learn. Learning quick though. Tread and water at least by the way. Lazy. It is a great two. We tool. Okay.
Starting point is 00:36:33 Yeah. Lazy get, I've heard that is a good one. We should check that out, right? We should check that. It is good. I've tried it a little bit. I like that gene being. It's good to hear from him.
Starting point is 00:36:41 He's a good guy. He's a real good guy. No, he great guy. Another good guy is Zach attack 6 real good guy. No, he's a great guy. Another good guy is Zack Attack. 6,000 sats sent in this week. Happy to hear you jumped Bluefin. The biggest change for me was getting used to using Brew to install terminal apps and app containers.
Starting point is 00:37:02 You know, Brew for me isn't too bad just because it was my lifeline anytime I had to use Mac OS. Yeah, you are familiar with Brew. Yeah. You know how to re-link all your Python interpreters? I'm sorry? Do you need to lay down? Zach continues here, the escape hatch of layering items for the Fedora repo is handy as well,
Starting point is 00:37:21 but it used to be used only when needed. YouBlue handles the updating of distro box containers, which is very slick. I'm putting Aurora on my parent's system with a weekly reboot knowing I don't have to worry about it getting behind on updates or something breaking in it. Yeah.
Starting point is 00:37:36 That's a good test. Yeah. That's so nice. I think when a distro gets to friends and family status, that is a good test for it. Handling the distro box containers, too, is nice, because I imagine that is something I'm going to be taking advantage of.
Starting point is 00:37:52 Thank you, Zach Attack. That's a great field report. Appreciate it. Jordan Bravo's here with 5,555 stats. ? I finally got a chance to set up Albie hub on my home server heck yes, buddy Well done. So now he's boosting from pod verse which he's connected to his Albie hub. So this is a fully free software Self-hosted stack I'll be up here Albie hub is free software pod verses free software. The lightning network is free software
Starting point is 00:38:23 He says by the way, it looks like the most recent pod verse release for Android was from mid 2024 has the project been abandoned No No, they are they are just they've decided to go the direction of a rewrite as you can imagine that takes all of their focus But they are fired up about it. They are passionate about it. They've got a lot of great ideas and lessons learned So I've definitely seen Mitch active in Matrix, helping folks and answering questions. I'm very excited about the next release of Podverse. Or when they get the rewrite done. That's, woof, big.
Starting point is 00:38:52 Hey, do you remember Boost CLI? We used to get a few folks sending boosts in via CLI. I haven't seen that in a bit. Oh, yeah. Maybe we need to make sure there's Boost CLI plus AlphiHub Combat. Yeah, we need a Boost CLI sound to recognize the heroes. Make it worth the while.
Starting point is 00:39:07 Mm hmm. Mm hmm. Thank you, Jordan. Good to hear from you. And our final boost today, Jor-El69 comes in with 15,000 sats. Or as Drelblitz said, 150 hundreds sats. Oh! Thank you for helping us help you help us all.
Starting point is 00:39:24 I'm a bit late for the final self- self hosted episode, but I want to say that the self hosted podcast was my entry point to the Jupiter network and I will really miss it. Many thanks to Alex and to y'all for reigniting my passion for Linux and owning my data. Hey, oh yes, more of that. Love to hear it. Alex mentioned in 150 that he's gonna be getting a bus and traveling the country, so now we're just trying to talk him into coming up here and doing an episode with us. Maybe some meetups. Good road trip, right? It'd be a good road trip.
Starting point is 00:39:52 All right, thank you everybody. We are recording early this week, so it's a humble boost summary, but we'll get to it. It's not so, well, we had 21 streamers and collectively they stacked 29,821 sats. Thank you everybody who streams them sats as you listen to the show. And then when you combine that with our boosts,
Starting point is 00:40:11 we stacked, I think our lowest this year, 89,034 sats. Lower expectation. But we are recording a little early and we thought something we've never done before since the beginning of taking the boost, I think, when we set the 2k sat limit, let's do a boost sale. So we're going to lower the cutoff that we read on the show to 1000 sats since the sat price has gotten a little higher. So if you've been wanting to boost in and get your message read on the show to 1,000 Sats, since the Sat price has gotten a little higher. So if you've been wanting to boost in and get your message
Starting point is 00:40:46 read on the show, for next episode, the cutoff will be 1,000 Sats, and we'll read 1,000 Sats and above in our Boost segment. So it's a good chance to get your message in on sale, as they say. Crazy Brent's Boost sale. We can call it that. I'm fine with that.
Starting point is 00:41:04 I'd also like to know what people thought of our Red Hat coverage. Sometimes the boost coming in is a little bit of a signal for us, but if you enjoy the coverage, let us know. If you didn't, also please let us know. That way we can change things next time. It is a lot of work we could just avoid.
Starting point is 00:41:19 Ha ha ha. I suppose people don't like it, that's a great point. But yes, that is always a feedback that we very much consider All right We have not one but two picks for you before we get out of here and this first pick and I'm glad I'm really glad Wes found a second pick because I have to disclose right off the top this first pick is It's us only because it requires
Starting point is 00:41:41 Noah weather data which is only in the US. But if you are in the US, you are going to thank me for this one. This is called WS4KP. And it's a web-based. WS4KP. It's a project, it's a web-based project that aims to bring back the feel of the 90s with a weather forecast that has the look and feel of the 90s with a weather forecast that has the look and feel of the weather channel at that time, but using modern data.
Starting point is 00:42:11 So it also has a kiosk mode so you can put it up on your tablets in your home. If you ever have seen the weather channel, it looks exactly like the old weather channel. And they have a live demo so you can go check it out, see what I'm talking about, and you're going to fall in love with it. Chris, what are you talking about? What are you talking about? go check it out see what I'm talking about and you're gonna fall in love with it You're so Chris. What are you talking about? What do you what do you talk? Go check it out? It's so ready have the weather channel now, bro. I really love the old weather channel and it's got a music mode So I recommend when you check out the live demo turn on the music so you can get some of this great smooth jazz it's got several settings you can configure and a Full screen mode if you want to pull it in, as well as a tall and wide mode.
Starting point is 00:42:46 And it looks like if you had a fancy VCR that was also a weather app. Yeah, you remember those? Uh-huh. From back in the day. Or there were a few channels that just had this on one of the channels. Right. And it actually is clean and useful information, well displayed, that I would love to figure out a way
Starting point is 00:43:05 to plumb into my EarthSats TV setup. Yeah, visibility here at the studio, 10 miles. That's right. And the ceiling is unlimited. So go check it out. Again, it's a weird name. It's WS4KP. I know it sounds like a strange pick,
Starting point is 00:43:20 but you are going to love this so much. And if you set it up somewhere in your home, please take a picture and send it in. I wanna see this. You can also check out the demo at weatherstar.netbymatt.com. And it is MIT licensed, so you could always fork it and maybe set it up to use a weather API from your local area.
Starting point is 00:43:38 I don't know, should be possible. But not one, but two of them, Wes. Two. Yeah, okay. Check out ytdl-sub. It's a lightweight tool to automate downloading and metadata generation with ytdlp. So it's just kind of some more Python on top of ytdlp
Starting point is 00:43:59 to automate using that to go get all the data out of YouTube, both metadata, subs, and the actual video files. And then it knows how to stuff them into the data out of YouTube both metadata subs and the actual video files And then it knows how to stuff them into the various formats for popular stuff like plaques or jellyfin This is great. If you don't want something like pinch flat You just want a few songs or a couple of videos, but you do want them on a media center It supports Cody's formatting jellyfin like you said But also it supports a lot of the websites that YouTube DLP supports that are not just YouTube. So like SoundCloud, Bandcamp, and others, and it knows how to get that metadata and
Starting point is 00:44:29 then format it so your TV media center can display it appropriately. Yeah, and it did by, you know, at least in the examples I tried, it did a good job of pulling in the right kind of metadata for me and worked nicely. And it's got a lot of fancy files. You have like a YAML file that you kind of define things. By default, it's really well set up to do like shows by date So it'll make like seasons that are you know for the year and then episodes within there from the channel And you can specify like only keep the last two months or only keep up to 30 episodes
Starting point is 00:44:56 So if you don't want to download everything ever for a new channel, you just want to start following it. That's made pretty easy Mmm, I you know the way I would practically use this is I would install this on my Jellyfin server, and then I would just create a YouTube directory that I have added as a library to Jellyfin. I would go to that YouTube directory, and I would just use this to pull down the stuff I need, along with the videos that I would get. Yeah, so I think you can like automate it in the background to run. Oh, sure. Or it's neat because it kind of does scale down nicely. I was able to copy their demo YAML,
Starting point is 00:45:26 tweak it a little bit to include what I wanted, and then you just kind of run yt dl-sub, and then the sub command, and then you point it at the YAML file and it just starts going. In Jellyfish it was easiest pointing it at that folder and it recognized it immediately. You can see this too, like you just want to back up a single channel.
Starting point is 00:45:42 Right. And you only do that once. Yeah, you don't need a full server that's running in the background and everything. You could automate it, but yeah. And it works, they've got an installation on a lot of stuff. So they have a Linux server IO based Docker image. They've also got one with the like VS code server running.
Starting point is 00:45:57 If you want to edit the YAML file inside of there from like a. Man, that's easy mode right there. Yeah, CPU and GPU pass through Windows unraid Arm is supported you can also just install it with pip too because it's basically just Python using my TD LP This is a great pick YTDL sub will have a link in the show notes which are at Linux unplugged comm slash six seventeen and Yes, it's packaged in NICS and there's a next OS module for it, and that's how I found very good Wes very good And GPL V. I was just gonna to say, it is GPLV3, so, you know, mix and match as you like.
Starting point is 00:46:31 Well, I'm pleased to say we will be back at our regular live scheduled time, so you can make it a Linux Tuesday on a Sunday. You can join us Sunday at 12pm Pacific, 3pm Eastern over jblive.tv or jblive.fm. See you next week. Same. Eastern over at JBlive.tv or JBlive.fm. See you next week. Same bad time, same bad station. And don't forget, since episode 600, every episode of Linux Unplugged has a transcript, which you can review and use or plug into an LLM
Starting point is 00:46:57 or whatever it is you might like. And they're available in the podcasting 2.0 apps and they're also available on our site. And every episode is chaptered, so if there's something you did like or didn't like, you can play it again or you can skip it again. Go right to the good stuff, skip to the picks, you know? Yeah, why not? It's really the picks is what everybody wants. That's the thing. All right, thank you so much for joining us on this week's episode of Your Unplugged Program. Contact info, mumble, matrix info, all of that's at our website website and we hope to see you right back here next Tuesday as in Sunday! So
Starting point is 00:48:14 If we were going to wait one or two more weeks for the TUI challenge, I was really going to try to get an old school computer that is just a terminal going. I love that idea. I think that would have been a lot of fun. And still something I might do eventually is just really something from like the IBM PS2 era or a really old Mac that you can somehow connect to the internet. That's my dream for the TUI Challenge. And if anyone out there has the opportunity to do this,
Starting point is 00:48:36 if you're the person out there that has that machine in your closet, this is its moment. Go wake it up and put it to work and it'd be the perfect machine for the TUI challenge. I can already see you're gonna be asking me to copy your messages from the BBS over to Matrix.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.