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 and the Deploying Django chapter of the Django book provide 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.