DEV Community

qing
qing

Posted on

Deploy Python Apps for Free: Complete 2025 Guide

Deploy Python Apps for Free: Complete 2025 Guide

Deploy Python Apps for Free: Complete 2025 Guide

Are you tired of shelling out cash for server costs every time you want to deploy a new Python app? Do you dream of launching your project in a matter of minutes, without breaking the bank? Look no further – in this post, we'll take you through the ultimate guide to deploying Python apps for free.

Choosing a Platform

When it comes to deploying Python apps for free, you've got a plethora of options to choose from. Here are some of the most popular platforms:

  • Heroku: Heroku is one of the most well-known platform-as-a-service (PaaS) providers out there. With a free tier that includes 512 MB of RAM and 30 minutes of free dyno hours per day, it's a great choice for small projects.
  • Google Cloud Run: Google Cloud Run is a relatively new PaaS provider that offers a free tier with 1 million free invocations per month. It's a great choice if you're already invested in the Google Cloud ecosystem.
  • AWS Free Tier: AWS offers a comprehensive free tier for its services, including a free tier for Elastic Beanstalk. This is a great choice if you're already invested in the AWS ecosystem.

Pros and Cons of Each Platform

Platform Free Tier Pros Cons
Heroku 512 MB RAM, 30 minutes free dyno hours Easy to use, large community Limited free tier, may run out of free hours quickly
Google Cloud Run 1 million free invocations Easy to use, scalable Limited free tier, may incur costs quickly
AWS Free Tier Varies by service Comprehensive free tier, large community Complex to use, may incur costs quickly

Setting Up Your Environment

Before you can deploy your Python app, you need to set up your environment. Here's a step-by-step guide to getting started:

  1. Install pip: pip is the package installer for Python. Make sure it's installed by running python -m pip --version in your terminal.
  2. Create a requirements file: Create a requirements.txt file in the root of your project with the following contents:
Flask==2.0.1
gunicorn==20.1.0
Enter fullscreen mode Exit fullscreen mode

This specifies the versions of Flask and gunicorn that you need to install.

  1. Install dependencies: Run pip install -r requirements.txt in your terminal to install the dependencies.

Basic Python App

Here's a basic example of a Python app using Flask:

# app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Hello, World!"

if __name__ == "__main__":
    app.run()
Enter fullscreen mode Exit fullscreen mode

This app creates a simple web server that responds to GET requests to the root URL (/).

Deploying Your App

Now that you've set up your environment and created a basic app, it's time to deploy it. Here's a step-by-step guide to deploying your app on Heroku:

  1. Create a Heroku app: Run heroku create in your terminal to create a new Heroku app.
  2. Create a Procfile: Create a Procfile in the root of your project with the following contents:
web: gunicorn app:app
Enter fullscreen mode Exit fullscreen mode

This specifies the command that Heroku should run to start your app.

  1. Add Heroku to your Git repository: Run heroku git:remote -a <your-heroku-app-name> in your terminal to add Heroku to your Git repository.
  2. Deploy your app: Run git push heroku master in your terminal to deploy your app.

Alternative Deployment Options

If you're not interested in using Heroku, you can also deploy your app on Google Cloud Run or AWS Free Tier. Here's a step-by-step guide to deploying your app on Google Cloud Run:

  1. Create a Google Cloud Run app: Run gcloud run deploy <your-app-name> --platform managed --region <your-region> in your terminal to create a new Google Cloud Run app.
  2. Create a cloudbuild.yaml file: Create a cloudbuild.yaml file in the root of your project with the following contents:
steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '-t', 'gcr.io/<your-project-id>/<your-app-name>', '.']
- name: 'gcr.io/cloud-builders/docker'
  args: ['push', 'gcr.io/<your-project-id>/<your-app-name>']
- name: 'gcr.io/cloud-builders/gcloud-run'
  args: ['deploy', '<your-app-name>', '--platform', 'managed', '--region', '<your-region>']
Enter fullscreen mode Exit fullscreen mode

This specifies the build and deployment steps for your app.

Conclusion

Deploying Python apps for free is easier than ever, thanks to platforms like Heroku, Google Cloud Run, and AWS Free Tier. With these platforms, you can launch your project in a matter of minutes, without breaking the bank.

In this post, we've taken you through the ultimate guide to deploying Python apps for free. We've covered choosing a platform, setting up your environment, deploying your app, and more.

So why wait? Get started today and deploy your Python app for free!

Additional Resources

Top comments (0)