Deploying on your own server
The most common way to deploy any web app is to run it on a server that you have control over. In this case, control means access to a terminal on the server with an administrator account. This type of deployment gives you the most amount of freedom out of the other choices as it allows you to install any program or tool you wish. This is in contrast to other hosting solutions where the web server and database are chosen for you. This type of deployment also happens to be the least expensive option.
The downside to this freedom is that you take the responsibility of keeping the server up, backing up user data, keeping the software on the server up to date to avoid security issues, and so on. All books have been written on good server management. So if this is not a responsibility that you believe you or your company can handle, it would be best if you choose one of the other deployment options.
This section will be based on a Debian Linux-based server, as Linux...