Framework Frankfurt, Deutschland

FastAPI auf Nodion deployen

Nodion erkennt FastAPI oder Starlette in deinen Dependencies, installiert sie mit dem Python-Buildpack und startet Uvicorn auf deiner main.py oder app.py. Migrationen können als Release-Schritt laufen, bevor eine neue Version live geht, und die API läuft in Frankfurt, auf Wunsch neben einer Managed PostgreSQL-Datenbank.

Auf Nodion deployen ›

ab 1 EUR / Monat

Bis zu 15 € Guthaben beim Registrieren

Erkannt an
FastAPI oder Starlette in den Dependencies
Start
uvicorn main:app, ein Prozess
Python
3.10 bis 3.15, Standard 3.13
Region
EU Central (Frankfurt)

FastAPI Schritt für Schritt deployen

  1. FastAPI mit Uvicorn installieren Nodion startet Uvicorn, installiert es aber nicht. fastapi[standard] bringt es mit; mit einfachem fastapi ergänzt du uvicorn selbst. Pinne die Python-Version in .python-version, denn ein Bereich nimmt das neueste Release. requirements.txt
    fastapi[standard]
  2. Die App in main.py oder app.py anlegen Nodion nimmt die Datei aus main.py und app.py, die FastAPI oder Starlette enthält, und startet uvicorn main:app oder uvicorn app:app auf 0.0.0.0 und dem PORT, den Nodion setzt. Beantworte / mit 200: Das ist der Standard-Pfad des Health Checks. main.py
    from fastapi import FastAPI
    
    app = FastAPI()
    
    
    @app.get("/")
    def root():
        return {"status": "ok"}
  3. Paket-Layout? Eine web-Zeile ergänzen Liegt deine App in einem Paket wie app/main.py, gibt es keine Datei im Wurzelverzeichnis, die Nodion finden könnte. Nenn das Modul selbst in einer Procfile; die Zeile ersetzt den Standard-Startbefehl. Procfile
    web: uvicorn app.main:app --host 0.0.0.0 --port $PORT
  4. Migrationen bei jedem Deploy ausführen Mit Alembic läuft eine release:-Zeile bei jedem Build einmal, nach dem Build und bevor die neue Version startet. Scheitert sie, stoppt der Deploy und die laufende Version bleibt live. Procfile
    release: alembic upgrade head
  5. App und Datenbank anlegen Lege eine Application aus deinem Repository in der Region EU Central an, dann eine PostgreSQL-Datenbank in derselben Region, und hänge sie auf dem Tab Environment an: Sie kommt beim nächsten Deploy als DATABASE_URL an. API-Keys markierst du als Secret, dann pushen.

Gut zu wissen

  • TrustedHostMiddlewareDer Health Check von Nodion ruft jede Instanz über ihre interne Adresse auf, die nicht in allowed_hosts steht; die Middleware antwortet mit 400, und das Release geht nie live. Häng danach eine Funktion mit @app.middleware("http") an, die für /healthz 200 liefert (Starlette führt die zuletzt hinzugefügte Middleware zuerst aus), und trag /healthz in den App-Einstellungen als Health-Check-Pfad ein.
  • Mehr als ein WorkerStandard ist ein einzelner Uvicorn-Prozess. Für mehr setzt du web: uvicorn main:app --host 0.0.0.0 --port $PORT --workers 2 in eine Procfile oder startest weitere Instanzen des Web-Prozesses.
  • DATABASE_URL und SQLAlchemyDie DATABASE_URL von Nodion beginnt mit postgres://, und das akzeptiert SQLAlchemy ab 1.4 nicht. Tausch das Schema aus, bevor du die URL weitergibst, etwa gegen postgresql+psycopg:// für psycopg 3, das mit synchronen und asynchronen Engines funktioniert.

Was Nodion für dich betreibt

  • Deploys ohne Downtime Push auf deinen Branch und Nodion baut ein neues Release. Der Traffic wechselt erst, wenn die neuen Instanzen ihren Health Check bestehen; ein fehlgeschlagenes Release lässt das laufende stehen. Apps mit lokalem Volume starten stattdessen neu, weil die Disk zu einer Instanz gehört.
  • Datenbanken neben der App Managed PostgreSQL, pgvector, MySQL, Valkey und ClickHouse in derselben Region. Angehängte Datenbanken kommen als DATABASE_URL, REDIS_URL oder CLICKHOUSE_URL in die App.
  • Previews pro Pull Request Schalte Previews ein, und Pull Requests aus deinem Repository bekommen eine eigene App mit eigener URL und frischen, leeren Datenbanken, automatisch oder per Hand angelegt. Forks und Bot-Pull-Requests werden übersprungen.
  • Worker, Cron Jobs und Skalierung Worker laufen als weitere Prozesse derselben App, Jobs planst du auf dem Tab Cron, und jeden Prozess skalierst du auf bis zu 16 Instanzen.
  • Release-Schritt Mit Buildpacks läuft eine release:-Zeile in der Procfile bei jedem neuen Build. Dockerfile-Apps sowie Redeploys und Rollbacks auf ein früheres Image nutzen einen Release Command, der an der App selbst gesetzt ist; er hat auch Vorrang vor der Procfile-Zeile. Bei statischen Sites läuft ein Release-Schritt in einem Image, das nur die gebauten Dateien enthält.
  • Logs und Metriken Build-, Release- und Laufzeit-Logs sowie CPU-, Speicher-, Disk- und Netzwerk-Metriken für jede Instanz im Dashboard.
  • Domains und HTTPS Ein Default-Hostname mit HTTPS ab dem ersten Deploy; deine eigenen Domains bekommen automatisch Zertifikate.

Weiterlesen

FastAPI auf Nodion: Fragen und Antworten

Läuft FastAPI auf Nodion mit mehreren Workern?

Standardmäßig nicht: Nodion startet einen Uvicorn-Prozess. Ergänz --workers 2 oder mehr in einer eigenen web:-Zeile, oder skalier den Web-Prozess auf mehr Instanzen.

Warum wird mein FastAPI-Deploy nie bereit?

Der Health Check braucht 2xx oder 3xx auf /. Eine API ohne Root-Route antwortet mit 404, und TrustedHostMiddleware antwortet der internen Adresse mit 400. Leg eine Route an, oder trag einen Pfad wie /healthz in den App-Einstellungen ein und beantworte ihn vor der Host-Prüfung.

Funktionieren auch Starlette-Apps?

Ja. Starlette in den Dependencies bekommt denselben Uvicorn-Default, der app in main.py oder app.py sucht.

Wo läuft meine FastAPI-App?

In der Region EU Central in Frankfurt. Build, Registry, die App und ihre Datenbanken, Volumes, Buckets, Logs und Metriken bleiben in dieser Region, API und Control Plane von Nodion werden in Deutschland gehostet. Die Nodion GmbH hat ihren Sitz in Stuttgart.

Kann ich FastAPI DSGVO-konform betreiben?

Nodion schafft die Voraussetzungen dafür: Die Nodion GmbH hat ihren Sitz in Stuttgart, in der Region Frankfurt laufen App, Datenbanken und Volumes in Deutschland, und den Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DSGVO schließt du im Dashboard elektronisch ab. Ob dein Einsatz DSGVO-konform ist, hängt auch davon ab, wie du die App konfigurierst und nutzt.

Was kostet FastAPI-Hosting auf Nodion?

Eine App-Instanz gibt es ab 1 EUR im Monat. Das Setup im Kostenkasten kostet 3.50 EUR im Monat: App 2 EUR, PostgreSQL 1.50 EUR. Preise sind netto, Abrechnung pro Sekunde, größere Varianten oder mehr Instanzen wählst du jederzeit.

Kann ich eine eigene Domain für meine FastAPI-App nutzen?

Ja. Jede App bekommt einen Default-Hostnamen mit HTTPS. Deine eigene Domain nimmst du auf dem Tab Domains dazu, das TLS-Zertifikat wird automatisch ausgestellt und erneuert.

Gibt es Support auf Deutsch?

Ja. Nodion ist ein deutsches Unternehmen mit Sitz in Stuttgart, der Support antwortet auf Deutsch und auf Englisch.

Gib deinem Agenten eine Cloud.

Bis zu 15 € Guthaben beim Registrieren.

Weiter mit GitHub

oder per E-Mail

Bleib auf dem Laufenden.

Produktnews, kein Spam. Jederzeit abbestellen.