📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials FastAPI FastAPI Deployment

FastAPI Deployment

5 min read
Deploy with Gunicorn + UvicornWorker, Nginx reverse proxy, and Docker container.

Deploying FastAPI

# Install
pip install uvicorn[standard] gunicorn

# Development
uvicorn main:app --reload --host 0.0.0.0 --port 8000

# Production
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000

# Nginx
server {
    listen 80;
    server_name api.myapp.com;

    location / {
        proxy_pass       http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

# Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn","main:app","--host","0.0.0.0","--port","8000","--workers","4"]

# docker-compose.yml
services:
  api:
    build: .
    ports: ["8000:8000"]
    env_file: .env
    depends_on: [db, redis]
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret