While there are drawbacks to self-hosting services on my main PC, it's still the primary way that I test out and spin up containers. This used to be the only way I accessed my services, but I decided to dig out my old NAS and move services there so that I could get round-the-clock access without worrying about the impact on my electricity usage.
Despite my NAS being home to many of my most important services, I always first use self-hosted apps on my PC before moving them over. Here's why...
I'm more familiar with Docker Desktop
A familiar UI makes things easier
I use Docker's container technology whether I'm hosting on my PC or my NAS, but the supported software differs significantly between the two platforms. On my Windows PC, I use Docker Desktop for container management, along with command-line tools to run compose and down commands. After months of using this as my primary way to host services, I've become used to the process I follow.
However, on my Synology NAS, I use Container Manager. Despite essentially doing the same thing, the process for spinning up containers is different. Rather than using commands, there is more of an emphasis on using buttons and menus to spin up containers. I also have to make sure that the directories the compose file creates exist as folders on my NAS; otherwise, the software encounters an error.
There are also different steps involved when creating a single container and a multi-container instance. These single containers are also limited to the Container tab and don't appear with the others in my Project tab. I do plan to spend more time using Container Manager to properly get to grips with its interface, but currently, my understanding of how to use it is basic.
It's more convenient for troubleshooting and editing files
My PC has all the tools I need
When I prepare to spin up a new service, I create a folder in my Documents folder. I then add the necessary .YML and .ENV files, make any edits I need with Notepad, and then open the folder in my default terminal to run the compose commands.
This lets me first see that a container is working before I allow it to take up precious space on my NAS, which has much more limited memory and computing power than my PC. If something isn't working, it's simple to stop the container, edit the files, check my logs, and quickly run compose again when I've made changes.
In comparison, my NAS doesn't currently have an easily accessible command line tool. I've enabled SSH, but I still need to check out other tutorials on how to access the command line. It also doesn't currently have a text editor installed, meaning I can't edit configuration files directly on my NAS. This makes the troubleshooting process much slower.
Eventually, I will follow more tutorials on how to use my NAS interface more effectively, but my lack of familiarity with its tools means that defaulting to a more well-known solution helps greatly. After all, I self-host without having any coding knowledge, which already makes things more complicated. While some may take this as a sign that you shouldn't self-host, I do want to expand my coding knowledge over time since I find self-hosting rewarding.
It allows me to decide whether I'll actually use the service
You need to experience apps to tell if they're for you
One thing I've discovered about self-hosting is that a tool might seem great on paper, but you need to actually experience it to tell if it's right for you. Sometimes I'd love a tool, but I just don't use it enough to justify keeping the container running.
I test a lot of self-hosted services for work, and when I think an app might help me organize my daily chaos, but they don't always stick. Sometimes I'll really enjoy a service, but it stops working the way it did initially, and I have no idea why. Other times, the practicality of using a tool isn't what I expected, causing me to use it less and less.
Since my NAS has limited resources, testing a service on my PC first lets me figure out whether an app really fits into my daily flow. This is how I got started with Immich, which is now an important part of my photo backups.
Another benefit of having two copies of my configuration files (one on my NAS and one on my PC) is that it creates a backup I can go back to in case my NAS drive fails. I do want to create more redundancy when it comes to my data, as I aim as much as possible to stick to the 3-2-1 backup rule.
I might change my process eventually, but this works for me
As I become more familiar with my NAS software, I might find that my process changes. But right now, this method works well for me and helps me isolate whether a problem is related to my configuration files or is a specific issue related to my NAS. It also lets me see how many resources a container takes up before I move it over so that I don't overburden my limited RAM.
