Agentic Homelab Introduction ETHAN: Hey, did you cut your hair? ASHLEY: Yeah, on Saturday. Thanks. ETHAN: It looks great. So, what else did you do this weekend? ASHLEY: My sister finally got an afternoon without the kids, so we went to the botanical garden. We spent most of it talking in the shade. ETHAN: You could've done that in your backyard. ASHLEY: She needed to get out of the house. So did I. How about you? ETHAN: I spent Sunday replacing the switches in my keyboard. It took longer than I expected, but at least the space bar doesn't sound like a stapler anymore. ASHLEY: It was pretty loud. ETHAN: It was driving me nuts. ASHLEY: Producer Jen, how'd the garage go? PRODUCER JEN: Well, I got through one shelf. Found that screwdriver I'd been looking for, though. ETHAN: That's progress. PRODUCER JEN: Yeah, I'll take it. ASHLEY: All right, let's get into it. ASHLEY: Welcome to Agentic Homelab. I'm Ashley. ETHAN: And I'm Ethan. We're talking about running services at home with help from an AI assistant. I've got an old computer and a few things I'd like it to do. The part I'm less excited about is becoming the person who has to fix everything every weekend. ASHLEY: Same. I want the movies to play and the family files to be there when someone needs them. Let's work through what the AI can actually take off our hands, and what we need to set up first. Planning the homelab ETHAN: I'd probably start by installing Plex and copying some movies over. At least then I'd have something I could use. ASHLEY: What happens if the computer dies halfway through that copy? ETHAN: If I still have the originals, I can start again. If I've already erased them, now I'm in trouble. So before installing anything, I'd want to know which files exist only on that machine. Jen, what would you add before we touch those files? PRODUCER JEN: Ask the people who use it. A folder called “old stuff” could be tax records or someone's school photos. The AI isn't going to know which. ASHLEY: That's a useful first conversation with it: “Here's what I want to run, here's who uses it, and here are the files I can't lose.” Then let it inspect the computer without changing anything and explain what it finds. ETHAN: I'd also tell it when people need this stuff. People can live without Plex for a bit while I fix it. The network can't go down in the middle of someone else's work call just because I've started a project. ASHLEY: Then let's start with the old computer and leave the network alone. I'd want to know we can still get into that server if something goes wrong, before everyone starts using it. ETHAN: Once we can do that, let's try Plex on the living-room TV. Everything can look fine on the server's dashboard while the TV is signed into the wrong account or Plex can't read the movie folder. I'd ask whoever normally watches on that TV to try it with their own account, too. ASHLEY: That's something the AI can help track down. Is the TV connecting to the right server? Can Plex actually read that movie folder? Now we've got somewhere to start. ETHAN: That's where I want the help. I'd rather describe “this movie won't play on this TV” than learn every setting before I know which one matters. ASHLEY: I'd want it to explain what it's checking, though. If it's telling me to change settings and it hasn't even checked whether the movie file is there, I'd ask it to look at that first. ETHAN: And save the answer somewhere we can find next week. I don't want a new conversation to send us through the same checks again. AI permissions and recordkeeping ASHLEY: We're doing this from a Mac, so that's where I'd keep our notes. They can go in a project folder: what server we've got, what's running on it, and what we've changed. The AI can keep those notes up to date as we go. ETHAN: How much are we writing down? Are we saving everything the AI said? ASHLEY: Much shorter. Something like: “Plex now reads movies from the NAS. We played a movie on the living-room TV, and it worked. The old copy is still on the USB drive. We still need to try restoring a backup.” I'd put the folder locations in there too, and which settings file we changed. ETHAN: Next time, the AI can compare those notes with what's actually on the server. Somebody might have changed a setting since we wrote them. I'd also want to open the instructions without the AI app, especially if that app isn't working. ASHLEY: We can back up that project folder to a separate drive and encrypt the backup. Then we'd have another copy of the recovery instructions if the Mac died. We'll get to where its password lives when we cover backups. ETHAN: I'd be more careful with the full conversations and logs. They can contain passwords, private filenames, and things you didn't intend to share. I'd keep any that I need in encrypted storage outside the AI's normal project folder. ASHLEY: If we want another model to review a problem, we can send just the settings and errors it needs to see, with passwords and personal details removed. Sending it the whole history usually isn't necessary. ETHAN: How are we logging into the server? From the Mac, we'd normally use SSH. That lets us open a terminal on the Linux machine and run commands there. We'd need an account on that machine. ASHLEY: I want a recovery account that I control, separate from the account the AI uses for routine work. I get administrator access. For the AI, I'd start by letting it check the services we're working on. ETHAN: Does that mean I'm approving every little command? ASHLEY: No. If we've said it can read Plex's logs, it can keep doing that. We might also let it restart Plex without asking each time, once we know what that would interrupt. But “help with Plex” shouldn't automatically give the AI permission to erase disks or change the router. ETHAN: We need to set up the account that way, too. If the AI can get administrator access whenever it wants, a note saying “ask first” doesn't keep private files out of reach. ASHLEY: I'd test that with a file we don't care about. Give it the same restrictions as our private files, then have the AI try to open it. We should see 'access denied.' ETHAN: And make sure it can still check Plex's status. We don't want to lock it out of the things it needs. But what if I've broken the router? How do I get in with my recovery account then? ASHLEY: One option is a direct Ethernet cable between the Mac and the server, using spare network ports or adapters. Each end gets a fixed address on its own small network. That lets you connect by address without asking the router to assign one or look up a name. ETHAN: So the AI can look at the addresses we're already using and pick a separate range for that cable. We put those settings on the spare ports and leave the normal connection alone. ASHLEY: Right. Then, while you're sitting there with both machines, turn off the Mac's other network connection and try logging in over the cable. Otherwise, you might still be going through Wi-Fi without realizing it. Keep the server's address in front of you, along with the steps to turn your normal connection back on. ETHAN: Before we leave the Mac running jobs on a schedule, I'd restart it and make sure I can still open the project files and connect to the server. And I'd check its sleep settings. It needs to be awake when the job is supposed to run. ASHLEY: Some of those jobs may be better off running on the server. We can get into that once we have something running that we want to keep an eye on. Server hardware and operating systems ETHAN: Back to the old computer. I'd see how it holds up when it's working hard before spending money on upgrades. We'd be asking it to stay on all the time. I'd want to find any memory or disk problems now. ASHLEY: What would you actually run? ETHAN: I'd start with a memory test you boot from a USB drive. For the disks, I'd see whether the manufacturer has a diagnostic tool. The AI can look those up for this computer and walk us through running them. Then we need to read the results. 'Test completed' doesn't necessarily mean it passed. ASHLEY: And keep an eye on the temperatures while those tests run. If the machine overheats or shuts down, we need to find out why before putting our files on it. Drive health reports can reveal problems too, though a clean report doesn't guarantee a drive won't fail. ETHAN: I'd also copy a test folder across the network and back. If the transfer stalls or the connection keeps dropping, we can look into that before copying the whole library. We can compare checksums to see whether the files arrived intact. The computer calculates a number from each file. We want the number for the copy to match the one for the original. ASHLEY: What would you put on it? Ubuntu Server seems like a good place to start if we want to learn Linux. The long-term-support versions get updates for several years. You can check Ubuntu's release page to see when support ends for the version you're looking at. ETHAN: Maybe. If I mainly wanted somewhere to keep and share files, I'd also look at TrueNAS. It gives you a web interface for managing disks, shared folders, and backups. So we wouldn't have to set all of that up from scratch. ASHLEY: TrueNAS does expect you to use its tools to change settings and install updates. With Ubuntu, more of those choices are up to us. I like having that control, but it also means more things to figure out. ETHAN: I'd also look at Proxmox if I wanted to run several virtual machines. Each one acts like a separate computer, with its own operating system. I could mess around in one without changing the software in the others. ASHLEY: For Plex alone, though? We'd have to get Proxmox and its network settings working again before we could bring Plex back after a failure. I'm not sure I'd add that much just for one service. ETHAN: Fair. I'd save Proxmox for when I actually need those separate machines. For this old computer, I'd probably choose between Ubuntu and TrueNAS, depending on how much of the setup I want to do myself. ASHLEY: Either way, the installer is going to ask which disk to use. That's where we could erase the wrong one. Before we open the installer, I'd ask the AI for a list of the disks, with their model and serial numbers and what's already on them. ETHAN: Linux's short drive names can change between boots. If a drive was called “s d b” yesterday, I wouldn't identify it by that alone today. I'd match the serial number with the one in our notes. If we still can't tell the disks apart, we can check the labels on the drives themselves. ASHLEY: For any files we're keeping, I'd make separate copies before installation and open a few photos, documents, and videos from the copies to make sure they work. If the copy failed, we still have the originals. ETHAN: Keeping the operating system on its own small disk would make recovery easier too. If it dies, we can reinstall the operating system without erasing the disks that hold the photos and movies. We still have to identify those disks correctly during the reinstall. ASHLEY: Jen, can you help us think through what happens if the power goes out during all this? PRODUCER JEN: I'd want enough battery time for the machine to shut down, and I'd include the network equipment it depends on. If the server stays on but the storage box loses power immediately, we haven't solved much. ETHAN: That's what a UPS—a battery backup—can help with. The manufacturer usually has a chart showing how long the battery should last based on how much power you're using. We'd look up the combined power use of the equipment we're plugging into it. The UPS also has to tell the server when the battery is getting low so it can shut down automatically. That connection is often USB or a network cable. ASHLEY: Once that's set up, I'd try the manufacturer's shutdown test at a time when nobody needs the server. Let everyone know it'll be down, and keep the recovery instructions nearby in case it doesn't come back on its own. ETHAN: Once the power is back, I'd open the shared folder from the Mac, create a file called “restart test,” save a change, and open it again. Then we'll know we can actually use the shared folder again. ASHLEY: That's usually SMB doing the file sharing—the protocol Finder and Windows Explorer use to talk to the server. But what if the Linux server gets those files from another machine? Storage and backups ETHAN: Say it gets them from a separate storage box—a NAS. Linux can attach that storage to a normal-looking folder on the server. Attaching it there is called mounting it. ASHLEY: That's different from the Mac just opening the shared folder in Finder? ETHAN: Right, this is happening on the Linux server. For example, a backup job might write to a folder called “Family,” expecting it to be on the NAS. If the NAS wasn't mounted when the job started, that folder could still exist on the server's system disk. ASHLEY: And if the job is allowed to write there, it might fill the system disk while we think it's writing to the NAS. When the NAS is mounted again, we see its files in that folder. The ones we accidentally saved on the server are still underneath, taking up space, but we won't see them there. ETHAN: Just losing the network connection doesn't necessarily cause that. If the NAS is still mounted, the job might get stuck or report an error. It can write into the local folder when the mount is missing. And with a job running in the background on a server, we can't count on a pop-up telling us something's wrong. ASHLEY: How do we prevent the job from using the wrong folder? ETHAN: On Linux, systemd—the service manager—can make the job wait until that storage is mounted. We can also have the job check that it's about to write to the right disk or NAS. Just checking that the folder exists isn't enough. ASHLEY: Have the AI show us what's mounted there. Then we can try the check on a test folder with its storage unmounted—so it's no longer attached to that folder. It should stop and tell us the storage is missing. We shouldn't find any files written to the server's local folder. ETHAN: Of course, the NAS could disappear after that check passes. If the job can't finish writing the backup, it needs to tell us. We'll cover that monitoring in a bit. ASHLEY: Before we set up the storage or copy our files over, I'd check that list of disks again. If a drive has been replaced or its name has changed, we need to figure out which one it is before we write anything to it. ETHAN: And this is usually where somebody says, 'Just use ZFS.' We should probably explain why we might want it. ASHLEY: Why would you choose it? ETHAN: If I've got important files on several disks, I'd like to know when something's getting corrupted. ZFS groups the disks into what's called a pool, and it uses those checksums we talked about to check the data as it reads it. If the disk layout gives it another good copy, it can use that to fix the damaged one. ASHLEY: So it needs that extra copy to do the repair. With a two-disk mirror, both disks hold the same data. Two four-terabyte disks give you about four terabytes to use, minus some space the filesystem needs for itself. One disk can fail and you've still got the other. ETHAN: Right. And I'd set up regular scrubs. That's when ZFS reads through the stored data, including files nobody's opened in years, to check for damage. I'd want the storage report to tell me whether the scrub finished and whether it found errors. ASHLEY: I'd also ask how we could add space later. That depends on the disk layout and the software version. I'd want to understand that before buying the disks. ETHAN: For a single disk, though, I might be happy with ext4 or XFS and a separate backup. Btrfs is another filesystem to look at if I want checksums and snapshots. And if I do choose ZFS, TrueNAS gives me an interface for managing it, so I'm not setting everything up by hand. ASHLEY: I'd also look at what we already have. If our NAS does everything we need and we've successfully restored its backups, what would we gain by changing it? I'd want an answer before moving all those files. ETHAN: The thing I'd watch out for with that mirror is deletion. If I accidentally delete a folder, having two disks doesn't bring it back. The deletion happens on both. ASHLEY: A snapshot can give you an earlier version of that folder on the same storage system. I'd restore the old version to a different folder first, so I can check it without overwriting anything else. ETHAN: But if the whole storage box is stolen, its snapshots may go with it. That's why I'd keep a backup somewhere separate, with older versions of the files. ASHLEY: And if you're syncing that folder to another computer, it might delete the files there too. Some sync apps keep older versions you can recover. I'd check how far back ours goes. Seeing the same files in two places doesn't tell you what happens after a mistake. ETHAN: I'd decide the backup schedule by asking how much recent work I'd be willing to lose. If losing yesterday's photos would be a problem, backing up once a week wouldn't be enough. ASHLEY: Then try a restore. Choose a photo and a document, restore them into a new folder, and open both. For a service like Plex, we also need its settings and database, so getting the movie files back is only part of the job. ETHAN: What about the backup password? If nobody's there to type it in, where does the job get it? ASHLEY: Right. Take restic, for example. It encrypts the backup, and you need a password to unlock it. If you're saving that backup to cloud storage, you'll also need whatever gets you into that storage account—an access key, for example. That key gets you access to the files. The backup password lets you decrypt them. ETHAN: I'd save that password in my password manager and keep an offline copy somewhere away from the server. Otherwise, I could lose the server and realize the password was on it too. ASHLEY: For the automatic job, I'd use restic's password-file option. You open a terminal yourself, outside the AI session, and use your administrator account to save the password in a file. Only the backup service and the administrator should be able to read it. You tell restic where that file is, and it reads the password each time the job runs. Just entering the password during the initial setup doesn't do that. ETHAN: And the cloud access key? ASHLEY: The backup service needs a protected copy of that too. The storage provider's instructions tell you where its software reads the key from and how to give it to the service. I'd set that up myself, just as we did with the password file. ETHAN: The AI can write the setup instructions without seeing the password. We can test the file permissions with a made-up password first. Once we're sure the AI can't read the file, we put the real password in ourselves and try running the backup as the backup service. We need to know that account can read it. Don't paste the password into the AI conversation. ASHLEY: Then try restoring a backup from another computer. Can you get into the password manager? Do you know where the backup is? That should show us if we've left out something we'd need after losing the server. ETHAN: I'd also check whether the backup destination supports append-only access. That lets the job add backups without giving it permission to erase the old ones. If somebody takes over that account, I'd want the old backups to be harder to destroy. We'd have to check whether our particular setup supports it. ASHLEY: If it does, we can use a separate account when it's time to delete old backups. We should check how the backup tool handles that cleanup, though. We still need to be able to restore the backups we're keeping. ETHAN: There's another thing I'd check after restoring: who can open the files? Linux records ownership with numbers, called user and group IDs. If the same number belongs to somebody else on the replacement server, that person could end up with access to the files. ASHLEY: So our recovery notes should say which numbers belong to which accounts. After the restore, I'd try opening a family document as someone who should have access, then as someone who shouldn't. If we've added more specific permissions, called access-control lists, the backup needs to preserve those too. ETHAN: When we move the movie library, I'd copy it while keeping the old files. Have the computer compare the file counts and checksums at both locations, and report anything missing or different. ASHLEY: Then update the library folder in Plex's settings to use the new location and let it scan. We can play a movie on the TV after removing Plex's access to the old folder. We can leave the original files on the old disk. We're just making sure Plex has to use the new copy. ETHAN: I'd also open the backup configuration and check that it includes the new folder. Run that backup, restore the same movie into a separate test folder, and play the restored file. Then we can decide whether we still need the old copy. Installing Plex and other services ASHLEY: Before we add a bunch of apps, is there anything you'd rather pay someone else to run? I don't want to spend every weekend maintaining this stuff. ETHAN: Sure. I'd only run an app at home if I got something useful out of the work. With Plex, that's watching my own movies at home. For another app, it might be a feature I can't get anywhere else. But I'd want a reason beyond having a spare computer. ASHLEY: So, let's say we're installing Plex. A lot of the instructions people find will use Docker. What are we actually doing there? ETHAN: We download a packaged version of Plex called an image. Docker starts it in a container, with the folders and network access we've allowed. The image includes much of the software Plex needs, so we can use the same packaged installation when we rebuild the server. ASHLEY: Those folders are the part I'd want to look at closely. Plex needs the movies, but it also creates settings and a database. Where does each of those live? ETHAN: We give the container somewhere to save them outside itself. We could pick a folder on the server and connect it to a folder inside the container. That's a bind mount. Or we could let Docker manage that storage for us, in what's called a volume. Set up either one properly, and the data stays there when we replace the container. ASHLEY: So if the setup saves the database only inside the container, deleting and recreating that container can lose it. I'd want to know exactly where we're keeping the database before we start. ETHAN: A Compose file makes that easier to review. It's a text file describing how to run the service, including the image version and those folder connections. The AI can explain each entry using our actual folders, then save the file with the project records. ASHLEY: I'd give Plex read access to the movie folder. It needs somewhere it can write its database and settings, but playing a movie doesn't require permission to change the original movie file. ETHAN: And I'd check Plex's instructions before putting that database on a network share. A database needs to control when different processes can change its files, and some network shares don't handle that the way it needs. Copying the files while Plex is changing them can also leave us with a backup that won't restore properly. ASHLEY: Then I'd use Plex's backup procedure, or stop Plex while we copy its data. We can try restoring that copy in a separate test setup and open Plex there. Do our library and settings show up? ETHAN: There's something else to watch with Docker permissions. If an account can start any container it wants, it can often give that container access to the whole server. I'd start by having the AI write the Compose file so we can look it over. ASHLEY: And check the command it wants us to run. Later, if we want the AI to deploy this on its own, we can put the approved Compose file and settings in a folder only an administrator can change. The AI gets a command that uses those exact files. It can't pass in a different configuration. It can still check the service's status whenever it needs to. ETHAN: Could we try that with a simple web page first? Give it an empty folder and keep it on the server so nobody else can reach it. We could see whether it loads, whether it comes back after a restart, and what files are left when we remove it. ASHLEY: Yes, and we could try the resource limits there before we put Plex in a container. Docker can cap the container's memory and CPU use. We'd still need a separate limit on disk space. A download folder can fill the disk even if the container barely uses the CPU. I'd have the AI show us where the temporary files go and what's keeping that folder from growing indefinitely. ETHAN: Once Plex is installed, let's see how it plays. Choose a movie you actually watch, start it on the usual TV, and leave it playing while you open Plex Web on the Mac. ASHLEY: Open Activity, then Dashboard, and expand the session under Now Playing. That shows what Plex is doing with the video and audio streams. You're looking for labels such as Direct Play, Direct Stream, or Transcode. ETHAN: Direct Play means the TV is getting the media in a form it can already use. Direct Stream usually means Plex is repackaging it without re-encoding the video. If that's what we're seeing, a faster graphics card probably isn't what we need to fix playback. ASHLEY: If it says Transcode, Plex is converting something. Look at whether it's the video or just the audio. Then repeat the same scene with subtitles off, and check the quality setting in the TV's Plex app. Some subtitles make Plex convert the video. So can asking it to stream at a lower quality. ETHAN: So if it buffers during Direct Play, I'd check the connection first. If Plex is converting the video, I'd look at how hard the server's CPU and GPU are working. The AI can help us make sense of that while we watch what's happening in Plex. ASHLEY: If Plex is using hardware acceleration, you'll see the letters 'h w' in those expanded session details. Whether we can use it depends on our hardware, software, and Plex's requirements. I'd check those for this machine before buying anything. ETHAN: And try one change at a time. Try a wired connection if you suspect Wi-Fi. If you think it's the TV, try the same movie on a different device. If a change fixes it, repeat the original setup once so you're sure which difference mattered. ASHLEY: Watching away from home adds another limit: how fast our home internet can upload the video. We might have to lower the streaming quality even if that movie plays fine in the house. I'd try it on a phone with Wi-Fi off, using cellular data, and watch that session in Plex again. ETHAN: What about opening the other apps in a browser? If we've got several on one server, each might use a different port number. That number tells the server which app we're trying to reach. Something called a reverse proxy—Caddy, for example—can send the request to the right app, so we don't have to remember all those ports. ASHLEY: We still need to decide who can get in. If I just want to use it while I'm away, a VPN lets my phone or laptop log in and connect back to the home network. If we want people to reach it without that VPN, we need to decide who gets in and how we're going to protect it. ETHAN: I'd test both sides of that. Can I get in when I'm supposed to? And am I locked out when I'm not? If the service is only for use at home, I shouldn't be able to open its admin page from my phone with Wi-Fi and the VPN turned off. The AI can walk us through checking that. ASHLEY: If we add single sign-on—one login service shared by several apps—we also need a way into essential services when that login service is down. I'd make sure I can get in with a separate local account before we make everything depend on that one login service. ETHAN: I'd look at Home Assistant's installation options separately. Home Assistant OS handles some management tasks for you that you'd have to do yourself with a container. Which one makes sense depends on the devices you want to connect and how much of the setup you want to manage. ASHLEY: I'd start with a lamp and put it on a schedule. Then I'd turn the automation server off and try the switch. Before I connected the heating or door locks, I'd want to know how I'd use them if the network went down. ETHAN: That really depends on what you've bought. Some smart switches still work when you press them, even with the server off. With other setups, you might be surprised. I'd try ours and see. ASHLEY: Jen, what would you want if we decided to stop using one of these apps? PRODUCER JEN: Tell me what happens to the things I put into it. If it's a photo app, can I still open the original photos? What happens to albums and captions? I don't want uninstalling the app to answer those questions for me. ETHAN: I'd start by exporting the photos, albums, and captions we want to keep, and checking that we can open them. Then I'd look at where the app keeps its database and other files. Is any other app using those folders? ASHLEY: Usually, removing the container leaves the data in those separate folders or volumes. But some Compose commands can delete the volumes too. I'd ask the AI what the exact command will remove before we run it. We should know which data we're finished with before we delete it. ETHAN: I'd also remove any access keys that were just for that app and turn off its public address, if we gave it one. Then I'd try the old address to make sure it no longer opens the app. And I'd check those saved files again and note where we left them, so we know why they're still there. Monitoring, automation, and updates ETHAN: Now we've got something running. I'd like to stop checking its dashboard every day. ASHLEY: What would you want it to tell you? I'd want a warning before the backup disk fills up. A small program could check the free space every fifteen minutes and let me know when it's getting low. We'd choose how much space should trigger that warning. ETHAN: It doesn't need an AI model to make that comparison. A Linux timer can start the check at the scheduled time. The program can keep its last result in a file so it knows whether the problem is new or whether it already sent an alert. ASHLEY: We can ask the AI to write that and test it with made-up numbers. First we give it plenty of free space, then too little. Does it send an alert? If we give it plenty of space again, does it notice the problem's gone? I'd also check that it doesn't keep sending the same alert every fifteen minutes. ETHAN: I'd bring the AI back in when we need help figuring out why something changed. If the backup suddenly got much bigger, the AI could look at what changed and help us figure out why. It doesn't have to wake up every fifteen minutes to repeat the same arithmetic. ASHLEY: We don't always have to wait for a timer, either. If the backup fails, it can tell the checker right then, and we can start looking into it. ETHAN: Could I use the scheduling features in Codex or Claude for that? ASHLEY: For some jobs. In Codex Desktop, you can schedule a recurring task for a project on your computer. The computer has to be on and the app has to be running. I'd use it for something like reviewing the week's saved backup reports and drafting a summary. ETHAN: Claude Code has a slash-loop command for repeated work in the current terminal session. When you close that session, the repeated checks stop too. Claude also offers scheduled cloud work, but you have to give those jobs a way to reach your files or services. They can't just open a folder on your Mac. ASHLEY: That's something I'd check when I set up the task: is it running on my computer or somewhere else? If I want these checks to keep running when my laptop is off, I'd put them on a machine that stays on. The AI can help us write and check the program; it doesn't have to run it every time. ETHAN: How does a check at home tell me the internet has failed? It can't send an alert through the connection it's complaining about. ASHLEY: We can have the server check in with a monitoring service outside the house. We tell that service how often to expect a check-in and where to alert us if one doesn't arrive. It has its own internet connection, so it can still send the alert when ours is down. ETHAN: We could test that by pausing the check-ins. We don't have to disconnect the whole house. If the alert reaches my phone, I'd turn the job back on and see whether I get a message saying it's back. ASHLEY: That tells us the reporting works. The monitor still won't know why the check-in didn't arrive. The power could be out, the router could be down, or the internet provider could have a problem. Once we can get back into the server, we can look at its logs to narrow that down. ETHAN: I'd want the alert to tell me which service needs attention and where I can find the error details. “Something failed” isn't much use when I'm away. ASHLEY: What about fixing the problem automatically? If a program quits, and we've already said it's okay to restart it, the service manager can do that for us. But what if the program is still running and just isn't working? ETHAN: Plex might still be running while its movie storage is missing. Restarting Plex repeatedly won't reconnect the disk. I'd have the repair tool check whether Plex can reach its storage before it tries a restart. ASHLEY: And save the error message before it does anything. I want to see what went wrong and what it tried. After a restart, it should check whether the original problem is fixed. If it reaches the retry limit we've set, it should stop and let us know. I don't want it trying bigger and bigger changes on its own. ETHAN: I'd also try pausing it and causing the same test failure again. Does it stay paused, or does something else start the repair anyway? I want to know that pause actually works. ASHLEY: Especially if there's more than one way to start the job. We'd need to test each one and make sure they all respect the pause. ETHAN: I'd use the AI to help with updates too. It can read the release notes and tell us if the update changes our settings or the way the app stores data, before we install it. ASHLEY: I'd update one thing at a time. With Plex, I'd keep the old installer or container image and back up the database using Plex's instructions. After the update, I'd play the same movie on the same TV and make sure the same accounts can still get in. ETHAN: The update might change how Plex stores its database, too. If we go back to the old version, we might need the old database backup to go with it. I'd check the update and recovery instructions for that before we start. ASHLEY: I'd be more cautious with firmware—the software built into something like a router or storage controller. If that update fails, getting the device working again can be very different from reinstalling an app. I'd look up the manufacturer's recovery instructions first, so we know what we'd have to do. ETHAN: How much of this can we test while people are still using the server? Restoring a document to a new folder is easy enough. We don't have to shut anything down for that. ASHLEY: We could practice a bigger recovery on a spare computer or a virtual machine. Follow our notes to install the software, then try restoring one service. It needs its own network address so it doesn't interfere with the server everyone's using. ETHAN: But if we want to disconnect the server's normal network connection and try that recovery cable, people could lose access. I'd pick a time with them first and be there to plug it back in. ASHLEY: We might also have to reactivate an app's license or sign it in again on the replacement machine. The recovery notes should explain how to do that. Having all the files back won't help if we can't get past the login. ETHAN: When would you add a second server? So far, if this one breaks, people have to wait while we fix it. ASHLEY: If that wait became a problem, I'd look at a second machine. Or we might just outgrow the first one. Kubernetes can help decide where services run across several computers and restart them when they fail. k3s is a smaller Kubernetes distribution, but we'd still have to manage the network and storage for that group of machines—the cluster. ETHAN: What about the database, though? We can't just let two copies of an app change their own copies of the data and expect them to agree. We'd need to follow the app's instructions for moving it or keeping those copies in sync. ASHLEY: That's why I'd try a simple web page first, with no database. Stop the copy that's running and see whether the cluster starts another one. Can we still open the page at the same address? We can learn that part before we tackle the data. And I'd keep our recovery notes and backup passwords somewhere we can get to even if the whole cluster is down. ETHAN: For our one Plex server, I think I'd stick with Compose for now. If we're okay waiting a little while when it breaks, that seems manageable. We can still automate plenty of the maintenance without moving everything to a cluster. ASHLEY: Then let's leave good notes for the next time we work on it. The AI can read what we changed, check what's running now, and help with the next thing. We shouldn't have to explain the whole setup again. ETHAN: Plex seems like enough for a first project. Let's get it working and make sure we can restore it if we lose the machine. Once we've done that, we'll have a better idea of what we want to take on next. ASHLEY: I'm Ashley. Thanks for listening to Agentic Homelab. ETHAN: And I'm Ethan. Producer Jen, thanks for helping us work through it. PRODUCER JEN: Glad to be here. ASHLEY: And thanks to Lyrova, Inc. We'll see you next time.