Pegasus—like Django—can be deployed on any standard cloud infrastructure.
The most common ways of deploying Pegasus are:
- On a raw VPS / Virtual Machine, such Digital Ocean, Linode, or Amazon EC2 or Lightsail
- On a platform-as-a-service (PaaS) platform, such as Heroku, or PythonAnywhere
- In a containerized way, using Docker, and (optionally) Kubernetes
Choosing the right deployment architecture involves a complex set of trade-offs, and there’s no one-size-fits-all solution. PaaS and Docker-based solutions tend to be easier to get up and running, but can be more difficult to modify and are often more expensive at scale. Meanwhile, setting up a VPS can be error-prone but is a very cost-effective way to deploy small applications.
Much of the choice will also depend on the knowledge and comfort of you/your team with various tools and platforms.
Officially supported platforms¶
Pegasus ships with configuration files to deploy to select platforms out-of-the-box. The officially supported platforms are:
Heroku is the most common choice, and is the recommended option for staging sites or MVPs.
If you would like to deploy to a platform that’s not listed here, please get in touch on Slack or by emailing firstname.lastname@example.org and I’m happy to help!
The maintainer of Pegasus hosts Pegasus apps on a virtual private server, using gunicorn and nginx. I’m happy to help support deployments like this, and am hoping to offer more automated tooling for them in the future. The Django documentation provides a good overview on how to deploy Django to your own server.
Additionally, Pegasus’s Docker support can be used as a basis for other production environments that supports container—for example, Google Kubernetes Engine and Amazon ECS.
Please reach out in the Pegasus Slack
#deployment channel for any help on this!