The Internet is teeming with services you can take advantage of. You can store your files in the cloud, share movies, organize photo collections, talk with friends, manage your projects and so on. It also means that your data is stored outside your computer and you don’t have full control over it.
You may use self-hosted counterparts of services. Instead of accepting vague privacy policies, you may set the rules. However, you are fully responsible for sustaining your data.
I used to consider self-hosted services as a privacy-respective and cheap alternatives of popular services. The former is true, however, the latter factor is often far-fetched.
If you limit yourself to thinking about costs only in the category of money, you may fall into the trap of hidden costs. Nowadays, servers are affordable, so money it’s not a real problem. It is even cheaper if you decide to host your services on-site, e.g. at home or in the office.
Money is the most visible cost, however, it’s not the only one. The second one is time. To sustain the self-hosted services you need to devote extra time to installation, solving appearing problems, maintenance and so on.
Hosting your photo gallery or file server may be both fun and useful, however, you should ask yourself what do you want to achieve.
If it’s only for learning purposes, you should reckon with potential data loss. Your services may be unreliable and insecure, due to the unstable internet connection, lack of updates and improper configuration. If you plan to incorporate the service you host into your workflow, you have to adapt it to production usage.
What do you do if service that you use is unavailable and you’re the only one who can fix it? Do you want to be user or maintainer?
People often forget that everything around us requires our attention. Self-hosted services are not different. Attention should be considered a valuable asset. If you devote time and attention to maintaining your self-hosted services, you neglect the other, more important things you have to do.
It’s worth to calculate the value of your time. If you know how much your hour costs, you make more accurate decisions. Isn’t better to pay a few bucks once a month and spend the recovered time on something more productive?
Always have a goal in mind. If you want to learn or test something, don’t use the service you host as the production one. Sooner or later, it will get you in trouble.
If you want to have a privacy-respective alternative of another service, calculate the actual costs and check if it’s worth to hassle. Don’t underestimate the needs of the proper hardware, regular backups, and updates.
Sometimes you enforce yourself on a specific self-hosted solution while there is a simpler alternative. Try to take a step back and look at the problem more broadly.
Do you need a file synchronization server but you don’t want to send your files somewhere? You may encrypt files before sending them to the cloud.
Do you need an online photo gallery to showcase your photos at family events? How often you need to do that? Isn’t a local gallery on your computer enough? How much time do you save hosted your gallery?
You may find more and more examples. A self-hosted solution should solve the problem you have, instead of adding other ones. Treat it as a rule of thumb. If something requires more resources than it gives you value, eliminate it.
A goal is rarely a “having self-hosted service“. The self-hosted solution is often one of possibilities to solve the actual problem. Choose the simpler one.