RapidSMS can easily be deployed in many ways. Deployment is a large topic, contains many right answers and is largely dependent on your application requirements. Our goal is not to provide the best solution or a configuration that will work on any application. We only want to provide you with the proper resources to make the best decisions.
In order to deploy, you need to accomplish a number of things.
Initially:
On each deploy:
You might also want to:
The options for accomplishing these things depend in part on the server environment.
The Django documentation provides some advice about how to run a Django application like RapidSMS in production.
One approach you’ll often see when deploying to your own hardware or to a virtual machine is using Fabric to implement deploy commands that a developer can use. A developer might type fab staging deploy to update the code on the staging server, or fab production setup_server to provision the production server. To help you write these commands, Fabric provides a library of methods for running commands on your remote server, uploading files, etc.
If you’re using a PaaS, your provider takes care of setting up your application on their servers, and will provide tools and documentation about how to deploy your application.