Self-hosting ideas and useful home-server projects. Unofficial automated fan feed. Content belongs to its respective owners; not affiliated with source publishers.
Public Key
npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van Profile Code
nprofile1qqs9sq3l4uxmk0u08fvja4448yz3dllam34qkt7rln03hq37sfjvf3gpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsdpyuhu
Show more details
Published at
2026-10-15T20:49:49Z Event JSON
{
"id": "5ed89b70298716118cda01fe94dc037218836b65771cb394b7ab519f6b06d531" ,
"pubkey": "58023faf0dbb3f8f3a592ed6b5390516fffddc6a0b2fc3fcdf1b823e8264c4c5" ,
"created_at": 1792097389 ,
"kind": 0 ,
"tags": [],
"content": "{\"subject\":\"Self hosting\",\"icon_attribution\":{\"source\":\"https://github.com/twitter/twemoji/tree/v14.0.2/assets/72x72\",\"creator\":\"Twitter and contributors\",\"license\":\"CC BY 4.0\",\"license_url\":\"https://creativecommons.org/licenses/by/4.0/\"},\"name\":\"HomeLab\",\"display_name\":\"HomeLab\",\"about\":\"Self-hosting ideas and useful home-server projects. Unofficial automated fan feed. Content belongs to its respective owners; not affiliated with source publishers.\",\"picture\":\"https://cdn.jsdelivr.net/gh/twitter/[email protected] /assets/72x72/1f994.png\",\"website\":\"https://www.jeffgeerling.com/\",\"nip05\":\"[email protected] \",\"lud16\":\"[email protected] \",\"bot\":true}" ,
"sig": "75cc1831b67bdadecacb308c6c357ab1468fc3653e4b53e7be11d00d47b936290766a53bfd9c023df47ee1d2a0884140d6bf164f8560e0ce95937b7d315de72b"
}
Last Notes npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab TutorLoom: A Self-Hosted Learning Platform That Goes Beyond Online Courses I've always liked the idea of being able to teach something online without having to build an entire website around it. Maybe it's a small computer course, a training program at work, or even a series of lessons for people at church. Getting the material together is enough work already. Then you start thinking about how people will access everything, how assignments should work, and whether you really want another monthly subscription just to make it happen. TutorLoom is an open-source learning management system that you can host yourself. It's designed primarily for training institutes and organizations, but there's no reason a smaller group couldn't find a use for it. The application handles the classroom side of things through a web interface, while keeping the courses and student information on infrastructure you manage. More Than a Place to Watch Videos Putting a collection of videos on a website is easy enough. Turning those videos into an actual course where people can follow along and learn something takes a little more thought. TutorLoom lets you organize courses into chapters with individual lessons, so students have a clear path through the material. You can attach documents and create quizzes to see how much they're understanding. Lessons can also have prerequisites, preventing students from jumping ahead before completing earlier material. I could see this working nicely for a beginner's Linux course. Start with the basics, work through some practical exercises, and gradually introduce more complicated topics. Instead of handing someone a giant collection of tutorials and wishing them luck, you could give them a course that actually has some direction. Tutors can review assignments and leave feedback, while students get a dashboard showing how far they've progressed. It feels closer to running a small online classroom than simply publishing educational content. Keeping Track of the People Learning Teaching a handful of people is manageable. Once a class starts growing, though, remembering who has completed what can become a headache of its own. TutorLoom allows students to be organized into batches, making it easier to manage groups working through the same material. Administrators can invite people individually or import them from a spreadsheet. Trainers have their own dashboard for reviewing submitted assignments and following student progress. Students can see their upcoming lessons and completed work without needing to ask where they're supposed to be. There's also a points and levels system, along with PDF certificates for people who finish a course. I can imagine the certificates being useful for a workshop or training program where participants want something to show for their effort. The developers have included an Android and iOS application for students, although TutorLoom itself isn't dependent on a phone. Course creation and administration happen through the web interface, which is how I'd prefer to manage something like this anyway. Hosting the Classroom Yourself TutorLoom runs with Docker Compose, although the setup involves a little more than pulling down a single container. It uses PostgreSQL for the database and Redis alongside a Django backend. The frontend is built with React, and the Compose stack handles the supporting services. That's a fairly substantial setup for a homelab, but it also makes sense considering what the application is doing. Managing accounts and keeping track of student work requires a bit more infrastructure than a simple personal dashboard. The provided Docker configuration is aimed at local development, so I wouldn't expose it directly to the internet without preparing a proper production deployment. Student information deserves more care than the average collection of homelab bookmarks. TutorLoom's Community edition is free and licensed under Apache 2.0. You can create courses and manage students without paying for Enterprise, although some more advanced functionality is reserved for the commercial version. Course import and export, for example, aren't included in Community, which is worth knowing before building a large collection of lessons. A Classroom in the Homelab? I'll admit, TutorLoom is a little outside the usual collection of media servers and Docker utilities I spend time looking at. I'm certainly not planning to open a university in my basement anytime soon. But I do think there's room for applications like this in the self-hosting world, especially for people who enjoy sharing what they've learned. The screenshots show a modern interface that looks quite approachable for software with this much going on. Whether it holds up well with a busy classroom is something I'd want to hear more about from people using it regularly, since independent feedback is fairly limited at the moment. I can imagine a project like this being useful for a small organization that wants to offer structured lessons without handing everything over to a hosted learning service. Even a handful of students could benefit from having a proper place to work through course material. The TutorLoom GitHub repository has screenshots and the Docker Compose setup, while the official documentation explains how the different parts fit together. There's quite a bit here for anyone who's been thinking about setting up their own online classroom. Explore more on Noted Take a Poll | Play Trivia | Browse Giveaways https://noted.lol/tutorloom/ https://noted.lol/content/images/2026/10/web-student-courses.png https://noted.lol/content/images/2026/10/web-student-roadmap.png https://noted.lol/content/images/2026/10/web-student-dashboard.png #tutorloom #students #learningteaching #lessons #videos #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Is Vibe Coding Killing Our Interest in New Self Hosted Apps? (Poll) I spend a lot of time looking for new self hosted apps. It comes with writing for Noted, but I also genuinely enjoy it. Give me an interesting GitHub repository and a decent Docker Compose file, and I can happily lose an evening figuring out what somebody has built. Lately, though, I find myself scrolling past projects I probably would have opened a year ago. And I don't think I'm alone. Vibe coding has made it possible for almost anyone to turn an idea into a working application. If you're unfamiliar with the term, vibe coding is essentially using AI to write software by describing what you want in plain English. Instead of writing the code yourself, you tell the AI what to build, test the results, and keep asking for changes until it works. You don't necessarily need to understand every line of code it produces. That's pretty incredible when you think about it. I've used AI to help build things myself, so I'm certainly not going to pretend the technology has no place here. But making an app has become a lot easier than making one worth trusting. When Everything Is New, Nothing Feels New Browse the self hosting community for a while and you start noticing a pattern. Another dashboard. Another bookmark manager. Another tool for monitoring containers. Some are genuinely useful, while others feel like familiar ideas with a different coat of paint. There's nothing wrong with somebody building a tool because the existing options don't suit them. That's how plenty of great open source projects begin. The problem comes when every weekend experiment gets introduced like it's the next essential addition to our servers. The community is feeling it, too. Earlier this year, r/selfhosted introduced restrictions on new project posts. Its weekly project threads ask developers to explain what their apps do, how to install them, and how AI was involved. That's a pretty telling change for a community built around discovering software. It's Not Really About the AI Personally, I couldn't care less whether a developer used AI to write a settings page or troubleshoot some Python. I'm more interested in what happens after the exciting part of building is over. I've actually been on the other side of this myself. I recently used ChatGPT to build an entire self hosted application called Voice Journal, which I now use regularly. What started as a simple voice recorder turned into a personal journal with local AI transcription and summaries. It was an incredible experience, but it also taught me how much work goes into keeping an application running properly. That's partly why I haven't released it publicly. Building something for myself is one thing. Maintaining it for other people is another. Does the developer understand the application? Can they fix a security problem? Will they answer an issue three months from now? Can I update the container without crossing my fingers and hoping my data survives? Those questions matter when we're giving an application access to our files, accounts, and home networks. One discussion in r/selfhosted made a point I think deserves more attention: publishing software means accepting responsibility for the people who use it. AI might help you create an app in a weekend, but it won't automatically make you a dependable maintainer. And yet there's another side that bothers me just as much. People are getting quick to dismiss anything that looks AI generated. A developer can have a useful idea and still get buried under accusations before anyone really looks at the project. That isn't healthy either. Are We Losing the Excitement of Discovery? I think a huge part of what made the self hosting community so enjoyable was the anticipation of discovering something new. You'd stumble across a project somebody had been working on for months, maybe even years, and get excited about trying it. Sometimes it was something you never even considered needing until you saw it. That excitement was a big reason I started writing about self hosted apps in the first place. Finding something interesting and sharing it with people who might appreciate it just as much as I did was genuinely fun. Now I wonder if we're losing a little of that. When practically anyone can describe an idea to an AI and have a working prototype in an afternoon, a new application doesn't always feel quite as special. Instead of thinking, "Wow, somebody actually built this," the reaction can almost become, "Meh, I could probably vibe code that in a few minutes." And that's a strange place for this community to be. We've spent years celebrating people who build things, and now that building has become more accessible than ever, we're somehow becoming less impressed by it. I don't want fewer people making software. Quite the opposite. But I do miss that feeling of finding something genuinely different and being excited to fire up another container just to see what it could do. So is vibe coding killing our interest in new self hosted apps? I don't think it's killed it. But I do think it's changing how we appreciate the work behind them. Maybe we've become so accustomed to seeing new things that we've forgotten how exciting discovering one used to be. [poll:10] Explore more on Noted Take a Poll | Play Trivia | Browse Giveaways https://noted.lol/is-vibe-coding-killing-our-interest-in-new-self-hosted-apps-poll/ https://noted.lol/content/images/2026/10/cat-laptop-mod.png https://noted.lol/content/images/2026/10/self-hosting-discovery-fatigue-noted.png #selfhosted #vibecoding #newself #hostedapps #newbrowse #another #feelsnew #dockercompose #nothing #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Kanzo: A Lightweight Self-Hosted Kanban Board for Humans and AI Agents Kanzo is a lightweight, self-hosted task manager that combines a traditional Kanban board with built-in support for AI coding assistants. Written in Rust, it runs as a small standalone executable and uses SQLite for local storage, eliminating the need for external databases or cloud services. The interesting part is its integrated MCP server, which allows AI assistants such as Claude Code and Codex to work directly with the same task board. Agents can pick up assignments, move tasks between columns, and leave progress comments while you follow their activity through the browser interface. Kanzo also supports synchronization between computers using a private Git repository, making it useful for managing projects across multiple machines. Features Visual Kanban boards: Organize tasks into columns with an optional backlog for future work. AI agent integration: Built-in MCP server supporting Claude Code, Codex, and other compatible assistants. Local-first storage: Uses SQLite without requiring an external database or cloud account. Git synchronization: Keep task boards synchronized across multiple computers using a private Git repository. Task search: Quickly find tasks across projects using keyboard shortcuts. Image attachments: Attach screenshots and other images directly to tasks and comments. Data export: Export boards and tasks as Markdown or JSON. Lightweight installation: Runs on Linux, macOS, and Raspberry Pi with minimal resource requirements. Project Information Kanzo is a free, open-source application written in Rust and released under the AGPL-3.0 license. It uses SQLite for local data storage and supports Linux, macOS, and Raspberry Pi. Installation is available through a precompiled binary or Rust's Cargo package manager. The source code, documentation, and installation instructions are available on GitHub. Note: Kanzo does not include built-in authentication, so its web interface should remain on a trusted network or be protected with additional access controls. Explore more on Noted Take a Poll | Play Trivia | Browse Giveaways https://noted.lol/kanzo/ https://noted.lol/content/images/2026/10/image-26.png https://noted.lol/content/images/2026/10/kanzo-self-hosted-kanban-1.png #kanbanboard #kanzo #visualkanban #claudecode #agents #usessqlite #git #rust #mcp #linux #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Rejoice, leap seconds are dead! There will never be a leap second again. At least not for UTC. At the CGPM, they decided the last leap second we'll ever see for UTC, or Coordinated Universal Time, happened back at the end of 2016. Of course they made that decision while I was out on vacation, so I'm just getting this video up now: But what's the CGPM, why does this matter, and why am I excited about it? https://www.jeffgeerling.com/blog/2026/rejoice-the-utc-leap-second-is-dead/ https://www.jeffgeerling.com/blog/2026/rejoice-the-utc-leap-second-is-dead/cgpm-resolution-5.jpg #leap #utc #cgpm #universaltime #coordinateduniversal #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Intel Q3 2026 Earnings Data Center Soars While PC Faces Memory Pressure Intel's Q3 2026 earnings highlighted how well the data center segment is doing and how rough the client segment is due to DRAM and NAND pricing The post Intel Q3 2026 Earnings Data Center Soars While PC Faces Memory Pressure appeared first on ServeTheHome. https://www.servethehome.com/intel-q3-2026-earnings-data-center-foundry-client/ #datacenter #intel #pc #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Raspberry Pi or Mini PC? The Homelab Community Weighs In A new homelabber recently shared their excitement about buying a Raspberry Pi 5 in r/homelab. Their first project was modest: install Pi-hole, learn a little Linux, and see where things went. The comments quickly turned into something else. One highly supported reply suggested selling the Pi and buying a used mini PC instead. Others pushed back. Why tell someone to replace a perfectly capable little computer before they’ve even set it up? The Reddit discussion revisited a question that’s become harder to answer as Raspberry Pi prices have climbed: is a Pi still a sensible way to start self hosting? Why the mini PC argument makes sense Buying a Raspberry Pi isn’t necessarily as inexpensive as the price of the board suggests. You’ll need a power supply and storage, and possibly a case and cooler. Versions with more memory can end up competing with secondhand office computers once everything is included. Used Lenovo ThinkCentre Tiny, HP EliteDesk Mini, and Dell OptiPlex Micro systems are attractive for a reason. Many come with RAM, an SSD, and a power supply already installed. They also offer faster processors, familiar x86 compatibility, and, depending on the model, room to upgrade. That matters if you’re planning to run Proxmox, several virtual machines, a media server, or a growing collection of Docker containers. While ARM support has improved considerably, some self hosted applications and container images remain easier to deploy on x86 hardware. A small business PC isn’t automatically the cheaper choice, especially when comparing older units with a basic Pi. But for a server intended to run a variety of services, the value can be difficult to ignore. The Raspberry Pi isn’t the wrong answer The original poster wasn’t building a virtualization cluster. They wanted to run Pi-hole, a lightweight DNS filtering service that doesn’t need much processing power. For that job, a Raspberry Pi makes perfect sense. It can sit quietly on a shelf, use little electricity, and handle a useful service without demanding an entire desktop computer. There’s also more to a Pi than its performance numbers. GPIO pins make it useful for electronics projects, sensors, and automation. It’s a good way to get comfortable with Linux, SSH, networking, and managing a server through the command line without committing much space. And a Pi doesn’t become useless when you eventually buy something faster. It can remain a dedicated DNS server, monitoring device, or experimental machine. The mini PC advocates aren’t wrong about raw performance. They’re just answering a slightly different question. When did getting started become so complicated? The part of the thread that stuck with me wasn’t the hardware comparison. It was the reaction to someone sharing their first purchase. Homelab discussions often jump straight to planning for the future: more RAM, more storage, virtualization, better networking, room for twenty containers. Those are reasonable considerations when you’re planning a server you’ll depend on for years. But there’s also value in starting small enough to understand every piece of the setup. Installing Pi-hole, pointing a few devices at it, and figuring out why a DNS query isn’t resolving can teach a newcomer plenty. A Raspberry Pi isn’t a failed homelab just because a refurbished office PC offers more horsepower. So which would I buy? If the goal is to explore lots of self hosted software, I’d generally recommend shopping for a reasonably priced used mini PC. The extra flexibility and simpler compatibility make it a strong foundation, particularly if Docker and virtualization are on the agenda. If the goal is Pi-hole, a few lightweight services, or electronics projects, a Raspberry Pi is still an easy recommendation. What matters is matching the machine to the project, not winning a specifications contest. The person who starts with a little Pi and learns how to keep one useful service running is already doing homelabbing. That’s a pretty good place to begin. Explore more on Noted Take a Poll | Play Trivia | Browse Giveaways https://noted.lol/raspberry-pi-or-mini-pc/ https://noted.lol/content/images/2026/10/thinkcentere-tiny.png https://noted.lol/content/images/2026/10/HP-EliteDesk-Mini.png https://noted.lol/content/images/2026/10/raspberrypi-or-minipc.png #raspberry #mini #buying #linux #ram #dns #elitedeskmini #pc #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Narratarr: A Self-Hosted Audiobook Manager With a Built-In Player I've always thought audiobooks deserved a little more attention in the self-hosting world. We've got some excellent applications for organizing movies and television shows, but audiobooks can be a different story. You might have a collection sitting on your NAS, yet finding new books and getting them properly organized often involves more manual work than it should. Narratarr is a new self-hosted audiobook manager that follows the familiar approach of Sonarr and Radarr. It helps you find audiobooks, download them, and organize everything into a library. Unlike the usual *arr applications, though, Narratarr also includes its own audiobook player, so you don't necessarily need another application just to listen to what you've downloaded. Finding Something Worth Listening To I have a habit of browsing through media libraries even when I haven't decided what I want to watch or listen to. Half the fun is discovering something I'd completely forgotten about. Narratarr seems to understand that part of the experience, giving you a proper discovery interface rather than expecting you to arrive with a particular book already in mind. The application connects to LibriVox and Old-Time Radio collections from the Internet Archive, providing access to thousands of freely available recordings. You can browse by genre or search for a particular title, with cover artwork and descriptions helping you figure out what you're looking at. The Old-Time Radio collection is a fun inclusion. Those old radio dramas have a charm of their own, and having them mixed into an audiobook discovery interface makes browsing a little more interesting than another endless list of modern releases. Narratarr also attempts to correct misspelled searches, which is useful when you can't quite remember how an author's name is spelled. That optional feature uses Apple's public search API, so it isn't entirely local, but the application works without enabling it. Getting Books Into the Library Those already running Sonarr or Radarr will recognize the general idea. Find something, add it to the download queue, and let the application handle organizing the files afterward. Downloads from LibriVox and Old-Time Radio are fetched directly over HTTPS, without needing a paid service. Narratarr also supports Prowlarr for searching configured indexers and can pass Usenet downloads to SABnzbd. Torrent downloads currently rely on Real-Debrid, which requires a paid account. That's worth knowing because Narratarr doesn't yet offer direct integration with qBittorrent or Transmission. Thankfully, none of that is necessary to use the free audiobook collections. Finished books are arranged into author and title folders, with cover artwork and descriptive information saved alongside the audio. I can appreciate that because manually cleaning up audiobook downloads isn't exactly an enjoyable afternoon project. Listening Without Another Application Narratarr includes a browser-based audiobook player with chapter navigation and adjustable playback speed. It remembers where you stopped listening, which is especially important when a book takes considerably longer to finish than the average podcast episode. There's a sleep timer as well, including an option to stop at the end of a chapter. That's a thoughtful touch for anyone who enjoys listening before bed and doesn't particularly want to wake up three hours further into the story. The player handles books split across multiple MP3 files alongside M4B audiobooks, treating them as a continuous listening experience. It can also be accessed from a phone through the browser, without requiring a dedicated mobile application. If you're already using Audiobookshelf, there's no need to abandon it. Narratarr can save books into a library Audiobookshelf recognizes and optionally trigger a scan after a download finishes. Running Narratarr at Home The developer provides a Docker Compose configuration with images for AMD64 and ARM64 machines. Everything runs in a single container, with separate mounts for application configuration and the audiobook library. The default web interface uses port 8484. You can optionally enable password protection, although the documentation recommends keeping Narratarr on a trusted home network rather than exposing it directly to the internet. Narratarr is a very new project, so I wouldn't be surprised to see a few rough edges as development continues. The GitHub repository is still relatively small, and there's not much independent feedback from people running it long-term. Still, I think the combination of audiobook discovery and a built-in player makes sense. It's nice having the option to find a public-domain recording and start listening without setting up an entire collection of supporting services first. And for those of us already running an *arr stack, the additional integrations make it easy to see where Narratarr could fit. You can find the Docker Compose setup and screenshots in the Narratarr GitHub repository. The README also explains how the different download sources work, which I'd recommend reading before connecting it to an existing media setup. Explore more on Noted Take a Poll | Play Trivia | Browse Giveaways https://noted.lol/narratarr/ https://noted.lol/content/images/2026/10/demo-cat.png https://noted.lol/content/images/2026/10/details.png https://noted.lol/content/images/2026/10/player-cat.png #audiobookmanager #narratarr #player #radio #downloads #something #books #radarr #sonarr #internetarchive #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab ASRock Industrial AI Box-A395 Review: Taking Strix Halo to Work Today we are taking a look at ASRock Industrial's highly portable Ryzen AI Max+ 395 system, the AI Box-A395. The barebones tower system packs a punch, as well as a handle to quickly pack up the PC The post ASRock Industrial AI Box-A395 Review: Taking Strix Halo to Work appeared first on ServeTheHome. https://www.servethehome.com/asrock-industrial-ai-box-a395-review-taking-strix-halo-to-work/ #asrockindustrial #max #ryzen #ai #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Altera Agilex 27 is the First Agilex 2X Platform Adding 800GbE and 1.6TbE and More Altera announced its new Agilex 2X series with the higher-end Agilex 27 with features like LPDDR6 and 1.6TbE support coming in 2027 The post Altera Agilex 27 is the First Agilex 2X Platform Adding 800GbE and 1.6TbE and More appeared first on ServeTheHome. https://www.servethehome.com/altera-agilex-27-800gbe-1-6tbe-hyperflow/ #platformadding #firstagilex #alteraagilex #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Spooly: Bring a Little Surprise Back to Your Own Media My hard drives and NAS hold plenty of photos, videos, and music. Most of it is there because I liked it enough to keep it. Yet after saving it, I rarely open it again. Sometimes, even deciding what to watch or listen to feels like too much effort. Open a folder, choose a directory, pick a video from the thumbnails. Open the music library, think about which album fits today. I only wanted to relax, but first there are a few decisions to make. Often, I end up opening someone else’s feed instead. And yet, a song playing in a shop I walk past can make me stop. It might already be in my own collection, but choosing to play it and hearing it unexpectedly feel different. I started wondering whether my saved media was missing more than a convenient way to play it. Perhaps it was missing a little uncertainty: no need to choose first, and no knowing exactly what comes next. That is the idea behind Spooly. Spooly is an open-source, self-hosted media browser. Point it at existing folders on your computer or NAS, then swipe through your photos and videos in a browser on your phone or computer—or let your music play like a radio station. You can combine multiple folders into one library. Files stay where they are, and no cloud account is required. I wanted somewhere I could open and, for a while, put the question of “what should I pick?” aside. Flow: Start Watching, Leave the Next Item Unknown Flow is the most direct expression of that idea. Open the page, and your photos and videos appear full screen. Swipe up for the next item. Stay a little longer if something catches your interest, or move on if it doesn’t. Double-tap to save a favorite. The gestures are familiar. The content is yours. When browsing by folder or date, you can often predict what comes next: another clip from the same day, another page of photos from that trip. Even good content can start to feel like a routine walk through an archive. Flow breaks up that order. A clip you saved recently might be followed by a video you recorded years ago and haven’t opened since. Media from different times and folders meet again in the same session. It tries to reduce repeats of things you have just seen, avoid letting one folder dominate, and give less-seen items another chance to appear. Occasionally, a memory card brings together a few photos from a week in the past, taking you back there for a moment. The randomness leaves room for something familiar to arrive unexpectedly. Psychology offers a few useful clues: people take mental effort into account when deciding what to do, and a pleasant, unexpected encounter that feels partly down to chance can make an experience more enjoyable. That doesn’t explain everyone’s habits, but it comes close to the question I wanted to explore: could less planning leave more room for interest to arise in the moment? Research on cognitive effort, research on serendipitous encounters Owning the content doesn’t have to mean arranging every encounter with it. If you already know which file you want, opening it in a player works well. Flow is for another kind of moment: you feel like watching something, but have no particular destination and don’t want to choose from an entire folder first. The next video is prepared ahead of time and starts playing when you reach it. Swipe on a phone, or use the scroll wheel or arrow keys on a computer. Videos loop in place; you decide when to move on. Home also has a Rediscover entry point for media that has been around for a while and hasn’t appeared in a long time. Sometimes the best discovery is simply: “I forgot I had this.” Library: A Clear Path When You Know Where You Want to Go Of course, sometimes you do know what you want. You might want to revisit a summer from a particular year, find photos from a trip, watch something you just encountered in Flow, or take your time browsing recent additions. Library provides a year-and-month timeline for navigating an archive that spans years. Explore lays media out in a masonry grid, so you can look at the images before deciding what to open, without stepping through folders. Anything you happen across in Flow can be favorited or added to a collection, giving a casual discovery a place to return to later. Home’s “On This Day” offers another easy starting point: see what you captured around this time in previous years, without choosing a date yourself. These entry points suit different moods. Open Flow to wander, or Library to look more deliberately. You don’t have to approach your media the same way every time. Multiple media folders can be browsed together while their files remain in their original locations. Deleted files go to a trash folder first, so you can undo a deletion. Radio: Like Happening to Hear a Song You Love The same problem comes up with music. Sometimes I just want music around me. I don’t want to answer “what should I listen to today?”—and I certainly don’t want to arrange the next track immediately after choosing the first. Radio turns the music in your media folders into a private radio station. Press play and it keeps selecting tracks, leaving you free to read, work, or do very little. There is no playlist to inspect first and no need to anticipate the next song. You might hear something you haven’t deliberately played in ages and remember why you kept it. That is why I like calling it “Radio”: the music belongs to you, but hearing it can still feel a little accidental. Radio also offers a choice of “rooms”: a rainy window, a snowy night, a fireplace, or a summer evening with fireflies. Visuals and ambient sound turn the page into somewhere you can leave open nearby. Let your music play alongside the rain, or listen to the music alone. Small, occasional changes in the background keep the scene feeling alive over longer sessions. When you’re ready for bed, set a sleep timer to stop playback later. Downloads: Paste a Link, Keep Something Worth Returning To Your library can keep growing, too. When you find a video or a set of images worth keeping, paste the link into the download page and let Spooly fetch it in the background. Once it finishes, you can watch, favorite, and organize it in your library. The page shows progress and provides cancellation, retries, and download history. Supported sites and content depend on the underlying yt-dlp and gallery-dl tools. For content that requires signing in, you can also configure cookies exported from your browser. For me, saving a file to disk is only the first step. What matters next is that it becomes part of browsing: a clip saved today might turn up again during an aimless evening sometime later. Optional AI: Let One Discovery Lead Naturally to Another Sometimes a photo or video makes you pause. You want to see more like it, but don’t know which folder to look in. Once you enable similar media and prepare the index, opening an image or video detail page automatically shows similar, related media below it. If something catches your eye, open it and keep going. There is no need to invent a search term or return to a directory to choose again. A seaside photo might lead to a similar landscape from another trip. A video might bring you back to another clip with related imagery. Items scattered across your library gain another path between them. Flow helps browsing begin without a particular goal. Similar media gives that interest somewhere to go once it appears. If you already remember what you’re looking for, you can also search photos and videos with a description, such as “a lighthouse in the distance by the sea at dusk.” Chinese queries work too. For images with unhelpful filenames, you can generate titles and tags on demand to make them easier to recognize. These features are off by default and are not required for everyday browsing or playback. To use them, configure a model service and prepare the index. Title generation sends the selected image; preparing the similarity index sends processed images or sampled video frames. Remote services may charge for usage, and there is also a guide for hosting a model yourself. Once the index is ready, browsing existing similar-media results makes no further model calls. Searching by description sends one text request per search. Deploy with Docker The ghcr.io/oddloafhq/spooly image supports linux/amd64 and linux/arm64 and includes ffmpeg, yt-dlp, gallery-dl, and Deno. (On macOS and Windows, pip install spooly is generally recommended.) mkdir spooly-data docker run -d --name spooly --restart unless-stopped --init \ --user "$(id -u):$(id -g)" -p 8000:8000 \ -v ~/Videos:/media -v "$PWD/spooly-data:/data" \ ghcr.io/oddloafhq/spooly:latest docker logs spooly # access password Three things to keep in mind: Mounts. /media is your media library. Downloads and trash (.spooly-trash) require write access; a read-only mount works if you never download or delete files. /data stores the database, password, thumbnails, cookies, and config.yaml. It must be writable and should be backed up. Permissions. Use --user to run the container with the UID/GID of the user who owns the media files. On Synology, this is often 1026:100. Create spooly-data yourself first: if Docker creates it automatically, it will belong to root and Spooly won’t be able to write to it. Initial password. The first start prints a random password in docker logs spooly. Every page, API, and media file requires sign-in. You can also set SPOOLY_AUTH_PASSWORD before the first start. To change it later, run docker exec -it spooly spooly auth set-password. Then open http://<server-address>:8000. Multiple folders. Mount each folder at a different container path, then list them in /data/config.yaml to combine them into one library: docker run ... -v ~/media/videos:/media -v ~/media/photos:/photos ... # /data/config.yaml media_sources: - id: default name: Videos path: /media - id: photos name: Photos path: /photos If you prefer Compose, edit the media path, user, and time zone in the repository’s compose.yaml, then run docker compose up -d: services: spooly: image: ghcr.io/oddloafhq/spooly:latest container_name: spooly restart: unless-stopped init: true # Run as the owner of your media folder (`id -u` and `id -g` on the host). user: "1000:1000" ports: - "8000:8000" environment: TZ: Etc/UTC # your time zone, used by Timeline and On This Day # SPOOLY_AUTH_PASSWORD: "" # first start only; otherwise see `docker logs spooly` volumes: - ~/Videos:/media # your library; writable for downloads and trash - ./spooly-data:/data # database, password, thumbnails and config.yaml To update, run docker compose pull && docker compose up -d. Available tags include latest, specific versions such as 0.8.46, and minor release lines such as 0.8. Other Configuration and Scope Media folders, the download destination, and optional AI services can be configured through config.yaml. Settings does not currently provide an interface for managing media folders; adding or removing them requires editing the configuration and restarting. See the README and Docker documentation for details. Spooly adds a browsing experience to your existing storage and backup setup. It does not back up your phone’s camera roll or provide a complete photo-management system. Local browsing and playback work without internet access; URL downloads and remote AI features require a connection. Password protection is enabled by default. Spooly itself serves HTTP and should be used on a trusted network. For HTTPS, put it behind a reverse proxy. Leave a Little Room for the Unplanned Spooly started as something I built for myself. I want to keep exploring the small psychological barriers that shape everyday use: why something feels worth saving but not worth opening later; why choosing can feel like work while an unexpected encounter makes us stop; and how interest can continue naturally once it appears. I don’t have an answer that applies to everyone. Spooly is my attempt to make a few fewer decisions and give the things I already own another chance to find me. If your hard drive also holds plenty of things you meant to “watch later,” point Spooly at them. Open it one evening when you have nothing particular in mind, and see what turns up. Spooly is maintained by Oddloaf and is free and open source under the MIT license. Demo videos and screenshots use CC0 and public-domain media from Wikimedia Commons and contain no personal media. Source code Demo video Docker documentation Screenshots and media kit Project website Issues and pull requests are welcome on GitHub. You can also write to [email protected] to share your experience. https://noted.lol/spooly/ https://noted.lol/content/images/2026/10/hero.jpg https://noted.lol/content/images/2026/10/flow-mobile.jpg https://noted.lol/content/images/2026/10/library-desktop.jpg #back #own #media #little #open #spooly #next #flow #nas #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Upgrade your PHP installs immediately to protect against php2shell This morning, two critical PHP Security Advisories were published: RCE via OOM corruption (9.2/10) RCE via stale global state (9.2/10) If you're running PHP for any service, you need to upgrade immediately to 8.2.35, 8.3.36, 8.4.27, or 8.5.12. And if you use Remi's repos on RedHat-derivative Linux distros, you need to switch to official repos temporarily as Remi's on vacation and can't update his community repo. (Reminds me of xkcd 2347). Remi pushed updates even while on vacation! https://www.jeffgeerling.com/blog/2026/php-vulnerability-php2shell/ #php #phpsecurity #immediately #securityadvisories #remi #oom #linux #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab RetroGemini: Self-Hosted Scrum Retrospectives At the State of Geneva, we needed to keep candid team feedback on our own infrastructure. I decided to build an alternative, using AI to help with development. The result is RetroGemini, an open source application for Scrum retrospectives and team health checks. Around 30 internal teams now use it. I am sharing it because other organizations may have the same constraint: useful collaboration tools, with the application and its data hosted internally. A guided retrospective A session follows a sequence: icebreaker, brainstorm, group, vote, discuss, review and close. Participants can write cards anonymously, group related ideas and vote on what to discuss. The facilitator has a timer and contextual guidance for each phase. There are familiar templates such as Start/Stop/Continue, 4Ls and Sailboat, along with custom templates. Both the interface and retrospective templates support English and French. Each participant can choose an interface language independently, while the facilitator chooses the language of the board's template. Follow-up actions can have assignees and carry over between sessions. Team health checks provide another way to track how a team is doing over time. Collaboration is synchronized in real time, so people can work on the same board from their own browsers. Demo board with fictional data. Try it with Docker For a first trial, Docker is enough: docker run --pull=always -d \ --name retrogemini \ -p 8080:8080 \ -v retro-data:/data \ jpfroud/retrogemini:latest Open http://localhost:8080, create a team workspace with a recovery email, and start a retrospective. Use fictional data while you explore the workflow. The named volume keeps the SQLite database across container restarts. For production, set a stable SESSION_TOKEN_SECRET, put the application behind an HTTPS reverse proxy and review the documented configuration. Self-hosting also means taking care of updates, backups and access to your server. The repository includes deployment documentation for Docker, Kubernetes and OpenShift. Running it on an internal network The core application does not require an external service at runtime. Its fonts, icons and other assets are self-hosted, and it can run on an isolated network. SQLite works for a single-container setup; PostgreSQL is another supported option. SMTP and OpenAI-compatible AI features are optional and disabled unless configured. The AI features include card grouping and summaries. If you enable an integration, review where its data goes before using it with sensitive feedback. You can leave those integrations unconfigured and use the retrospective workflow without them. Built with AI, used by real teams I used AI to develop RetroGemini. The need behind it came from our working environment, and feedback from the teams using it helps shape the product. AI assistance during development does not mean participants need an AI account to run a retrospective. The code is available under the Unlicense. You can find the source, installation instructions and configuration reference in the RetroGemini GitHub repository. If your organization needs to keep retrospective feedback in-house, give it a try. I would be interested to hear what works for your teams and what you would change. If it is useful to you, a GitHub star is appreciated. https://noted.lol/retrogemini/ https://raw.githubusercontent.com/republique-et-canton-de-geneve/RetroGemini/main/public/assets/screenshots/retro-board-demo.jpg https://noted.lol/content/images/2026/10/retorgemini-feature.png #scrumretrospectives #retrogemini #docker #team #use #open #start #geneva #participants #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Intel Moves Forward at Ohio One With First Major Structural Truss Installation Arizona Fab 62 Tooling Intel Ohio One is making progress with truss installation as part of its construction and future wafer capacity The post Intel Moves Forward at Ohio One With First Major Structural Truss Installation Arizona Fab 62 Tooling appeared first on ServeTheHome. https://www.servethehome.com/intel-moves-forward-at-ohio-one-with-first-major-structural-truss-installation/ #trussinstallation #intelohio #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab NVIDIA GTC Berlin 2026 NVIDIA Intros DSX PODs and More NVIDIA kicked off GTC 2026 with its lead keynote. Among the highlights for this year's European NVIDIA tradeshow are the DSX POD, a server-in-a-container, as well as a slew of software updates for the NVIDIA ecosystem The post NVIDIA GTC Berlin 2026 NVIDIA Intros DSX PODs and More appeared first on ServeTheHome. https://www.servethehome.com/nvidia-gtc-berlin-2026-nvidia-intros-dsx-pods-and-more/ #dsx #gtc #europeannvidia #pod #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Quomodo: Git-Based Container Management for Podman Podman has a nice way of fitting containers into an ordinary Linux system. Its Quadlet files describe containers as services that systemd can start and supervise. The arrangement is fairly comfortable on one machine, although keeping the same approach organized across several servers takes more attention. Quomodo is a self-hosted management application built specifically for that situation. It started as a fork of Komodo, the familiar Docker management platform, but its developer has changed the underlying deployment model to work with Podman and Quadlet instead. The result is a central web interface for managing container stacks stored in Git, with agents on the machines where those stacks actually run. Working with Quadlet Files A Quomodo stack is a directory containing ordinary Podman Quadlet files, such as .container and .pod, alongside any configuration files they need. You keep that directory in a Git repository and connect it to Quomodo. When a change is pushed, Quomodo can deploy the updated files to the selected host and ask systemd to reload them. What I appreciate about this design is that it doesn't require replacing Podman's existing way of working. The files remain readable outside the dashboard, and systemd is still responsible for running the services. Quomodo adds the central view and the deployment process around them. It also tries to avoid restarting more than necessary. Changing the definition of one container should restart the affected service rather than every container in the stack. The web interface provides status information and logs, while webhooks allow repositories hosted on GitHub or self-hosted Git services to trigger deployments. Rootless Containers Are Part of the Plan Podman's rootless mode is a major reason some administrators choose it. Quomodo supports running an agent as an ordinary Linux user, with that agent managing the user's own Quadlet services through systemctl --user. Rootful agents remain available for workloads that need them. There is also some thoughtful handling of user namespaces. Quomodo assigns stable UID and GID ranges to its managed pods so that recreating a container doesn't unexpectedly change how its files appear on the host. That won't eliminate every permissions problem, but it addresses an annoyance that can surface with automatically allocated user namespaces. Secrets receive special treatment too. Quomodo can fetch values from Vaultwarden or Bitwarden when a stack is deployed and create Podman secrets on the destination host. The resolved values aren't written into Quomodo's MongoDB database or the Quadlet files. The vault still stores those credentials, of course, so protecting that account remains important. Installation Is Different from Komodo This isn't a Docker Compose alternative that accepts existing Compose files. Docker and Compose support were intentionally removed. Anyone moving from Komodo would need to rewrite their stacks as Quadlet definitions; there is no automatic migration. The central Quomodo service runs as a Podman pod with MongoDB, and each managed host needs its own agent. The documented requirements include Linux with systemd, Podman 5.0 or newer, and Git on agent machines. Agents connect outward to the central service, so they don't need an inbound management port. TLS is required for agent connections. Quomodo's documentation explains that its connection handshake authenticates the endpoints but doesn't encrypt the session by itself. Because deployment secrets can travel over that connection, using a properly configured HTTPS endpoint or reverse proxy is essential. The project is still in its 0.x stage and, by the developer's account, has mainly been exercised in one homelab. Its security fixes from upstream Komodo are also brought across manually rather than through automatic merges. Those are meaningful limitations for software that manages containers. A Different Direction for Container Management Quomodo is interesting because it treats Podman as the starting point instead of trying to make it behave like Docker. The project has a narrower audience than Komodo, but that focus gives its design some purpose. I'd recommend reading the Quomodo GitHub repository and its installation guide for the deployment details. The documentation is particularly useful for understanding how its agents handle permissions and why the central service needs TLS. https://noted.lol/quomodo/ https://noted.lol/content/images/2026/10/quomodo.png https://noted.lol/content/images/2026/10/stack.png https://noted.lol/content/images/2026/10/deploy-result.png #podman #quomodo #quadletfiles #container #management #git #compose #planpodman #docker #linux #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Petal: Open-Source Screen Sharing You Can Self-Host Screen sharing is useful, but the usual meeting window can get in the way. Someone shares an editor, another person wants to see the browser, and before long everyone is waiting for the presenter to switch windows. It's a familiar limitation when two people are trying to solve a problem together. Petal takes a more direct approach. Instead of placing every shared screen inside a meeting grid, it makes each shared window appear as a separate window on the other person's desktop. You can move it around and keep it beside your own work. The application is free, open source, and can use a media server you operate yourself. Shared Windows That Behave Like Windows Petal is designed for small groups working together on software, although the basic idea applies to other kinds of remote help. One person can share an editor while another shares a browser. Each participant arranges those windows locally rather than asking someone else to keep changing what everyone sees. The application supports multiple shared windows, visible pointers, and temporary drawings over shared content. It also offers remote control, with permission requested from the person sharing the window by default. That last detail matters. Giving someone keyboard and mouse access is useful for troubleshooting, but it should never happen without a clear decision by the person on the other end. Rooms can be kept around for regular meetings, and participants who haven't installed the desktop application can join through a browser. That makes regular working sessions easier to return to. The Self-Hosting Part Is More Involved Petal uses LiveKit to carry audio and video between participants. You can use the project's hosted service for free, but the source code also supports running against your own LiveKit installation. That gives you control over the media infrastructure instead of depending entirely on someone else's meeting service. There is an important distinction between self-hostable and one-click Docker install, though. Petal's documented self-hosted setup needs a reachable LiveKit server and a separate backend that issues short-lived access tokens. The backend is designed around serverless functions, with Vercel documented as the supported deployment target. Other hosting arrangements are possible with a compatible adapter. You also need to build the desktop client with your backend address configured. The downloadable desktop application isn't currently a simple settings change away from using your own server. That makes Petal a more involved project than the Docker dashboards we usually cover, and it's worth understanding before planning a deployment. The core meetings do not need a paid API or subscription. An optional AI conversation feature uses Google's Gemini service and can be left disabled entirely. Where the Project Stands Petal is still new. Its developers describe it as pre-1.0 software, and they are open about the rough edges. The macOS client is the more mature version. Windows has an early build with basic sharing support, but it is still incomplete. Linux desktop support is planned rather than available today. Remote control is also described as an early feature. I would be careful about relying on it for anything sensitive until the project has had more time to mature. The self-hosting documentation clearly explains credentials and the services involved. Petal is published under the Apache 2.0 license. It remains a developing application rather than a finished replacement for every meeting platform. A Different Kind of Self-Hosted Tool What interests me is the idea of treating another person's shared application as something that belongs beside your own windows. For remote troubleshooting or working through a configuration together, that seems more natural than repeatedly asking someone to share a different screen. Petal isn't yet the easiest option for a Linux-heavy homelab, and self-hosting it takes more work than the website's short description might suggest. Still, the approach is worth knowing about. I'd recommend visiting the Petal GitHub repository for the source code and the self-hosting guide for the actual deployment requirements. https://noted.lol/petal/ https://noted.lol/content/images/2026/10/web-meeting.png https://noted.lol/content/images/2026/10/petal-window-sharing-1.png #screensharing #petal #windows #shared #someone #project #livekit #docker #behavelike #standspetal #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab HPE Spaceborne Computer-4 Will Bring AI and HPC to the Moon on Astrolab FLIP The HPE Spaceborne Computer 4 will head to the moon on Astrolab's Flip to test HPC benchmarks and AI on the lunar surface The post HPE Spaceborne Computer-4 Will Bring AI and HPC to the Moon on Astrolab FLIP appeared first on ServeTheHome. https://www.servethehome.com/hpe-spaceborne-computer-4-will-bring-ai-and-hpc-to-the-moon-on-astrolab-flip/ #astrolabflip #hpespaceborne #spacebornecomputer #moon #hpc #bring #ai #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab NVIDIA BlueField-4 STX Server for CMX at OCP 2026 At OCP 2026, we saw the NVIDIA BlueField-4 STX server for context memory (CMX) a single NVIDIA Vera platform The post NVIDIA BlueField-4 STX Server for CMX at OCP 2026 appeared first on ServeTheHome. https://www.servethehome.com/nvidia-bluefield-4-stx-server-for-cmx-at-ocp-2026/ #stxserver #ocp #cmx #nvidia #vera #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Mitra: A Self-Hosted Calendar With Built-In Task Management I've never been entirely convinced that appointments and everyday tasks belong in separate apps. A calendar tells you where your time is going, while a task list tells you what still needs doing. Apart, they make it harder to see what a day can hold. Mitra is a new self-hosted calendar that puts both on the same timeline. You can schedule a meeting beside the work you hope to finish that afternoon, move things around when plans change, and keep the whole arrangement on your own server. The application is open source, and its Docker setup is pleasantly small. Planning Around the Time You Actually Have Mitra's week view looks like a familiar calendar, with one column for each day. Events and tasks live together in those columns. You can drag to create an entry, move it to another time, or resize it when something takes longer than expected. Tasks don't have to be scheduled immediately. There's a Planning area where unfinished work can wait until you decide where it fits. You can give tasks due dates, break them into subtasks, and connect related items with dependencies. That's useful for home-server work that gets interrupted. A backup migration might need to happen before you can retire an old disk, but neither job necessarily belongs on today's calendar. There are also month and year views for looking farther ahead, along with a table view for sorting entries. Routines help keep recurring activities visible without filling the calendar with oversized blocks. Your Existing Calendars Can Stay A self-hosted calendar isn't especially helpful if moving to it means abandoning every calendar you already use. Mitra can store calendars locally, but it also connects to existing accounts through CalDAV. It supports Apple and Google calendars, plus read-only subscriptions. You decide where the information lives. You can keep personal entries entirely on your server or bring outside calendars into the same view. The project also documents integrations with Notion and Tempo, although their supported features differ from a full calendar connection. Mitra works as a progressive web app, so it can sit on a phone's home screen without a separate store download. Its reminders use browser push notifications sent by your server, including when the calendar isn't open. On iPhone, those notifications require adding the web app to the home screen and using the installed version. The server also needs HTTPS for push notifications to work away from localhost. One Container, With a Catch The official Compose example runs a single container and maps its data to one persistent directory. Mitra uses SQLite, so there's no separate database service to maintain. Backing up that directory preserves the locally stored calendars and the settings that belong to the instance. The default installation is intended for one person and doesn't require a login. That's fine on a private machine, but it shouldn't be exposed publicly without access controls. For several users, Mitra supports sign-in through an OpenID Connect provider such as Authentik or Authelia. There's an important detail here: enabling sign-in later creates new accounts rather than moving the original local calendar into them. Anyone planning a shared household calendar should configure authentication before filling the application with entries. The developers explain the limitation in their documentation, which is better than discovering it after months of use. Mitra is also still at version 0.6. Its repository warns about rough edges and possible breaking changes before 1.0. I would treat it as a developing application, especially where personal scheduling data is concerned, and keep reliable backups. A Practical Idea With Room to Grow I like the underlying thought here: a calendar ought to account for the things we're trying to finish, not only the appointments we can't miss. Mitra brings that idea into a relatively modest self-hosted package, with enough integration support that it doesn't have to replace everything on day one. The source code is available under the AGPL-3.0 license. For installation details and the current limitations, I'd recommend visiting the Mitra GitHub repository. The official documentation also explains authentication and backups in more detail. https://noted.lol/mitra/ https://noted.lol/content/images/2026/10/mitra-week-dark.webp https://noted.lol/content/images/2026/10/image-18.png https://noted.lol/content/images/2026/10/mitra-calendar-todo-self-hosted.png #calendar #mitra #tasks #planning #existing #container #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Sigwood Helps Make Sense of the Logs Sitting on Your Server Home servers collect plenty of information about themselves. System logs record services restarting, login attempts, and other activity that usually goes unnoticed until something stops working. Finding anything meaningful can take longer than expected. I've always liked smaller utilities that make existing information easier to understand. sigwood is a free, open-source command-line tool that examines logs already stored on your machine and highlights activity worth looking into. It can work with ordinary Linux system logs, Pi-hole DNS records, and Zeek network logs without requiring a monitoring server to run continuously. Looking for Patterns in Existing Logs The idea behind sigwood is fairly straightforward. You point it at a log file or directory, and it looks for behavior that stands out. Some checks examine repeated outbound connections that follow a regular schedule. Others look for unusual DNS requests or network scanning patterns. It also examines syslog entries for events that rarely appear, including administrative activity and reboots. These details can be buried in thousands of ordinary messages. The important distinction is that an unusual event isn't automatically a security incident. A legitimate application checking for updates can look suspicious when judged only by timing. A new device on the network might generate DNS traffic that seems unfamiliar. Sigwood gives you something specific to investigate, along with an explanation of why it was flagged. I think that approach suits a homelab better than treating every unfamiliar connection as an emergency. A Useful Middle Ground for Home Servers Security monitoring can become a project of its own. Full logging platforms are powerful, but they also need somewhere to store incoming data and enough attention to keep everything working. For someone who mainly wants to review the logs on a few Linux machines, that can be more infrastructure than the job calls for. Sigwood takes a different approach. It runs when you ask it to, processes the available records locally, and produces a report. There is no agent to install across your machines and no separate database to manage. Normal analysis needs neither a cloud account nor external AI. The digest command provides a quick overview of a log before you investigate further. There's also a graph command that can turn supported network records into an animated HTML visualization, making connection patterns easier to follow than they would be in raw text. Reports can be generated in machine-readable JSON, which leaves room for scheduled checks or integration with existing homelab workflows. Those automations are something you'd configure yourself; sigwood doesn't come with an always-running alert service. Installation and Practical Limitations Unlike many applications featured on Noted, sigwood isn't distributed as a Docker dashboard. It's a Python command-line utility that supports Python 3.11 or newer. The recommended installation method is pipx, which keeps its dependencies isolated from the rest of the system. After installation, a command such as sigwood /var/log/ starts an analysis of supported records. The documentation also includes a synthetic sample dataset, so its reports can be explored without supplying personal network logs. There are limitations worth understanding. Sigwood only sees the information present in the files you give it. It won't discover activity that your logging setup never recorded, and it doesn't automatically collect logs from other machines. The current tool also expects supported file layouts rather than recursively searching every nested directory. Very large log files can demand considerable memory. One early tester reported high RAM usage while analyzing a multi-gigabyte syslog file. Narrowing the time window can help, but this is still a young project with real-world performance to improve. Worth Knowing About The appeal is another way to examine information the server already keeps. A tool that makes a few questionable patterns visible can be useful even when the result turns out to be harmless. Sigwood is released under the MIT license, and its source and documentation are publicly available. I'd recommend visiting the sigwood GitHub repository for installation instructions, sample reports, and the project's documented detection limits. https://noted.lol/sigwood/ https://noted.lol/content/images/2026/10/sigwood.svg https://noted.lol/content/images/2026/10/sigwood-log-hunter.png #helpsmake #makesense #logssitting #sigwoodhelps #homeservers #server #dns #serverssecurity #patterns #existinglogs #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab GL.iNet Comet Q GL-RMQ1 Review A Single USB Type-C Cable Remote KVM Device with Tailscale In our GL.iNet Comet Q (GL-RMQ1) review, we see how this USB Type-C remote KVM device with Tailscale makes connectivity easy The post GL.iNet Comet Q GL-RMQ1 Review A Single USB Type-C Cable Remote KVM Device with Tailscale appeared first on ServeTheHome. https://www.servethehome.com/gl-inet-comet-q-gl-rmq1-review-a-single-usb-type-c-cable-remote-kvm-device-with-tailscale/ #kvmdevice #remotekvm #review #usb #comet #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Yarrtube Keeps Your Favorite YouTube Channels on Your Server YouTube has become a useful part of the homelab hobby. There are years of repair guides and creators documenting projects that would otherwise be difficult to find. Watching one useful video, though, often means being handed a dozen others you never went looking for. I like the idea of keeping a smaller collection of videos, especially ones worth coming back to. It feels closer to maintaining a media library than browsing an endless feed. Yarrtube follows selected YouTube channels and public playlists, downloads new videos, and keeps the files on your server. A YouTube Collection You Actually Choose Yarrtube works with yt-dlp, a download utility used by plenty of self-hosted media tools. You add the channels or playlists you're interested in, and the application checks for new uploads automatically. The videos are downloaded to a directory you control rather than being left in a list of bookmarks that might never get opened again. The developer originally built it for watching selected YouTube content at home without relying on the platform's recommendations. That makes sense to me. There are channels I would happily keep in a media library, but I don't necessarily want the entire YouTube experience attached to them. Yarrtube includes a browser interface for watching downloaded videos on desktop or mobile. It also supports setting download quality and limiting how many videos are kept for a channel, which matters when the storage on your server is already doing several other jobs. It Can Live Beside Plex or Jellyfin The part that caught my attention is how naturally this fits into an existing media setup. Yarrtube saves downloaded videos to disk in a layout intended for media servers. It supports Plex, Jellyfin, and Kodi, so a collection of YouTube channels can sit alongside the rest of your locally stored videos. For Plex, the project documents a TV-show-style folder layout and an optional scan trigger that asks Plex to refresh the relevant folder after a download. That takes some of the manual library maintenance out of the process. Plex's documented setup uses an NFO-compatible series agent, so it isn't quite as simple as pointing every existing library at a new folder. The application is written in Rust and stores its tracked-channel information in SQLite. There is no separate database server to maintain. It's a modest arrangement for a job that mostly involves checking for uploads and handing downloads over to yt-dlp. Docker Setup and a Few Things to Know Yarrtube has an official Docker image and a Docker Compose example. The container needs two persistent locations: one for its configuration and SQLite database, and another for the downloaded videos. Persistent mounts keep your tracked channels intact when the container is recreated. There is one extra setup step. Yarrtube requires a YouTube Data API v3 key, which can be created through Google's developer console. The key is free to obtain, but it means the application still depends on an external service to discover videos. Downloading also depends on YouTube continuing to work with yt-dlp, so occasional breakage is possible. More importantly, Yarrtube currently has no built-in login system. Anyone who can reach its web interface can use it, including its folder browser. The project's own documentation recommends keeping it on a trusted local network or putting authentication in front of it. I wouldn't expose this one directly to the internet. A Smaller Way to Watch I don't think every self-hosted media application needs to become a full replacement for a commercial platform. Sometimes a focused tool is easier to understand and easier to keep around. Yarrtube is aimed at people who already know which channels they want to follow and would rather have those videos appear in their own library. It's also worth remembering that downloading videos should respect creators' rights and the platform's terms. Having a local copy doesn't automatically grant permission to redistribute someone else's work. For the full Docker instructions and the details on media-server integration, I'd recommend visiting the Yarrtube GitHub repository. The documentation explains what the application supports and where its limitations are today. https://noted.lol/yarrtube/ https://noted.lol/content/images/2026/10/image-15.png https://noted.lol/content/images/2026/10/image-14.png https://noted.lol/content/images/2026/10/image-16.png #youtube #yarrtube #channels #plex #server #setup #collection #docker #watching #jellyfin #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab iSponsorBlockTV Skips YouTube Sponsors on Your TV YouTube has become a regular part of life for a lot of us, especially when it comes to learning about new software or keeping up with what's happening in the homelab community. There's no shortage of interesting content, although the sponsored segments scattered throughout videos can get a little tiresome. On a computer, browser extensions can handle that. Televisions are another story. Most of us are using whatever YouTube app came with the TV or streaming device, and those don't give us the same freedom to install extensions. iSponsorBlockTV is a free, open-source application that handles this automatically. It runs on your own server and skips sponsored sections of YouTube videos playing on compatible televisions, without requiring you to replace the YouTube app.. How Does It Work Without Changing the YouTube App? The interesting thing about iSponsorBlockTV is that it doesn't actually change anything on your television. You keep using the regular YouTube app, with the same account and familiar interface. Instead, the application connects to YouTube's built-in TV pairing system, similar to how you'd connect your phone to control playback. It monitors what's playing and uses information from the SponsorBlock database to identify sections that people have marked as sponsorships. When playback reaches one of those sections, iSponsorBlockTV sends a command to jump ahead. You can also configure it to skip introductions and other categories, depending on what you prefer. The SponsorBlock database is maintained through community contributions, so the application depends on people identifying those sections in the first place. If nobody has marked a particular video, there may be nothing for it to skip. Running It Alongside Everything Else For those of us already running Docker containers, iSponsorBlockTV fits into the same general setup as the rest of our self-hosted services. It has an official container image and Docker Compose instructions, so there's no separate computer or special hardware required. Pairing a television involves opening YouTube's settings, selecting Link with TV code, and entering that code into the application's configuration tool. The initial configuration happens through a terminal interface rather than a web dashboard. It supports several familiar platforms, including Roku, Apple TV, Fire TV, Samsung televisions and LG televisions. Multiple devices can be paired with the same installation, which makes sense in a house where YouTube gets watched on more than one screen. I find projects that work quietly alongside existing applications interesting. There's no new television interface to learn here, and the media isn't being streamed through your server. The container is simply handling playback commands in the background. There Are Some Limitations One thing worth clearing up is that sponsored sections inside videos are different from YouTube's own advertisements. iSponsorBlockTV can mute advertisements and press YouTube's normal Skip Ad button when it becomes available. It cannot automatically remove every unskippable advertisement. YouTube Shorts aren't fully supported either, and certain playback arrangements, including Apple TV audio sent over AirPlay, have additional limitations. There's also the matter of YouTube changing things. The project has previously needed users to pair their televisions again after changes to YouTube's device identification system. Since iSponsorBlockTV relies on that connection, changes made by YouTube can affect how it works. Another Small Job for the Home Server One thing I've always found interesting about self-hosting is how many applications exist to solve a very specific annoyance. We spend plenty of time talking about large projects that manage entire media libraries, but sometimes a container has one job and that's the whole idea. iSponsorBlockTV is one of those projects. It doesn't manage your videos or replace YouTube. It simply watches for marked sections and tells the television when to move past them. If you're curious about how it works, I'd recommend visiting the iSponsorBlockTV GitHub repository. The developer has documented the supported devices, Docker installation process and known limitations there. https://noted.lol/isponsorblocktv/ https://noted.lol/content/images/2026/10/isponsorblocktv-terminal.png https://noted.lol/content/images/2026/10/isponsorblocktv-self-hosted-youtube-sponsor-skipping.png #youtubesponsors #isponsorblocktv #youtubeapp #skipsyoutube #televisions #docker #work #alongside #tv #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab NVIDIA RTX Spark N1X Launch Overview: NVIDIA Arms Windows This week NVIDIA launched their high-end RTX Spark N1X platform. Bringing their powerful GB10 SoC to Windows for the first time, the company is seeking to remake the Windows laptop market with their powerful, AI-focused SoC The post NVIDIA RTX Spark N1X Launch Overview: NVIDIA Arms Windows appeared first on ServeTheHome. https://www.servethehome.com/nvidia-rtx-spark-n1x-launch-overview-nvidia-arms-windows/ #rtxspark #windows #soc #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Homelable Helps Put a Picture to Your Home Server Setup You can spend years adding things to a home server without ever sitting down and drawing out how they all fit together. A NAS gets added here, another Docker host goes in the spare room, and before long there are enough devices on the network that you have to stop and think about where something is running. Usually, the information is scattered between browser bookmarks, old notes, and whatever you can remember. Homelable is a self-hosted project built around that problem. It provides a visual map of a homelab, with network discovery and status checks alongside the usual drag-and-drop diagram tools. The project has been around since March, but it has attracted a substantial following and was featured in the October 16 edition of Self-Host Weekly. For anyone who hasn't come across it, the interesting part is how it connects a drawing to what's actually running on the network. Getting the Network Out of Your Head A hand-drawn network diagram is fine until something changes. You move a service to another machine, replace a switch, or change an IP address, and the diagram is already out of date. Homelable tries to cut down on the initial work by scanning a chosen network range and finding devices with open ports. It places the results in a pending list, where you decide what belongs on the map. That last part matters. It isn't supposed to draw a perfect picture of your network and guess every relationship correctly. You still arrange devices, connect them, and add the details a scan can't know. The application can then check whether mapped devices or services are responding, using methods such as ping, TCP connections, or HTTP requests. Instead of a static image, the diagram can show which parts of the setup appear to be online. There's also a rack designer for documenting the physical side of things. It includes equipment layouts and cable connections, which is useful when the question isn't which container is running but which port on the switch leads to a particular machine. People with a small collection of mini PCs may never need that level of detail. Someone with a crowded rack probably understands the appeal of knowing where the cables go without tracing them by hand. More Than Computers and Containers Homelable can bring in information from Proxmox, including hosts, virtual machines, and LXC containers. It also supports importing Zigbee and Z-Wave devices through their respective integrations. That gives the map room to include things that don't show up as ordinary computers, such as smart-home devices connected through a coordinator. The project also includes Markdown documentation for individual devices. A network map can tell you where a machine sits, but it won't necessarily tell you why you configured it a certain way six months ago. Keeping those notes alongside the device is a practical addition, especially when a homelab has grown beyond the point where everything can be remembered. What It Needs to Run Homelable is free, open-source software under the MIT license. The project publishes Docker images and a Compose configuration, as well as installation options for Proxmox LXC and bare-metal Linux. There's an optional frontend-only mode for people who just want to draw diagrams without running the scanner and backend. There are a few limitations to understand. Network discovery uses Nmap, so the results depend on what the scanner can reach and which ports it checks. Docker's usual bridge networking also prevents some local-network discovery, including MAC-address collection; the documentation explains when Linux host networking may be needed. And the supplied installation starts with default administrator credentials, which need changing before the interface is made accessible to others. The project has received considerable community attention, including people sharing diagrams they've made and asking for improvements. That doesn't mean every setup will be discovered automatically, and it doesn't replace proper monitoring or documentation on its own. It does offer a way to keep a picture of the homelab close to the actual machines behind it, rather than leaving the whole arrangement in someone's head. https://noted.lol/homelable-self-hosted-homelab-visualizer/ https://noted.lol/content/images/2026/10/homelabel-server.png https://noted.lol/content/images/2026/10/homelable-services.png https://noted.lol/content/images/2026/10/homelable1-1.png #homeserver #network #picture #setup #containershomelable #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Your Homelab Doesn't Need to Run 24/7 There's something satisfying about having a rack full of servers running at home. The blinking lights, humming fans, and ability to spin up practically anything are part of what makes building a homelab enjoyable. But eventually, some of us discover that our impressive collection of hardware has become an expensive way to run a handful of Docker containers. Older enterprise servers are especially tempting because they're relatively inexpensive on the used market, often offering more memory and processing power than you'll ever need. Unfortunately, the purchase price is only part of the equation, and keeping everything running can quietly become one of your homelab's biggest expenses. The Hidden Cost of Always-On Hardware Consider a rack containing an older enterprise server, a NAS, and a network switch. Together, they might consume around 260 watts continuously, even when nobody is actively using most of the services. At that rate, the rack consumes approximately 187 kilowatt-hours over a 30-day month. With electricity priced at $0.20 per kilowatt-hour, that's roughly $37.44 monthly, or $456 annually. Additional workloads and cooling requirements can increase those expenses. For comparison, a mini PC averaging 20 watts consumes just 14.4 kilowatt-hours monthly, costing approximately $2.88 at the same electricity rate. That's a substantial difference for someone whose essential services barely use the processing power of an aging rack server. Of course, a mini PC isn't a replacement for every enterprise workload, but it raises an interesting question about how much hardware genuinely needs to remain powered on. Separate Essential Services From Your Lab One of the simplest ways to reduce electricity consumption is to stop treating every server as essential infrastructure. Your DNS server probably needs to remain available, and home automation may depend on local services operating continuously. A password manager might also justify staying online. But what about those experimental virtual machines or the Kubernetes cluster you haven't touched in weeks? Many of us leave powerful hardware running simply because it's convenient, even when those machines aren't doing anything useful. Separating everyday services from experimental workloads allows you to keep important applications running while shutting down unnecessary equipment. A modest computer running Proxmox or Linux with Docker can handle numerous lightweight services without requiring enterprise-grade hardware. Larger servers can remain available for demanding workloads, powered on only when needed. Wake-on-LAN can make this arrangement more convenient, provided your hardware supports it reliably. A Mini PC Might Be All You Need Modern mini PCs are remarkably capable, particularly for applications commonly found in homelabs. Services like Pi-hole, Uptime Kuma, and Vaultwarden generally require little processing power under normal household workloads. Even an inexpensive system can comfortably handle several Docker containers, provided it has adequate memory and storage. That doesn't mean everyone should abandon rack servers. Enterprise hardware offers advantages, including greater expansion capabilities and remote management features. Someone experimenting with virtualization or running memory-intensive workloads may have legitimate reasons to maintain powerful equipment. However, if most of your homelab consists of applications waiting for occasional requests, you might be surprised by how little hardware is necessary. Sometimes a Hybrid Homelab Makes Sense Another possibility is moving selected services to an inexpensive VPS while keeping storage and experimental hardware at home. For example, a VPS could handle a public-facing reverse proxy while maintaining a private WireGuard connection to your local network. This can be useful when your home internet connection has limitations or you want certain services accessible during maintenance. However, moving everything to a VPS isn't necessarily cheaper. Storage costs can become significant, particularly for media libraries, and remote hosting introduces another provider into your infrastructure. A hybrid approach works best when there's a clear reason for moving each service rather than simply trying to eliminate electricity consumption. Measure Before Spending Money Before replacing hardware, find out how much electricity your equipment actually uses. A plug-in electricity meter or compatible energy-monitoring smart plug provides real measurements instead of estimates based on specifications. If you're using Home Assistant, its Energy dashboard can help track electricity consumption from supported devices. Pay particular attention to idle consumption because those costs accumulate even when nobody is using your applications. Calculate your annual electricity expenses and compare them against the cost of more efficient hardware. You might discover that upgrading makes financial sense, or that keeping your existing server is perfectly reasonable. Buying a $500 mini PC to save $20 annually probably isn't the financial victory you imagined. Keep the Homelab, Rethink the Hardware The appeal of self-hosting has never been exclusively about saving money. Some people genuinely enjoy experimenting with enterprise hardware, and that enjoyment is part of the hobby. A powerful server that helps you develop professional skills may also provide considerably more value than its electricity bill suggests. But there's a difference between knowingly spending money on something you enjoy and leaving equipment running simply because you never considered turning it off. You don't have to give up your rack server or abandon the projects that made you interested in self-hosting. Sometimes the smartest homelab upgrade isn't another server. It's realizing that the one you already own doesn't need to run all the time. https://noted.lol/your-homelab-doesnt-need-to-run-24-7/ https://noted.lol/content/images/2026/10/server-rack-homelab.png https://noted.lol/content/images/2026/10/minipc-vs-enterprise-server-power-consumption.png https://noted.lol/content/images/2026/10/homelab-power-consumption-costs.png #run #services #need #hardware #mini #essential #might #hiddencost #docker #needmodern #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Microsoft Surface Laptop Ultra Review We review the Microsoft Surface Ultra to see how the NVIDIA RTX Spark powered laptop fares and try to answer who the platform is for The post Microsoft Surface Laptop Ultra Review appeared first on ServeTheHome. https://www.servethehome.com/microsoft-surface-laptop-ultra-review/ #microsoftsurface #review #rtxspark #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab FileBrowser Quantum 2.0 Adds Activity Logs and Permissions Managing files across a home server becomes less convenient as storage grows. SSH and network shares still have their place, but sometimes a web interface makes finding a document or moving files between directories easier. FileBrowser Quantum provides that interface, allowing users to browse and manage files directly on their own servers. Version 2.0 reached stable release on October 9, 2026, introducing more detailed permissions and a new activity logging system. It also replaces the application's database, making upgrades from earlier versions more involved. We've covered FileBrowser Quantum previously, including its file indexing capabilities and Docker setup. This release makes several changes worth understanding before updating an existing installation. More Control Over File Permissions FileBrowser Quantum already supported multiple users and restricted access to specific directories. Version 2.0 changes how those permissions are assigned. Previously, file permissions were primarily managed through global user settings. Now, permissions are assigned separately for each storage source, with independent controls for viewing, downloading, and modifying files. This makes a difference when sharing directories with other people. Someone could be allowed to browse family photos without being able to delete them. Another account might have permission to upload documents to a particular directory without receiving broader access elsewhere. Viewing and downloading are also treated as separate permissions. However, allowing someone to view a document doesn't guarantee they cannot capture its contents through other means. Activity Logs Show What's Happening Another addition is the Activity Viewer, which records actions performed through FileBrowser Quantum. Administrators can review file uploads, downloads, deletions, and other supported operations. The viewer also records account-related activity, including logins and permission changes. Logs can be filtered and exported as CSV files. By default, activity history is retained for 30 days, although administrators can adjust that period. This could be useful on shared servers where several people access the same directories. If a file disappears, the activity history may help identify what happened. There are limitations. Changes made directly through SSH or another application won't appear in FileBrowser Quantum's history. File previews and WebDAV file reads aren't recorded either. Upgrading From Version 1.x Requires Migration Existing users should pay particular attention to the database changes. FileBrowser Quantum 2.0 replaces BoltDB with SQLite and reorganizes its configuration structure. Simply pulling the latest Docker image is not enough for an existing 1.x installation. The migration process requires backing up the original database, converting the configuration, and allowing the application to import existing account information into SQLite. Some settings have also moved. HTTP configuration now uses a dedicated http section, while the database environment variable changes from FILEBROWSER_DATABASE to FILEBROWSER_DATABASE_PATH. Existing permissions should be reviewed afterward, particularly when users have access to multiple storage sources. The developers provide an official migration guide covering the process. Before updating, make sure your backups are recoverable. We recently discussed why successful Docker backups don't always guarantee a working restore. Security Fixes Arrived Shortly After Release Version 2.0.1 followed on October 13, addressing two security vulnerabilities. One involved accounts created with specially crafted usernames containing .., which could allow access outside their assigned directory. Another involved session token collisions when multiple users logged in simultaneously. Both issues were addressed in the 2.0.1 stable release. The fixes are documented on the project's GitHub releases page. It's also worth remembering that FileBrowser Quantum's user permissions don't replace filesystem permissions. A container with write access to sensitive host directories still has that underlying access, regardless of restrictions configured in the web interface. Should You Upgrade? FileBrowser Quantum 2.0 offers more control over shared directories and better visibility into how files are being accessed. For servers with multiple users, those changes are particularly relevant. Existing installations should move to the patched 2.0.1 stable release after preparing for the database migration. Review your Docker mounts and confirm existing accounts still have the intended permissions afterward. The interface remains familiar, but the changes underneath deserve a little more attention than an ordinary container update. https://noted.lol/filebrowser-quantum-2-0/ https://noted.lol/content/images/2026/10/image-13.png https://noted.lol/content/images/2026/10/image-12.png https://noted.lol/content/images/2026/10/filebrowser-quantum-2-0-file-management.png #filebrowserquantum #permissions #activitylogs #file #changes #version #another #existing #ssh #docker #rss #feeds #linksharing #qwibbit npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab This is the AMD Helios HPE Juniper QFX5252 Switch Tray at OCP 2026 At OCP 2026, we saw an AMD Helios AI rack switch tray, the HPE Juniper QFX5252. This just looks super cool The post This is the AMD Helios HPE Juniper QFX5252 Switch Tray at OCP 2026 appeared first on ServeTheHome. https://www.servethehome.com/this-is-the-amd-helios-hpe-juniper-qfx5252-switch-tray-at-ocp-2026/ npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Crumb: A Ghost Theme Built Around Good Food There’s no shortage of recipe websites on the internet, but finding the actual recipe can sometimes feel like a chore. Between oversized advertisements, unnecessary introductions, and cluttered layouts, something as simple as looking up dinner can become frustrating. Crumb takes a simpler approach. It's a dark, minimal recipe theme for Ghost CMS, designed to give home cooks a comfortable place to discover recipes without everything else getting in the way. A Kitchen Worth Coming Back To Crumb has a warm, understated appearance that puts food photography at the center of the experience. Its charcoal backgrounds provide a nice contrast against colorful dishes, while carefully spaced typography keeps everything readable. The homepage opens with a featured recipe, followed by a collection of categories and the latest additions from the kitchen. Everything has its place, and the layout gives recipes enough room to stand on their own. The theme is responsive, with layouts that adapt to phones, tablets, and desktop screens. Recipes Without the Runaround Recipe pages are where Crumb really comes together. Each recipe has a dedicated layout with clearly separated ingredients and instructions. A Jump to Recipe button takes visitors directly to the information they came for, while a Print Recipe option provides a cleaner version to keep nearby while cooking. Preparation times, cooking times, and servings can also be displayed alongside the recipe, making it easier to see what's involved before getting started. Crumb uses Ghost's familiar editor for creating recipes. Ingredients can be added as bulleted lists, with numbered instructions beneath them. There's no complicated publishing interface to learn. Keep Everything Organized As a recipe collection grows, finding something specific becomes increasingly important. Crumb includes a dedicated Recipes page, complete with search and category filtering. Visitors can browse the collection or narrow down what they're looking for. There's also a separate Collections page that organizes recipes into categories such as Bread, Breakfast, Desserts, Dinner, and Sides. Each collection has its own image, description, and recipe count. Collection images are managed through Ghost's tag settings, making it easy to update the appearance of the website as new recipes are added. A Little More Than Recipes Crumb also provides room for kitchen guides, cooking techniques, and other useful articles. These can live alongside recipes while remaining organized through Ghost's tagging system. Ghost's native comments allow readers to share their experiences, ask questions, or suggest adjustments. The theme includes a custom dark signup invitation for visitors who haven't joined yet. For publishers interested in growing an audience, Crumb includes a subscription section on the homepage with an editable background image. Clicking its signup button opens a custom subscription popup that connects to Ghost's built-in membership system. Made for Ghost Crumb works with Ghost's publishing tools, including its editor, tags, memberships, and newsletters. The theme includes custom templates for the Recipes and Collections pages, along with settings for adjusting selected design elements through Ghost Admin. There's also a food-themed fallback image for recipes and collections that haven't been assigned their own photography. The result is a recipe publication that feels cohesive without requiring an elaborate setup. Bringing It All Together Crumb was designed with everyday cooking in mind. Homemade bread, a batch of cookies, something quick for breakfast, or dinner for the family all deserve a place where the instructions are easy to find and the photographs have room to shine. It's a comfortable home for a growing collection of recipes, built on Ghost and designed to make sharing good food a little more enjoyable. Suggested excerpt Crumb is a minimal, dark-mode recipe theme for Ghost CMS featuring searchable recipes, organized collections, printable instructions, and a clean cooking experience. crumb-theme-1.0 crumb-theme-1.0.zip 130 KB download-circle Changelog Version 1.0.0 — Initial Release Initial release of Crumb, a minimal, dark recipe theme for Ghost featuring organized collections, searchable recipes, printable instructions, and a clean, responsive design. https://noted.lol/crumb/ https://noted.lol/content/images/2026/10/crumb-home.png https://noted.lol/content/images/2026/10/crumb-recipe-page.png https://noted.lol/content/images/2026/10/crumb-recipes.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab plMail Brings a Gmail-Style Inbox to Your Own Server Gmail has long made it convenient to collect messages from several email accounts in one inbox. Google is now winding down part of that arrangement. Its Gmailify and desktop POP-fetching features are being retired, with existing users able to continue POP fetching only until January 2027. Gmail isn't shutting down POP or IMAP access for third-party clients; its website will stop collecting mail through “Check mail from other accounts.” That's a reason to consider something self-hosted. plMail is a new, free, open-source webmail client that takes an appealing approach: leave your actual mailboxes where they are, but host the interface that brings them together. It has the familiar feel of a modern email service without requiring you to operate a mail server. One Inbox Without Moving Your Email The important distinction is that plMail is a mail client, not a mail server. It doesn't replace the company that receives messages for your domain or take over email delivery. Instead, it connects to existing IMAP accounts, Gmail and Outlook, then synchronizes messages into a PostgreSQL database on your server. You get a single place to read conversations, search across accounts and manage labels while your existing providers continue handling delivery. The interface supports threaded conversations and a unified inbox with category tabs. Search includes familiar operators such as from:, subject: and has:, making it possible to narrow down a message without remembering which account received it. There are filters for organizing incoming mail, and messages can be moved into folders or assigned labels directly from the interface. The calendar sits alongside the inbox and supports synchronization with Google, Microsoft and CalDAV services. For someone juggling personal and domain mailboxes, the attraction is having the same workspace on different computers without configuring every account again. Docker Makes It Approachable The project includes an official Docker Compose configuration and published images for AMD64 and ARM64 systems. According to the installation instructions, you can clone the repository and start the stack with docker compose up -d. Initial setup generates application secrets and asks for the public address you want to use. After creating an account, you can add an ordinary IMAP mailbox from the settings page. Gmail and Outlook need additional OAuth configuration, so they take more work than entering a standard IMAP server. Don't mistake this for a five-minute migration. The project also has a TrueNAS application for users who prefer installing through their NAS interface. One backup detail deserves particular attention. plMail stores synchronized messages in PostgreSQL, but the encryption key for saved account credentials lives separately in var/secrets/generated.env. Back up both the database and that secrets file. Recovering one without the other can leave you with an archive of messages but no way to unlock the saved mailbox credentials. Local AI Is Optional, Not the Point plMail includes optional language-model features for drafting replies and summarizing long conversations. It can also use a model to help sort mail or search by meaning. Crucially, none of this is required for the ordinary email experience, and the features are disabled by default. If you want them, the project supports Ollama running on your own network. That means the model can process messages locally instead of sending them to a commercial inference service. Remote endpoints are also supported, but nobody needs to pay for one. Otherwise, leave AI disabled and use regular search and filtering. Email is personal; features that read message content should require deliberate consent. Promising, With a Few Early-Project Caveats The project is licensed under AGPL-3.0 and is being actively developed, but it is still young. Its maintainer has described the Android companion app as usable for daily work while acknowledging that the iOS app needs more attention. Some integrations also have rough edges: support for Proton Mail Bridge, for example, is limited by certificate-handling details that still need testing. Because plMail synchronizes messages into your own database, running it creates another sensitive copy of your email. That gives you control over search and the interface, but also makes access controls and backups your responsibility. Use HTTPS with a trusted certificate for normal access, protect the administrator account with two-factor authentication and avoid exposing an experimental installation casually to the internet. The project's security policy also makes clear that maintenance is currently handled by one person, so a fix may take time. plMail isn't a finished replacement for every feature in Gmail, and it doesn't remove your dependence on the provider hosting your mailbox. What it offers is more specific, and arguably more interesting: a self-hosted front end for email accounts you already use. If Google's changes have you reconsidering where your inbox lives, this is a project worth watching and testing with a secondary account before trusting it with everything. https://noted.lol/plmail-self-hosted-gmail-alternative/ https://noted.lol/content/images/2026/10/compose.png https://noted.lol/content/images/2026/10/calendar.png https://noted.lol/content/images/2026/10/filters.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Pikapods Instant Apps. Zero Hassle. PikaPods makes running open-source applications easy. Instead of setting up and maintaining your own server, you can deploy popular applications in the cloud with just a few clicks. It's an excellent option for anyone interested in self-hosted software who wants the convenience of managed hosting. Why PikaPods? Easy deployment: Choose an application and launch it without complicated server configurations. Managed hosting: PikaPods handles much of the underlying infrastructure. Affordable pricing: Pay for the resources your applications need. Custom domains: Connect your own domain and use HTTPS. Open-source applications: Host useful tools such as Uptime Kuma and other supported applications. Get Started With PikaPods PikaPods has offered a $5 welcome credit for new accounts, allowing users to try the service before spending their own money. Check the current offer when signing up, as promotions can change. Visit PikaPods: https://pikapods.com/?utm_source=noted.lol PikaPods is a sponsor of Noted. Sponsorship helps support the publication and keeps our articles free to read. https://noted.lol/pikapods/ https://noted.lol/content/images/2026/10/pikapods.jpg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Poll: Which Reverse Proxy Do You Use? We are testing our new poll feature 😄 Also, I know I forgot Pangolin! https://noted.lol/poll-which-reverse-proxy-do-you-use/ npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Noted 3.0: More Than a Redesign I’ve been working on Noted 3.0 for a while now, and it has turned into a much bigger update than I originally planned. A lot of it started with small things that bothered me. Pages were getting harder to organize, older articles were getting buried, and I wanted certain parts of the site to have their own place instead of everything being mixed together. So I started cleaning it up. It turned into a complete custom theme design. The homepage has been reworked quite a bit. Recent posts are still there, but there are now better ways to get into the different parts of Noted without having to dig around. One of the bigger additions is the new Get Started section. I took four articles that I think make a good starting point for someone new to self-hosting and turned them into a simple course. It starts with hardware, moves into the basics, then Docker and Portainer, and finishes with self-hosting Ghost. The articles need updating and I'll be working on that too. Nothing is locked behind an account. It is just a cleaner way to work through the guides in order. The Articles page also got a major overhaul. Instead of being a basic post archive, it now has live search and can actually search through the full Noted library, including older posts that were getting missed before. There is also a completely new Polls section. I’ve wanted Noted to feel a little more interactive for a while, without turning it into another social network. Polls seemed like a simple way to do that. I can throw up questions about self-hosting, Docker, operating systems, apps, or whatever else fits the site, and people can vote without having to write a full comment. The polling system is built directly into Noted now, so the results update on the site as people vote. I also added an Updates page. This is where I can post smaller site updates, changelog-type notes, quick announcements, and things that don’t really need a full article. There is now a small lightning bolt in the header that links straight to it, especially useful on mobile. I like having somewhere to post those little changes without making them compete with normal articles. The Stats page is new too. Stats has the nerdy stuff like article counts, writing totals, publishing history, and popular topics. Another new section is Themes. I’ve been making more Ghost themes lately (including this one), so I wanted a proper place for them. Theme posts now have their own layout with version information, download links, release dates, and a changelog at the bottom. There is also a small note on those posts explaining that AI is used during the design and development process. I think it is better to be upfront about that. I’m not a designer, but I have plenty of ideas I’ve wanted to see brought to life in Ghost. AI has helped me turn those ideas into actual themes, and the best part is they are all free. A bunch of smaller things changed too. Code blocks now have copy buttons. Author names link to their profiles. Comment counts show next to the reading time. GitHub repository links get cleaner cards. Sponsor posts stay out of the normal article feeds. The mobile experience on Noted has gotten a major update too. I cleaned up several layouts across the site, especially the homepage and Get Started page, so things feel less cramped and more consistent on smaller screens. The search box was rebuilt too. The old one never really matched the site, and it was also missing older articles. The new search fits the theme better and searches everything. There are still a few things I’ll probably tweak as I use it, but that is usually how Noted gets updated anyway. Final Notes and Thoughts The feature I’ve been most excited to add is Polls. I’ve wanted a simple way for people to interact with Noted without having to leave a comment or create some long discussion. Sometimes I just want to ask a quick question like what Docker manager people are using, which operating system they prefer, or what self-hosted app they’ve been enjoying lately. Now I can. Polls are built directly into Noted, and the results are live. As people vote, you can head over to the Polls page and watch the numbers change. That live part is probably what I like most about it. It makes the site feel a little more active instead of every article being something you simply read and move on from. I’ve already got a bunch of poll ideas planned, and I think this is going to be one of the more fun parts of Noted going forward. It’s simple on purpose. Pick an answer, vote, and see what everyone else thinks. It’s not bulletproof, but it’s fun, and I hope it adds just a little joy to your day. https://noted.lol/noted-3-0/ https://noted.lol/content/images/2026/10/noted-3.0.png https://noted.lol/content/images/2026/10/noted-polls-section.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Open Sauce and GPS time were my summer AI Antiseptics In the midst of our AI slop revolution, traveling to the West coast for Open Sauce this past weekend was the perfect antiseptic for rising costs, summer heat, and online divisiveness. It's ironic, then, that I used Claude to vibe code my Tufty GPS Time Badge. Partly due to time constraints, and partly because I wanted to see if I could complete a personal project end-to-end, without editing a line of code, I throw my requirements at Claude and ultimately came up with this 2141-line MicroPython app for Pimoroni's Badgeware ecosystem. https://www.jeffgeerling.com/blog/2026/open-sauce-gps-time-badge/ https://www.jeffgeerling.com/blog/2026/open-sauce-gps-time-badge/tufty-gps-time-badge.jpeg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Why Every Self-Hoster Eventually Becomes a Data Hoarder I don't think anyone gets into self-hosting with the intention of becoming a data hoarder. At least, I certainly didn't. You start with a few applications, maybe a small media library, some family photos, and a place to store your important files. A couple of hard drives should be plenty, right? Then you discover Jellyfin, Emby, Sonarr, Radarr, and all the other wonderful applications that make collecting and organizing media ridiculously easy. Before you know it, you're browsing Amazon for another hard drive because the 20TB you thought would last forever is almost full. And somehow, buying another drive seems like a much better idea than deleting anything. Where Did All My Storage Go? I've been self-hosting for years, and one thing I've learned is that storage has a funny way of disappearing. It doesn't matter how much you have available. Eventually, you'll find something to fill it with. Movies, TV shows, music, photos, backups, and YouTube videos all start adding up. I've even used Pinchflat-ngx to archive YouTube channels locally because apparently having access to YouTube on the internet just isn't enough anymore. Then there's the whole process of organizing everything. I use Emby and Jellyfin, and I've spent more time than I'd like to admit making sure my media libraries look nice. Getting the metadata right, organizing seasons, fixing titles, and finding the correct artwork can turn into an evening project before I even realize it. Sometimes I wonder if I enjoy organizing my collection more than actually using it. And of course, we can't forget about backups. Once you've accumulated enough data, you start worrying about losing it. Now you need additional storage to back up the storage you already have. That alone can turn into another expensive adventure, especially when you're dealing with multiple terabytes of files. But What If I Need It Someday? This is probably the biggest problem I have when it comes to deleting things. I'll come across a movie I haven't watched in years or a folder full of files I completely forgot about, and my first thought is that I might need them someday. I'm not sure when that day is coming, but apparently I'm preparing for it. I think having everything available locally is part of the appeal. There's something satisfying about knowing your files are sitting on your own hardware, ready whenever you want them. You don't have to wonder if a streaming service removed something from its catalog or if an online service is going to disappear. Of course, keeping all that data also means taking responsibility for maintaining the hardware that stores it. The funny part is how easily we justify buying more storage. I could probably spend an entire weekend going through old files and freeing up space, but why would I do that when I could just add another hard drive? I know that's not exactly a responsible storage management strategy, but I have a feeling I'm not alone. There's Always Room for One More Drive I've reached the point where storage capacity is something I think about far more often than I ever expected. Every time I expand my server, I tell myself that I should be good for a long time. Then a few months pass, the available space starts shrinking, and I'm right back to thinking about another upgrade. I suppose it's part of the hobby. We enjoy building things, collecting media, and having control over our data. And sometimes we keep things simply because we can. I don't necessarily think there's anything wrong with that, although my wallet might disagree. Maybe someday I'll sit down and go through all those old files I've been keeping around for years. I'm sure there's plenty of stuff I could delete without ever missing it. But first, I should probably check the price of another 20TB hard drive. How Much Storage Are You Running? Now I'm curious how much storage everyone else has managed to accumulate over the years. Are you running a modest home server with a few terabytes, or have you reached the point where 100TB doesn't seem like nearly enough anymore? I've added a quick poll below to see just how much storage we're all working with. Count your total usable capacity, regardless of how much space you've actually filled. I'm especially curious how many of you have crossed the 200TB mark! Go ahead and cast your vote. I have a feeling some of these numbers are going to be ridiculous. [poll:7] https://noted.lol/self-hosting-data-hoarding/ https://noted.lol/content/images/2026/10/home-server-rack-nas-storage.png https://noted.lol/content/images/2026/10/self-hosting-data-hoarding-problem.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Where Do You Discover New Self-Hosted Apps? I don't think I've gone an entire week without discovering another self-hosted application that catches my attention. Sometimes it's something genuinely useful that solves a problem I've been dealing with. Other times, it's an application I didn't even know existed until someone mentioned it. Either way, there's a good chance I'll end up browsing the GitHub repository and wondering if I have room for another Docker container. After years of self-hosting and writing about applications on Noted, I've realized just how many different ways there are to discover new software. Some of my favorite projects have come from random recommendations I happened to stumble across. Others came from developers reaching out to share something they've been working on. I've even discovered applications while looking for solutions to completely unrelated problems. But I've started wondering where everyone else finds their self-hosted apps. Where Do You Find Something New? Reddit has always been one of my favorite places to discover new projects, particularly communities like r/selfhosted. People regularly share what they're running, and I enjoy seeing the applications others have found useful. Being involved in the community has introduced me to plenty of software I probably wouldn't have discovered otherwise. Sometimes I'll come across a recommendation in the comments of an unrelated discussion, and before I know it, I'm reading through another GitHub repository. Speaking of GitHub, that's another place where I can easily lose track of time. I'll start by looking at one repository and notice a related project that catches my attention. One thing leads to another, and suddenly I've spent an hour browsing software I had absolutely no intention of looking for. Finding something that looks promising is always exciting, although that doesn't necessarily mean I'll end up using it. I've already written about the self-hosted apps I keep installed but rarely use, so apparently discovering applications and actually using them are two different hobbies for me. At this point, I'm basically an unpaid beta tester! The Value of Blogs and Personal Recommendations I still believe independent blogs and websites play an important role in helping people discover software. That's one of the reasons I've enjoyed running Noted for so long. There's something valuable about reading an article written by someone who has actually spent time using an application. I appreciate hearing about their experience, especially when they're willing to discuss the things that didn't work as expected. Another place worth mentioning is daily.dev, which brings together articles from tech publications and independent developers. It's easy to come across a project or tutorial that sends you down another rabbit hole. I like the idea of having a steady stream of technical content to browse, although it's probably not doing my already growing list of applications to try any favors. It's also nice to find projects that haven't received much attention yet. There are plenty of talented developers creating useful applications that might never appear on GitHub's trending page. Sometimes all it takes is one person writing about a project to introduce it to an entirely new audience. I've had developers reach out to me about applications they were working on, and I've discovered some great software through those conversations. YouTube is another option, although I don't find myself using it nearly as often for discovering applications. I can understand why people enjoy watching demonstrations before installing something, particularly when an application has a complicated interface. There's also something to be said for recommendations from friends or people you regularly talk to in online communities. If someone has been using an application for years and still recommends it, I'm usually interested in finding out why. The funny thing is that discovering new software has almost become part of the hobby itself. I can have a perfectly functional home server with everything running exactly how I want it, yet I'll still find myself looking for something new to install. I don't even have to be looking for a particular solution. Sometimes I just enjoy seeing what people are building. Where Does the Noted Community Discover Apps? Now I'm curious where everyone else spends their time looking for new self-hosted applications. With so many projects being released, I imagine we're all discovering software in different ways. Some people might spend hours browsing GitHub, while others prefer following discussions on Reddit or reading about new releases on their favorite websites. I've added a poll below asking where you typically discover new self-hosted apps. Think about where you usually hear about a project for the first time, rather than where you go to download it afterward. Go ahead and cast your vote. I'm curious to see where most Noted readers are finding their next favorite application. Who knows, maybe I'll discover another place to browse for software I probably don't need. [poll:8] https://noted.lol/where-to-find-self-hosted-apps/ https://noted.lol/content/images/2026/10/cozy-evening-self-hosting-workspace.png https://noted.lol/content/images/2026/10/where-do-you-find-your-apps.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Getting the Steam Deck LCD working on a Raspberry Pi The BOE TV070WXM-TV0 LCD used in the original Steam Deck can be had for around $30. It's a serviceable 7" touchscreen with 400 nits of brightness and a resolution of 1280x800 (for a sharp 216 ppi). The specs are a lot nicer than the Pi 7" Touch Display, which costs twice as much, with giant bezels and half the resolution! Until today, the Steam Deck LCD didn't work with a Raspberry Pi. But the folks at Scandent were trying to standardize on a mass-market touchscreen for one of their own devices, and built a Linux kernel driver for it which they intend to upstream. https://www.jeffgeerling.com/blog/2026/steam-deck-lcd-pi-hat/ https://www.jeffgeerling.com/blog/2026/steam-deck-lcd-pi-hat/steam-deck-lcd-pi-front-touch.jpeg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Your Docker Backups Might Be Useless When You Need Them Most Backing up a self-hosted server sounds simple enough. Choose a backup application, point it at your Docker directories, configure a schedule, and let it run. As long as the dashboard shows a successful backup every night, everything should be fine. But there's an uncomfortable question that many self-hosters never get around to answering: Could you actually restore everything if your server died tomorrow? A successful backup doesn't necessarily mean your applications can be recovered. You might have every Docker Compose file safely stored away, only to discover that your database wasn't backed up correctly. Your files might be intact, but the environment variables needed to start an application are missing. The problem isn't always the backup software. Sometimes it's how we've organized our self-hosted environments in the first place. Backing Up Files Isn't the Same as Backing Up Applications Docker makes deploying applications remarkably convenient, but it can create a false sense of simplicity when it comes to protecting their data. A typical self-hosted application might have a Compose file stored in one directory, persistent data stored somewhere else, and a database running inside another container. Depending on how the application was deployed, some information might live inside Docker-managed volumes rather than easily accessible folders. Simply copying the directory containing your Compose file won't necessarily preserve everything required to restore the service. Even copying all persistent directories can introduce problems. Databases that are actively writing information may not produce consistent backups when their files are copied without coordination. That's why a proper backup strategy needs to account for the entire application, including its persistent data and any required configuration. The Problem With Having Too Many Backup Tools There's no shortage of backup software available to self-hosters. Restic, BorgBackup, Kopia, Duplicati, and numerous management interfaces all provide ways to protect important files. Yet choosing another backup application doesn't automatically solve the underlying problem. Consider someone running twenty Docker containers across a dozen Compose projects. Each service has different requirements. Some need database dumps before backups begin, while others simply need a directory copied. Certain applications contain irreplaceable information, while others store temporary data that could easily be downloaded again. A backup solution that treats every directory identically may waste considerable storage. Worse, a backup configuration that depends on manually adding every new project creates opportunities for important data to be overlooked. For many home server owners, the missing feature isn't another backup format. It's a clear overview of which applications are protected and which ones aren't. Organizing Your Docker Directories Can Make Recovery Easier One practical improvement is keeping each application's configuration and persistent data organized under a predictable directory structure. For example, a home server might use /docker/immich/ for its Immich deployment and /docker/vaultwarden/ for its password manager. Each directory could contain its Compose configuration and related application data, with appropriate handling for databases and secrets. This doesn't mean every application must use bind mounts. Docker volumes have legitimate advantages, and certain applications are better suited to them. What matters is knowing exactly where important information lives and making sure your backup process includes it. A consistent structure also makes individual application recovery considerably less intimidating. Instead of restoring an entire server because one application failed, you can identify the affected project's configuration and recover the necessary data without disturbing unrelated services. Your Database Deserves Special Attention Databases are one of the easiest parts of a self-hosted setup to misunderstand. Applications using PostgreSQL, MariaDB, or SQLite may continue accepting writes while a scheduled backup is running. Depending on the database and backup method, blindly copying live database files can produce an inconsistent snapshot. The safer approach is to use a database-aware backup method, such as a supported database dump or a properly coordinated snapshot. Some backup systems support scripts that execute before and after a backup. Those scripts can prepare an application for backup and restore normal operation afterward. The exact process depends on the database and application. A method that works for one service may be inappropriate for another. The important thing is understanding whether the data you're protecting can actually be recovered into a working application. Don't Forget About Offsite Copies Keeping backups on another drive inside the same server is useful, but it doesn't protect against every failure. A serious hardware problem, theft, or accidental deletion could affect both the original data and its local backup. The familiar 3-2-1 backup strategy remains a useful starting point: three copies of important data, stored across two types of storage, with one copy maintained offsite. For a homelab, that might mean keeping the original application data, a local backup repository, and another protected copy on a remote server or cloud storage provider. Encryption is particularly important when transferring personal files or application databases to storage you don't directly control. It's also worth considering whether a compromised server could delete its own backups. Versioned snapshots, restricted credentials, and storage protections can make recovery more resilient. The Restore Test Most People Skip Perhaps the most valuable backup practice is also the least exciting: actually testing recovery. Choose a noncritical application and restore it into an isolated environment. Recreate its configuration, recover the data, and verify that it behaves as expected. Don't assume that seeing files inside a backup archive means the application will start successfully. You may discover that an environment variable was excluded, a database dump is incompatible with the application version, or an unexpected permission prevents the container from accessing restored files. Finding those problems during a planned test is inconvenient. Discovering them after a drive failure can be devastating. It's also worth documenting the recovery process somewhere outside the server itself. Instructions stored exclusively on the machine you're trying to recover aren't especially helpful when that machine becomes unavailable. A Backup Is Only as Good as Your Ability to Restore It Self-hosting offers something valuable: control over the services and information we depend on. But that control also comes with responsibility. You don't necessarily need an expensive enterprise backup platform or a complicated collection of scripts to protect your homelab. A straightforward system that consistently captures the right data and makes restoration understandable can be far more valuable than an elaborate setup nobody knows how to recover. The next time your backup dashboard reports another successful run, consider doing something different. Pick an application and try restoring it. You might discover that your backups are working perfectly. Or you might uncover a problem that's been quietly waiting for the worst possible moment. [trivia:15] https://noted.lol/docker-backups-restore-self-hosted-apps/ https://noted.lol/content/images/2026/10/image-9.png https://noted.lol/content/images/2026/10/vykar-borgbase-gui-screenshot.png https://noted.lol/content/images/2026/10/docker-backups-arent-enough.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab For a mobile 'mini homelab' project I'm working on, I wanted to use 5G Internet as a primary 'on-to-go' connection, but still have the ability to plug in another Internet connection when I put the mobile rack I'm building in a fixed location. I'll have more on that project soon, but I figured this project was a good way to check out Ubiquiti's solutions, especially considering many of their smaller gear fits nicely within the dimensions of a mini rack (the 3U DeskPi RackMate TT is pictured above). https://www.jeffgeerling.com/blog/2026/unifi-u5g-backup-debugging/ https://www.jeffgeerling.com/blog/2026/unifi-u5g-backup-debugging/unifi-5g-backup-20mbps-in-studio.jpg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Building a mini Homelab that fits in my carry-on I'm traveling to Chicago for VCF Midwest next month. I'll be demoing NTP time history on vintage Macs, with my own GPS-derived NTP service hosted on an Xserve G5, synced via NTP or a strange AppleTalk timing extension from the 1990s. So I built a little 'portable homelab' (pictured above) that supports 1-10 Gbps networking, can run off a small battery for at least an hour, switches between multiple WANs (so I can get my own 5G Internet connection, in case I need it), and gives me 12 wired Ethernet connections. https://www.jeffgeerling.com/blog/2026/mini-homelab-network-fits-in-carry-on/ https://www.jeffgeerling.com/blog/2026/mini-homelab-network-fits-in-carry-on/ubiquiti-mini-rack-network-with-ups.jpg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Before NTP there were Time and Daytime In building an NTP time demo on old Macs for VCF Midwest, I came across RFC 867 and RFC 868, for the 'Daytime' and 'Time' Protocols, respectively. My first exposure to any form of network time was when I upgraded from a used PowerBook 180c to my first 'new' computer, a Power Mac G3, in 2000. With the introduction of Mac OS 8.5, Apple added a 'Network Time Server' option in the Date & Time Control Panel. https://www.jeffgeerling.com/blog/2026/rfc-867-868-time/ https://www.jeffgeerling.com/blog/2026/rfc-867-868-time/rfc-867-daytime-protocol.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Is Cloudflare Tunnel Actually Secure for Self-Hosting? I've used several methods for accessing my self-hosted applications remotely over the years, but I've grown particularly fond of Cloudflare Tunnel. It's convenient, doesn't require opening ports on my router, and makes it relatively easy to access applications through my own domains. But I've seen people question how secure Cloudflare Tunnel actually is, especially when it comes to exposing applications running on a home server. It's a fair question, considering how much personal data some of us keep on our homelabs. So, is Cloudflare Tunnel really safe to use? What Does Cloudflare Tunnel Actually Protect? One of the biggest advantages of Cloudflare Tunnel is that it doesn't require inbound connections to your home network. Instead, a small application called cloudflared establishes an outbound connection to Cloudflare, allowing visitors to reach your services without directly connecting to your server's public IP address. This eliminates the need for traditional router port forwarding and helps keep your server's public IP address hidden from visitors accessing those services. That's a pretty significant security benefit, particularly for anyone who doesn't want to deal with exposing individual ports on their home network. However, there's an important detail that I think some self-hosters overlook. Just because you're using Cloudflare Tunnel doesn't mean your application is private. If you publish something like a Docker dashboard through a public hostname, anyone who knows that address may be able to reach its login page. Cloudflare Tunnel doesn't automatically require visitors to authenticate before connecting to your application. That's where additional protection becomes important. Cloudflare Access Adds Another Layer Cloudflare offers a service called Cloudflare Access that allows you to restrict access to applications before visitors can reach their login pages. For example, you could configure Access so that only approved email addresses can connect to your self-hosted dashboard. Anyone else would be stopped before reaching the application itself. I think this is particularly useful for administrative interfaces that have no reason to be publicly accessible. There is one thing to consider, though. Applications that rely on their own desktop or mobile clients may not work properly behind a browser-based Cloudflare Access login. You should test synchronization and API functionality before enabling additional authentication. What Cloudflare Tunnel Doesn't Protect You From While Cloudflare Tunnel reduces certain risks, it doesn't eliminate the need to secure the applications running behind it. If an application contains a vulnerability that can be exploited through its publicly accessible interface, using a tunnel doesn't necessarily prevent someone from exploiting it. Weak passwords can still be a problem, and improperly configured services can expose information you never intended to make public. There's also the connection between cloudflared and your application to consider. If your tunnel forwards requests over HTTP, that final connection isn't independently encrypted. This is generally less concerning when everything runs on the same trusted machine, but it's worth considering when traffic travels across other network devices. Cloudflare also sits between visitors and your application, which means you're trusting another company to handle that traffic. That's a trade-off worth understanding if privacy is one of your primary reasons for self-hosting. Is Cloudflare Tunnel Worth Using? For my own homelab, I think Cloudflare Tunnel is a great solution for accessing applications remotely. I appreciate not having to expose ports on my router, and managing access through Cloudflare has made things more convenient. But I wouldn't treat it as a replacement for properly securing the applications themselves. I still need to keep my software updated and make sure I'm not exposing administrative interfaces unnecessarily. If you're using Cloudflare Tunnel, I'd encourage you to review your published application routes and consider which services actually need public access. For anything particularly sensitive, Cloudflare Access or a private VPN connection might be a better approach. Cloudflare Tunnel can be a valuable part of a secure self-hosting setup. You just need to understand what it's responsible for protecting. Cloudflare Tunnel isn't the only option available, either. If you'd rather manage your own tunneling infrastructure, I've also covered Pangolin, a self-hosted reverse proxy with built-in authentication that uses WireGuard tunnels. It's worth looking into if you want another approach to remote access. Pangolin: Easy Self-Hosted Tunneled Reverse Proxy with Built-in Auth via VPS The all new tunneled reverse proxy Pangolin is here. And it’s super easy to setup! NotedJeremy I've also added a poll at the end of this article featuring a handful of the more popular reverse proxy options. So far, Caddy and Nginx Proxy Manager seem to be the favorites among Noted readers. If you haven't voted yet, scroll down and let us know which one you're using. I'm curious to see how the results change as more votes come in. You can learn more about how tunnels work in the official Cloudflare documentation. [poll:1] https://noted.lol/is-cloudflare-tunnel-secure/ https://noted.lol/content/images/2026/10/cloudflare-tunnel-home-server.png https://noted.lol/content/images/icon/Icon-1.2-1-fb2c5543-ef00-4a58-9ddd-542ee9a0f6d8.png https://noted.lol/content/images/thumbnail/pangolin-self-hosted-noted-b8188fdb-11db-4885-b9e1-c297d5cead32.jpg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab SPECviewperf 15.0.1 Linux Edition Released: Linux’s Key Graphics Benchmark Adds Arm Support SPEC has released version 15.0.1 of SPECviewperf Linux Edition, bringing a slew of upgrades and official Arm support to Linux's key workstation graphics benchmark suite. We are taking a look at those changes, and what performance is like on some modern systems The post SPECviewperf 15.0.1 Linux Edition Released: Linux’s Key Graphics Benchmark Adds Arm Support appeared first on ServeTheHome. https://www.servethehome.com/specviewperf-15-0-1-linux-edition-released-linuxs-key-graphics-benchmark-adds-arm-support/ npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab AMD EPYC 8005 SKU List and Value Analysis: Mainstream Sorano’s Big Stride Following the recent launch of AMD's EPYC 8005 Sorano server CPUs, we are taking a look at the various SKU options among chips, and what configurations offer the best value for different needs The post AMD EPYC 8005 SKU List and Value Analysis: Mainstream Sorano’s Big Stride appeared first on ServeTheHome. https://www.servethehome.com/amd-epyc-8005-sku-list-and-value-analysis-mainstream-soranos-big-stride/ npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Marvell Structera X 3406 and 3506 CXL 3.2 Memory Expanders The new Structera X 3406 and Structera X 3506 offer six channels and up to 18 DIMMs per controller for CXL 3.2 memory expansion The post Marvell Structera X 3406 and 3506 CXL 3.2 Memory Expanders appeared first on ServeTheHome. https://www.servethehome.com/marvell-structera-x-3406-and-3506-cxl-3-2-memory-expanders/ npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Intel’s Crescent Island AI Server GPU Gets a Name and Specs: Meet the Intel GPU D-Series Intel today has unveiled its official performance specifications and branding for its upcoming "Crescent Island" data center AI inference cards. Going under the name Intel GPU D-Series, the D270 will offer 1.3 PLFOPs of dense FP8 and 1.5TB/second of memory bandwidth The post Intel’s Crescent Island AI Server GPU Gets a Name and Specs: Meet the Intel GPU D-Series appeared first on ServeTheHome. https://www.servethehome.com/intels-crescent-island-ai-server-gpu-gets-a-name-and-specs-meet-the-intel-gpu-d-series/ npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab OpenNMC is an open replacement for expensive APC management cards UPSes are typically the most boring part of your homelab, but they're important. One of their main jobs is to give servers time to shut down safely if the power goes out. Another job is to condition your power so your servers can run smoothly. To do both of those things well, you need a smart interface. And at least with APC, there are tons of older UPSes that use Network Management Cards. The one pictured below is the NMC 2, and I pulled out of my old APC Smart-UPS 2200 XL (pictured above). https://www.jeffgeerling.com/blog/2026/opennmc-apc-ups-replacement-card/ https://www.jeffgeerling.com/blog/2026/opennmc-apc-ups-replacement-card/apc-smart-ups-2200xl-in-rack.jpg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Inside the Secretive AWS Networking Lab We tour a secretive AWS networking lab to see innovation from management switches up to 102.4T switches, encryption, timing, optics, and more The post Inside the Secretive AWS Networking Lab appeared first on ServeTheHome. https://www.servethehome.com/inside-the-secretive-aws-networking-lab/ npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Radxa's Q8B has 2x the performance and expansion of the Pi 5 There was a time I'd look at a board like the Radxa Dragon Q8B (at left, above) and be like, "there's no way I'd spend $209 on an SBC with 8 gigs of RAM". But we're in 2026, and seeing the 8 gig Raspberry Pi 5 going for almost the same amount, I figured I'd give it a shot. On paper, the Q8B beats the Pi 5 in pretty much every way. A lot of that is thanks to this Snapdragon 8cx Gen 3 chip, which is the same chip I tested on Microsoft's Windows Dev Kit 2023. https://www.jeffgeerling.com/blog/2026/radxa-q8b-double-pi-5/ https://www.jeffgeerling.com/blog/2026/radxa-q8b-double-pi-5/radxa-dragon-q8b-with-raspberry-pi-5.jpg npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Can ChatGPT Really Build a Self-Hosted App? I Tried It I've been experimenting with ChatGPT for quite some time, especially when it comes to writing code. Most of my projects have been relatively small, but recently I started wondering just how far I could actually push it. Could ChatGPT build an entire self-hosted application from scratch? Not just something that looks impressive in a screenshot, but an application I could install on my server and genuinely use every day? I'll admit, I had my doubts. I've seen enough AI-generated code to know that something can appear functional until you start requesting more complicated features. I expected to eventually reach a point where ChatGPT would struggle to keep everything working together. But after building my latest project, I've come away with a completely different impression. The answer to my original question is a resounding yes, and I'm honestly surprised by how much I was able to accomplish. The application is called Voice Journal, and what started as a simple idea for recording voice memos on my iPhone has turned into a surprisingly capable self-hosted journal powered by local AI. It Started With a Simple Idea I've always liked the idea of keeping a personal journal, but I've never been particularly interested in sitting down and typing out my thoughts. Sometimes something comes to mind that I'd rather just say out loud while it's fresh. Apple's Voice Memos already does a good job of recording audio, but I wanted something that could organize those recordings and make them searchable later. More importantly, I wanted everything stored on my own server. So I opened ChatGPT and described what I had in mind. I wanted a simple application that could record audio from my iPhone and run through Docker. I also wanted it to work as a Progressive Web App (PWA), allowing me to install it on my home screen without having to develop a native iOS application. I wasn't expecting anything extraordinary. I figured I'd end up with a functional little project that would be fun to experiment with, even if it required quite a bit of troubleshooting. What I didn't anticipate was how quickly the project would grow once I started seeing the results. ChatGPT Started Writing the Application Instead of manually writing the code, I explained the features I wanted and let ChatGPT generate the application. It created a React and TypeScript frontend with a Node.js backend, while SQLite handles the journal's data. Docker Compose manages the application and its supporting services, making it straightforward to deploy on my Linux server. After getting the first version running, I opened it on my iPhone and started testing. There were definitely issues. Some interface elements needed adjustments for smaller screens, and the navigation didn't always behave the way I expected. At one point, the homepage kept refreshing whenever a recording was being processed, which became annoying pretty quickly. What impressed me was how I could approach fixing those problems. Rather than digging through the code myself, I could send ChatGPT a screenshot or paste some Docker logs and explain what was happening. Sometimes it identified the problem immediately, while other issues required a few attempts before we got things right. There was plenty of back and forth, but each update made the application a little better. Before long, I had a working audio journal accessible from my iPhone, running entirely on my own server. Naturally, I started wondering what else I could get ChatGPT to build. Adding Local Speech Recognition One of my biggest goals was making the recordings searchable. I didn't want to listen through several minutes of audio just to find something I'd mentioned a few weeks earlier. I wanted to be able to type a word or phrase and find the recording that contained it. I asked ChatGPT to integrate Whisper, OpenAI's speech recognition model, using the faster-whisper implementation. Initially, transcription ran on the CPU, which worked well enough for testing. Eventually, I decided to take advantage of the NVIDIA RTX 2080 Ti in my server, which has 11GB of VRAM. After a few Docker configuration changes, Voice Journal was running Whisper Large-v3 locally on my GPU. Now, whenever I upload or record something, Whisper can automatically generate a transcript that's saved alongside the audio. ChatGPT also implemented synchronized transcript highlighting, so the corresponding words are highlighted as the recording plays. Searching through previous recordings can bring me directly to the relevant transcript, which is considerably more useful than scrolling through a collection of audio files. This was probably the point where I realized I was building something I might actually continue using. What began as a simple recorder was becoming a proper personal journal. Giving Voice Journal Its Own AI With transcription working, I started thinking about what else I could do with all that text. Sometimes I don't want to read an entire transcript just to remember what a recording was about, so I asked ChatGPT to integrate Ollama for automatic summaries and suggested titles. We ended up using Qwen2.5 3B, a relatively small language model that runs locally. After Whisper finishes transcribing a recording, a separate background worker sends the transcript to Ollama. It generates a short summary and suggests a title based on what I said. I can accept the title or decline it, and I can regenerate a summary whenever I'm unhappy with the result. Getting those summaries to sound natural turned out to be more frustrating than I expected, though. For example, I recorded a short memo about testing the PWA on my iPhone, and Ollama returned something along the lines of: User tests PWA website on iPhone, saves it, and plans to use it in the future. Seriously? User? It's my personal journal, not a report about somebody else's activities. I wanted the summaries to read more naturally, as though I had written a quick note about what I'd recorded. Something like, "Testing the PWA on my iPhone. Saved it to my home screen and plan to use it regularly." I had ChatGPT modify the summarizer's prompt with specific instructions to avoid that impersonal writing style: Write like a personal journal entry using natural, conversational language. Use first-person wording when appropriate, but don't force every sentence to begin with "I". Never refer to the person as "the user," "the speaker," or "the individual." Avoid robotic introductions and don't invent details. Unfortunately, the model didn't always listen. ChatGPT eventually added a validation step that checks the generated summary for impersonal wording and requests a rewrite when necessary. We also discovered that Docker was still running an older version of the summarizer during some of my testing, which explained why the changes weren't taking effect. Once we corrected that, the summaries improved considerably. It was a good reminder that smaller local models have limitations. Sometimes improving the prompt isn't enough, and the application needs additional logic to get the results you want. My iPhone Is How I Primarily Use It Although Voice Journal works in a desktop browser, I primarily use it on my iPhone as an installed PWA. I can launch it directly from my home screen, and it behaves much like a regular application without Safari's address bar taking up space. Getting the mobile experience right took some adjustments. At one point, the iPhone's status bar was overlapping the Voice Journal header. I sent ChatGPT a screenshot and explained the problem, and it modified the layout to account for the iPhone's safe area. There were similar improvements throughout development, including making navigation more reliable and preventing unnecessary page refreshes. But my favorite improvement came when I started experimenting with Apple's Shortcuts app. I wanted to record a journal entry without having to open Voice Journal at all, and it turned out that ChatGPT could help with that too. "Journal Now" With ChatGPT's help, I created an Apple Shortcut called Journal Now, and it's probably the most convenient feature of the entire project. All I have to do is press the side button on my iPhone to activate Siri and say, "Journal Now." The Shortcut starts recording my voice, and when I'm finished, it automatically uploads the memo to my server and adds it to Voice Journal. From there, Whisper transcribes the recording and Ollama generates a summary with a suggested title. I don't have to open the PWA or manually upload anything afterward. I can simply record a thought when it comes to mind, knowing it'll be waiting in my journal later. I can also share existing recordings directly from Apple's Voice Memos app if I want to import something I've already recorded. Considering how this project started, having that entire process working through a simple voice command is pretty remarkable. The Features Kept Adding Up As I continued using Voice Journal, I kept coming up with improvements that weren't part of the original plan. There's now a timeline where I can browse recordings and read their transcripts. I can rename entries whenever I want, and the built-in search makes finding something I've mentioned much easier. ChatGPT also built a statistics dashboard that shows how many recordings I've made and how much audio I've collected. More recently, I added a dedicated recording calendar, along with an On This Day feature that can surface recordings from the same date in previous years. I particularly like that idea because it's something that should become more meaningful the longer I use the journal. Another important addition was backup and export functionality. I can download a complete backup of my journal or export readable transcripts separately. There's also an option to download recordings using their current titles as filenames, including titles I've renamed since the original recording. The built-in recorder is intended for quick one-minute entries, but I can import longer recordings from other sources and the iPhone shortcut as well. Everything ends up in the same journal, where it can be transcribed and summarized automatically. What's interesting is that most of these features came about simply because I was using the application and thought of something that could make it better. I'd explain the idea to ChatGPT, deploy the updated files, and test the results. It never really felt like I needed to start over as the application grew. Everything Runs on My Own Server Underneath the interface, Voice Journal runs through Docker Compose on my Linux server. The original audio files are stored in persistent directories, while SQLite manages the journal information. Whisper handles transcription, and Ollama provides the language model used for summaries. Both AI components run locally, so I'm not paying an external API provider every time I record something. services: voice-journal: build: context: . dockerfile: Dockerfile container_name: voice-journal restart: unless-stopped ports: - "${HOST_PORT:-4040}:4040" environment: PORT: "4040" DATA_DIR: /app/data RECORDINGS_DIR: /app/recordings JOURNAL_PASSWORD: ${JOURNAL_PASSWORD:?Set JOURNAL_PASSWORD in .env} SESSION_SECRET: ${SESSION_SECRET:?Set SESSION_SECRET in .env} MAX_UPLOAD_MB: ${MAX_UPLOAD_MB:-512} NODE_ENV: production WHISPER_MODEL: ${WHISPER_MODEL:-medium.en} WHISPER_DEVICE: cpu OLLAMA_MODEL: ${OLLAMA_MODEL:-qwen2.5:3b} volumes: - ./voice_journal_data:/app/data - ./recordings:/app/recordings security_opt: - no-new-privileges:true cap_drop: - ALL healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:4040/api/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))"] interval: 30s timeout: 5s retries: 3 start_period: 20s transcription-worker: build: context: ./transcription-worker dockerfile: Dockerfile container_name: voice-journal-transcriber restart: unless-stopped depends_on: voice-journal: condition: service_healthy environment: JOURNAL_DB: /app/data/journal.sqlite WHISPER_MODEL: ${WHISPER_MODEL:-medium.en} WHISPER_THREADS: ${WHISPER_THREADS:-2} WHISPER_DEVICE: cpu WHISPER_COMPUTE_TYPE: int8 MODEL_DIR: /models volumes: - ./voice_journal_data:/app/data - ./recordings:/app/recordings:ro - ./models:/models cpus: 2.0 mem_limit: ${WHISPER_MEMORY_LIMIT:-4g} security_opt: - no-new-privileges:true cap_drop: - ALL # Ollama is internal only: NO publicly exposed port 11434. ollama: image: ollama/ollama:latest container_name: voice-journal-ollama restart: unless-stopped environment: OLLAMA_HOST: 0.0.0.0:11434 OLLAMA_NUM_PARALLEL: "1" OLLAMA_MAX_LOADED_MODELS: "1" OLLAMA_KEEP_ALIVE: "0" volumes: - ./ollama:/root/.ollama security_opt: - no-new-privileges:true # The summary worker waits for completed Whisper transcripts. # No extra public port, no hosted AI calls, disabled by default in Settings. summary-worker: build: context: ./summary-worker dockerfile: Dockerfile container_name: voice-journal-summarizer restart: unless-stopped depends_on: voice-journal: condition: service_healthy ollama: condition: service_started environment: JOURNAL_DB: /app/data/journal.sqlite OLLAMA_URL: http://ollama:11434 OLLAMA_MODEL: ${OLLAMA_MODEL:-qwen2.5:3b} volumes: - ./voice_journal_data:/app/data security_opt: - no-new-privileges:true cap_drop: - ALL As the project grew, I also changed how I handled updates. Rather than repeatedly replacing the entire application, I started requesting patch-only ZIP files containing just the code that had changed. That helps keep my recordings and other persistent data separate from application updates. I still have to be careful about what I'm deploying. AI-generated code isn't guaranteed to be secure or free of bugs, and I've certainly encountered my share of problems along the way. But being able to describe those problems in plain English and have ChatGPT work through them has made the experience considerably more approachable than I expected. So, Can ChatGPT Build an Entire Self-Hosted Application? After building Voice Journal, my answer is a resounding yes. I started out skeptical, and the process certainly wasn't flawless. Some features took several attempts, but what surprised me most was how ChatGPT turned a simple idea into an application I genuinely enjoy using. I don't plan on releasing Voice Journal publicly because it's built around my own needs, and I simply don't have the time to maintain and support an application with a codebase largely generated by AI. But that's the beauty of AI-assisted development. You can use ChatGPT or another AI coding tool to build your own version, tailored to exactly what you want. Just remember to test what you're deploying. For something I expected to be a small experiment, it has completely exceeded my expectations. https://noted.lol/can-chatgpt-build-self-hosted-app/ https://noted.lol/content/images/2026/10/chatgpt-self-hosted-app-iphone.png https://noted.lol/content/images/2026/10/image-10.png https://noted.lol/content/images/2026/10/voice-journal-transcript.png npub1tqprltcdhvlc7wje9mtt2wg9zmllmhr2pvhu8lxlrwpraqnycnzsh05van HomeLab Formlabs dropped the Raspberry Pi on the way to a $699 SLA printer Formlabs sent me a Form Studio 1 resin 3D printer to test after years of back-and-forth about their Form 4 printer. Like the Form 4, it's an SLA (stereolithography) printer, but unlike the Form 4 (which starts at $2,600), it's affordable for a hobbyist. It's not cheap, coming in at $699 (or $749 with a flex build platform, which I highly recommend), but it is affordable. I can't say as much about this printer as people who are well-versed in resin printing and use other SLA printers (all my experience until now is with FDM, or Fused Deposition Modeling1, printers). But I can convey my first-time experience using this printer and with the entire SLA experience. https://www.jeffgeerling.com/blog/2026/formlabs-form-studio-1-resin-printer/ https://www.jeffgeerling.com/blog/2026/formlabs-form-studio-1-resin-printer/formlabs-form-studio-1-hero.jpeg