/component-fastapi

Official Diploi component for FastAPI

Primary LanguagePython

icon

FastAPI Component for Diploi

launch with diploi badge component on diploi badge latest tag badge

Operation

Getting started

  1. In the Dashboard, click Create Project +
  2. Under Pick Components, choose FastAPI. Here you can also add a frontend framework to create a monorepo app, eg, FastAPI for backend and React+Vite for frontend
  3. In Pick Add-ons, you can add one or multiple databases to your app
  4. Choose Create Repository to generate a new GitHub repo
  5. Finally, click Launch Stack

Link to the full guide https://diploi.com/blog/hosting_fastapi_apps

Development

During development, the container installs Node.js and nodemon to enable automatic reloads when files change. The development server is started with:

nodemon --delay 1 --watch pyproject.toml --watch ".venv/lib/*" --watch ".venv/lib64/*" --exec "uv run --isolated uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload --reload-dir src --reload-exclude \".venv/**\""

This will:

  • Use nodemon to watch for changes to pyproject.toml and restart the server when changes are detected.
  • Run the command uv run --isolated uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload in an isolated Python environment.
  • Start the FastAPI app using uvicorn on all network interfaces at port 8000.
  • Enable hot-reload via uvicorn --reload, so the server automatically restarts when Python source files change.

Production

Builds a production-ready image. During the build, dependencies are installed with uv sync. When the container starts, it runs:

fastapi run src/main.py --proxy-headers --port 8000

This uses the FastAPI CLI to serve your application on port 8000.

Links