"But how can I live without [include necessarily online service here]?"
Some tools have to be online.
It is all well and good to have my files not sync to OneDrive, because privacy, but how do I store important files that need to be accessible from anywhere?
How do I collaboratively edit files with my friends?
Password managers are another example which are useless offline.
The solution to it all is self-hosting.
To run the service on a computer and a domain you own.
A Computer You Own
To self-host a service (like I do with this blog), you need a perpetually-online computer.
I've got a Raspberry Pi, but I could just have easily used an old laptop or a computer.
Or a computer on a cloud offering - OCI, AWS, Azure, you name it.
The first thing to do would be to install Linux.
To install on a Raspberry Pi, the Raspberry Pi Foundation provides an Installer app which you can use to flash an OS onto an SD card, which then goes into the Raspberry Pi.
To install on a computer, you can download the linux ISO, put it on a pen drive using Rufus to create a LiveUSB, boot through it, and install the OS.
On a cloud computer, well, there are entire certification courses dedicated to how to set up and run them.
A Dedicated Public IP Address With Open Ports
If your ISP gives you a dedicated public IP address, you can put in a request to have some ports forwarded.
Computers perform networking on "ports".
Think of an IP address as pointing to an apartment building.
Any mail that reaches the apartment's mailbox now has to be sorted by apartment number, which is a port number.
Typically, for security reasons, all incoming connections on all ports are blocked by the ISP (you only need outgoing connections normally), and you will need to request those ports to be opened or forwarded.
What if your ISP denies your request?
What if your ISP doesn't provide a dedicated public IP address?
One solution is to look for an ISP that will give you these things.
They could be part of commercial packages only, making it expensive.
Another solution is to look for a VPN that will give you these things.
Again, will often cost money.
My solution was to get a computer on Oracle Cloud Infrastructure under their Always Free offering, which comes with a dedicated public IP address and an ability to open up ports.
Localhost Tunnels
"What happened to 'There is no cloud, there is only someone else's computer'?"
My Raspberry Pi still sits on my desk, running most of the software I need.
The virtual computer on OCI runs a localhost tunnelling software called Rathole, which my Raspberry Pi connects to, and all traffic is routed through OCI into my Raspberry Pi.
Since my SSL endpoint is on the Raspberry Pi, all data that OCI sees is encrypted.
There are other options, of course.
PageKite, for one, allows you to create a account and pay them $3/mo to use them as a localhost tunnel frontend.
Again, if you terminate SSL on a device you own, all traffic PageKite sees will be encrypted.
Domain
A domain is basically a URL.
The url of this blog, for example, is blog.allsparkinfinite.name.
Here, ".name" is a top-level domain or a TLD, "allsparkinfinite.name" is a domain, and "blog.allsparkinfinite.name" is a subdomain.
Getting a domain for free is nearly impossible now.
I used to own allsparkinfinite.tk for free, but Freenom (the registry for .tk domains) got sued by Facebook for failing to control spam on its domains.
It subsequently had its authority revoked, and I couldn't renew the domain.
I ended up coughing up money for allsparkinfinite.name, because .name is one of the cheapest TLDs around.
You can, however, get subdomains for free at FreeDNS.