Here’s a long post for anyone curious about this.
Netlify doesn’t support running arbitary processes, databases and web servers, so you can’t host everything on netlify. You also become dependent on netlify. If they remove the free tier, raise prices or completely dissapear you probably have to do some changes before moving to another host.
Free web hosting is usually shared hosting, which means you can’t run more than a basic PHP + MySQL site.
You can get a VPS which is the most flexible option without self hosting.
Using a Raspberry PI is inconvenient for hosting a public site because you need a static public IP and a good internet connection for that + PI is not as powerful as servers.
Note that this article doesn’t talk about hosting internet facing web sites. This is about running some web applications on your local network. They mention emby, tor, nextcloud. Hosting a tor proxy can get you blocked, nextcloud and emby will require a lot of storage which is usually the most expensive part of shared hosting or VPS. You also then depend on your internet connection instead of having it on your local network.
For example in my company we self-host NextCloud, GitLab, Bitwarden, some file storage, backups, prometheus and grafana for monitoring, VPNs, and all our development VMs. NextCloud and file storage is on a gigabit connection while in office which is where we use it most of the time. If our internet breaks we can still do most of our work + since everything is virtualised we just quickly spin up a new VM when testing something. We do have a static public IP and make some of those things available from outside our network (we have our own domain, point DNS to our IP and use letsencrypt for HTTPS).
I think everyone doing web dev should set up a linux server (even if in a VM) and learn to host some basic stuff, it’s really useful not having to depend on sysadmins and public hosting support when developing stuff. Too often people can’t even deploy their own node apps. I find knowing a bit about networking and linux extremely useful as a developer.
P.S. it doesn’t have to be a raspberry PI or an expensive, noisy server, you can get an old PC, install debian (raspberry PI comes with raspbian which is just debian made to work on raspberry pi).
Details