12 Packaging and deploying Streamlit apps
This chapter covers
- Paid deployment options without Streamlit Community Cloud's limitations
- Packaging a Streamlit app using a Dockerfile and Docker Compose
- Creating and configuring your AWS account for deployment
- Deploying your Dockerized app to AWS Elastic Beanstalk
- Adding a custom domain and HTTPS to your app
By now, you've deployed more than one Streamlit app to the internet. You've pushed your code to GitHub and shared .streamlit.app links with the confident swagger of someone who knows their app runs in the cloud.
So far, however, the training wheels have stayed on. You haven't had to think too much about how your app handles traffic, how to port your app to a different platform, or what happens when it needs more memory. And that's been great for prototypes, demos, and quick wins.
But at some point, you'll want more. Maybe your app goes to sleep because of Streamlit Community Cloud's policy of killing apps that haven't been accessed in a while, embarrassing you in the middle of a demo. Maybe you want a proper domain so people don't think your labor of love is a half-baked side project. Or maybe you just want to have more control over the environment your app runs in.