Even though I write tech articles every day, I don't know much about network commands or building a PC from raw parts. Those things are quite out of my scope. My lane is mostly productivity tools and creative software that regular users interact with daily. So when it comes to self-hosting, I know enough to follow instructions, but not enough to run a homelab or understand what my colleagues who self-host are talking about most of the time.
I’ve technically self-hosted before - my Penpot instance runs on Elestio, which handles all the hard parts for me, and I've half-tried to self-host Photoprism a while back. Beyond that, I’m willing to give up control for convenience. Still, I wanted to at least understand the basics because self-hosting comes with real benefits that are hard to ignore, and I want to be able to host more apps on my own. So I used my favorite learning tool to help me get a grasp - NotebookLM.
I turned to NotebookLM to set up a self-hosted LLM — here's how it went
Can NotebookLM guide me to my first self-hosted LLM?
Setting up NotebookLM as a self-host teacher
I started by gathering the materials
Learning how to self-host starts with good old fashioned research. “What is self-hosting” and “how to set up Docker” in Google and YouTube, then gathering the materials you find most helpful. This is honestly the part that took the longest because I ended up watching most of the videos before adding them to NotebookLM. Despite NotebookLM being able to speedrun the learning process, seeing how others do something that’s so foreign is actually great for visual learners like me.
But NotebookLM is still superior when it comes to synthesizing information in plain language that you understand, plus you can instruct it to take on the role of a self-hosting teacher and speak to you in a specific tone - which is exactly what I ended up doing. Adding all these sources to my self-hosting notebook was made dead simple with extensions like YouTube to NotebookLM and NotebookLM Web Importer. I also added a couple of XDA articles on self-hosting, as well as some official documentation. And here’s the prompt I used for NotebookLM’s Custom mode:
You’re my self-hosting coach. Explain everything in plain language and assume I’m new to self-hosting concepts. Break things down into tiny steps and keep the explanations practical. Focus on what I actually need to do to get something running on my machine.
NotebookLM’s new Learning Guide feature completely changed the way I study with the tool
How did I study without this?
Learning how to self-host with NotebookLM
From confusion to container
My goal was to self-host Penpot with Docker. I installed Docker Desktop for Windows from here, so it was already running. But I just blindly followed instructions and didn’t actually understand what I was doing. So I started by prompting NotebookLM to help me learn more about what self-hosting actually means. Alright, so self-hosting means running an app on your own machine, which is the server, and tools like Docker package the app and its requirements into a container so you don’t have to manually configure everything.
Then I moved onto the Penpot setup and prompted NotebookLM to help me start from the bottom up. The first step it gave me was obtaining the docker-compose yaml file, which I got from the GitHub repo. NotebookLM then said to create the Penpot folder in PowerShell and paste the yaml file in it, complete with the commands, so I launched PowerShell and did just that. The next step was running this command: “docker compose -p penpot -f docker-compose.yaml up -d”. NotebookLM actually broke down what each part of the command meant, so I wasn’t just copy-pasting it blindly this time - this was clearly the AI stepping up as my “self-host coach” per my instructions at the beginning.
That was it. After Penpot was launched, all I had to do was access it with the localhost address in a browser. It took me an embarrassingly long time to realize the address needs to go in a browser, since self-hosted apps don't come with their own windows; you almost always interact with them through a browser. And there Penpot was on my own server.
The weirdest part to me was that I didn’t have to open Docker at all; it seems to just be running everything in the background. This made the process feel surprisingly hands-off for something that gives me full control over an app. Still, I wanted to take a peek at what was happening in there - my guess is this is where you check whether Penpot’s frontend, backend, and databases are healthy and running. Understanding all of that jargon is a problem for another day, though.
NotebookLM makes self-hosting more approachable
Self-hosting felt intimidating at first, and it still kind of does, but having NotebookLM break it down for me step-by-step made it much more manageable and gave me actionable guidance. To be honest, I would have completely missed the PowerShell step if it weren't for NotebookLM, which is the most important part of the puzzle - just “run this command” would have taken me forever to figure out where to actually run it. I know I still have a long way to go when it comes to self-hosting, but at least I have the basics down to get started with now.
