Levelrail
Skip to content

Self-host FastAPI + PostgreSQL with Docker ​

A minimal Python HTTP service wired to a Postgres database, the reference pairing for a FastAPI backend.

This page describes the Levelrail template for FastAPI + PostgreSQL (Starter Kits). It deploys the services below as one Docker Compose app on your own server.

Project site: https://fastapi.tiangolo.com/deployment/docker/.

Recommended memory: about 256 MiB.

Services, ports and volumes ​

ServiceImageContainer portsVolumes
apipython:3.12-alpine8000none
dbpostgres:16-alpinenone
fastapi_postgres_db_data -> /var/lib/postgresql/data

Environment variables ​

ServiceVariableValue
apiDATABASE_URLGenerated at deploy
dbPOSTGRES_DBPreset in the template
dbPOSTGRES_PASSWORDGenerated at deploy
dbPOSTGRES_USERPreset in the template

Passwords and keys marked as generated are created for you when the app is deployed and stored as secrets. Values are not shown here.

Deploy FastAPI + PostgreSQL with Levelrail ​

In the dashboard, open Apps, choose New app, then Browse templates, and select FastAPI + PostgreSQL. Review the Compose body and deploy.

With the CLI:

levelrail-cli templates deploy fastapi-postgres-starter --name my-fastapi-postgres-starter

See Service template catalog for how templates work, and Getting started if you have not installed Levelrail yet.

More Starter Kits templates ​

All templates are listed in the self-host gallery.

Released under the Apache 2.0 License.