A home service is a process, a name, a disk, and a way to reach it that does not invite the rest of the internet over. Miss any one of those and you have a demo.

The reach matters first. A port forwarded on the router is a simple story and a bad default. A private network, in my case a tailnet, means the client joins something on purpose. The house stays a house.

The name matters second. If you cannot remember how to open the thing, you will not notice when it is down. An internal proxy with a name you chose is enough. It does not need to be a public site.

The disk matters third, and it is the one people perform instead of doing. Copying a directory feels like a backup. Restoring a directory is the backup. Until you have deleted something small and gotten it back, you have a plan and a second disk.

Docker is a reasonable way to keep those processes from stepping on each other. It is also a way to publish every port by accident and feel private because the compose file was long. Publishing is a line you should have to write.

Keep the set small. One host is a single point of failure, and for a lab that is an acceptable sentence. A cluster you do not need is a second system you will not patch.

Sample draft. The home infrastructure project is the longer version of this note, and it is a personal build, not a hosting business.

All notes