for software (typically Web apps) running on a server you control
The tag self-hosted should only be used if the solution has to run on your own server (or your own account on a server, in case of shared hosting).
Typical examples are Web apps (e.g., cms, …), but the tag can also apply to software that doesn’t necessarily have a Web interface (e.g., email-server, api, …).
If the software should run on someone else’s server instead (i.e., it’s a service which you use / you can’t install the software yourself), use the tag hosted instead.