How to Deploy a FastAPI App on Vercel
FastAPI has gained a lot of traction for building APIs quickly and efficiently. If you have a FastAPI project that you want to deploy, Vercel is an excellent option. This tutorial assumes that you already have a FastAPI project and it is git initialized. If not, you should start by creating a FastAPI project and initialize a git repository in the project directory.
Table of Contents
- Project Structure
- Export Requirements
- Add
vercel.json
File - Push Project to GitHub
- Import into Vercel
- Continuous Deployment
Project Structure
We are going to be working with a project directory structure which looks something like this. If you have a different structure, make sure to update the vercel.json
configuration file to align with your project structure
.
├── app/
│ └── main.py
├── requirements.txt or pyproject.toml
└── vercel.json
Export Requirements
Using pip
To export your Python requirements, you can use pip
. In your terminal, navigate to the project directory and run:
pip freeze > requirements.txt
Using Poetry
If you are using poetry
, you can export the dependencies to a requirements.txt
file with:
poetry export -f requirements.txt --output requirements.txt
Add vercel.json
File
Create a new file in the root of your project and name it vercel.json
. Add the following JSON content to it:
{
"devCommand": "uvicorn app:app --host 0.0.0.0 --port 3000",
"builds": [
{
"src": "app/main.py",
"use": "@vercel/python"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "app/main.py"
}
]
}
Push Project to GitHub
If your project is not already on GitHub, you will need to create a new repository and push your project to it.
Initialize the git repository (if not already initialized):
git init
Add all files and commit them:
git add .
git commit -m "Initial commit"
Push your project to GitHub:
git remote add origin [your-git-repo-url]
git push -u origin master
Import into Vercel
- Go to Vercel
- Click
Import Project
- Choose
Import Git Repository
- Paste your GitHub repository URL and follow the on-screen instructions. Vercel will automatically detect the
vercel.json
configuration and deploy your FastAPI app.
Continuous Deployment
Vercel integrates seamlessly with your GitHub repository. For subsequent deployments, just push your changes to GitHub.
git add .
git commit -m "Your commit message"
git push origin master
Vercel will automatically deploy the updated code. Visit your Vercel dashboard to check the deployment status and logs.
And that's it! You've successfully deployed a FastAPI application on Vercel. Enjoy your journey in building and scaling your FastAPI apps!