Adios
Apps and APIs · plans from $10/month

Deploy FastAPI.Run the ASGI app in production.

Deploy a FastAPI service with its ASGI import target, dependency install, runtime port, health endpoint, secrets, and promoted release tied to source.

Keep the repositoryInspect build and logsCustom domains and TLS
Adios deploy

Candidate release

FastAPI

Healthy

SOURCE

Git

REGION

de

ROUTE

HTTPS

01Source received

02Build completed

03Runtime started

04Health check passed

Promoted route

production.adios.run

A production path for

FastAPIUvicornASGIOpenAPIAsync Python

The production path

A working FastAPI project still needs a safe release.

The application or service is only one part of production. Build evidence, runtime state, health, secrets, logs, routes, and the promoted version should remain inspectable together.

Keep the FastAPI build you already use

Keep requirements and the ASGI application in the existing repository. The build installs what the app declares rather than translating it into a separate hosting format.

Promote the version that reports healthy

Start Uvicorn on the declared host and port, check a lightweight readiness route, and inspect validation or startup failures before promotion.

Trace production back to source

Build output, runtime logs, health state, secrets, domains, and the promoted release stay attached to the project instead of being split across unrelated tools.

From source to release

Three steps keep the deployment path reviewable.

Use the source and production behavior the project already has. The manifest records what the platform should build or provision and how the result becomes ready.

  1. 01

    Start with source or a template

    Bring the existing repository, or inspect and deploy one of the exact starter variants linked below.

    $adios login
  2. 02

    Review the deployment contract

    Keep commands, runtime or service version, health behavior, and secret references in adios.yaml.

    $git diff -- adios.yaml
  3. 03

    Deploy and inspect the result

    Follow build and runtime evidence, verify the candidate, and open the promoted route or service connection.

    $adios up
adios.yaml
Your project
name: fastapi-service
build_cmd: pip install -r requirements.txt
start_cmd: uvicorn main:app --host 0.0.0.0 --port 8000

runtime:
  name: python@3.13
  port: 8000
  health_path: /healthz
Replace main:app with the ASGI target exported by your project and tune workers after measuring the workload.

Deployable starting points

Start FastAPI from a template when the repository is not ready.

Choose a pip or Pipenv FastAPI starter with Uvicorn, a health endpoint, and deployment configuration already present.

API starters

Python FastAPI

FastAPI, Django, Flask, Litestar, and Sanic starters with production start commands.

Pythonpip
Template key
python-fastapi
Runtime
python
Repository
template-python-fastapi
Source path
.
git clone https://github.com/adiosdotdev/template-python-fastapi.git
cd template-python-fastapi
adios up

API starters

Python FastAPI with Pipenv

FastAPI, Django, Flask, Litestar, and Sanic starters with production start commands.

Pythonpipenv
Template key
python-fastapi-pipenv
Runtime
python
Repository
template-python-fastapi-pipenv
Source path
.
git clone https://github.com/adiosdotdev/template-python-fastapi-pipenv.git
cd template-python-fastapi-pipenv
adios up

Before production

Verify the workload.Then promote it.

The safest first release starts with a reproducible build or service configuration and a preview that exercises the dependencies production will actually use.

Ready when…

  • The ASGI import target starts without the development reloader.
  • The process listens on 0.0.0.0 and the declared port.
  • OpenAPI and health routes expose only intended information.
  • Database and API credentials use secret references.

Preview when…

  • Startup loads a large model or builds an index.
  • Async endpoints call blocking libraries.
  • The API relies on pgvector, Redis, or another managed service.

Questions, answered

What to know before deploying FastAPI.

Review the runtime or service boundary, template path, failure behavior, and production checks before creating the first release.

Can Adios deploy an existing FastAPI project?

Yes. Run the Adios CLI from the project root, keep the repository and dependency files you already use, and add an adios.yaml file that describes the production build, start command, port, and health path.

Do I need Docker to deploy FastAPI?

Not for a standard supported runtime. Use the project's normal production commands in adios.yaml. If the build needs unusual operating-system packages or native libraries, verify those dependencies in a preview before promotion.

Can FastAPI WebSockets run on Adios?

Yes. Use a persistent ASGI process and test connection duration, disconnect handling, health checks, and release behavior in a preview before directing production clients to it.

Should I run Uvicorn directly or behind Gunicorn?

Use the process model appropriate to your application and current Uvicorn guidance. Start with an explicit production command, measure it under representative traffic, and change worker topology deliberately.

What happens when the build or health check fails?

The candidate release keeps its build and runtime output for inspection. It must report healthy before it becomes the promoted version serving the application route.

Can I start from a template instead of an existing repo?

Yes. This page links to the closest official Adios FastAPI starters. Inspect the exact source variant, deploy it in the console, or clone it locally and run adios up.

The first release

Deploy FastAPI with the source and evidence attached.

Start from the repository or a template, review the deployment contract, and inspect what becomes the promoted production version.