Eine App mit PostgreSQL-Datenbank ausrollen
Eine App mit verwalteter PostgreSQL-17-Datenbank auf blitz.cloud hosten. DATABASE_URL wird gesetzt, die Datenbank ist privat und wird jede Nacht gesichert.
Auf blitz.cloud wird eine Datenbank für dich angelegt, während du die App online stellst. Du schaltest "Needs a database" ein, wählst PostgreSQL, und blitz.cloud startet eine PostgreSQL-17-Datenbank, setzt DATABASE_URL für deine App und kopiert die Datenbank jede Nacht an einen anderen Ort. Die Datenbank hat keine öffentliche Adresse; nur deine eigenen Apps erreichen sie.
Diese Anleitung nutzt das node-api-Beispiel, eine kleine API, die Notizen in PostgreSQL speichert. Die Schritte gelten für jedes Image, das einen Connection String aus einer Umgebungsvariable liest.
Wie die App die Datenbank findet
Bei einem Image, das du selbst mitbringst, schaut blitz.cloud in das Image, um zu erraten, welche Einstellungen es erwartet. Erkennt es Datenbank-Variablen, nennt der Assistent sie, bevor irgendetwas angewendet wird. Erkennt es keine und du willst eine Datenbank, setzt es eine einzige DATABASE_URL:
postgresql://<user>:<password>@<host>:5432/<database>
Der Host ist ein kurzer interner Name, der nur innerhalb deines eigenen Bereichs auf blitz.cloud aufgelöst wird. Dein App-Code braucht nicht mehr als das:
import pg from "pg";
const pool = process.env.DATABASE_URL
? new pg.Pool({ connectionString: process.env.DATABASE_URL, max: 5 })
: null;
TLS-Optionen sind nicht nötig: Die Verbindung verlässt nie das interne Netz von blitz.cloud, und Netzwerkregeln halten andere Konten fern.
Erst mit einer lokalen Datenbank testen
docker network create notes-net
docker run -d --name notes-db --network notes-net \
-e POSTGRES_USER=app -e POSTGRES_PASSWORD=secret -e POSTGRES_DB=app \
postgres:17-alpine
docker build --platform linux/amd64 -t blitz-example-node-api .
docker run --rm --network notes-net --user 1000:1000 --cap-drop ALL \
--security-opt no-new-privileges -p 8080:8080 \
-e DATABASE_URL=postgresql://app:secret@notes-db:5432/app \
blitz-example-node-api
curl -X POST -H 'content-type: application/json' -d '{"text":"first note"}' http://localhost:8080/notes
# {"id":1,"text":"first note","created_at":"..."}
curl http://localhost:8080/notes
In unserem Test lieferte der POST ein 201 und der GET die Notiz zurück. Die App legt ihre Tabelle beim ersten Start an, und genau dieses Muster solltest du übernehmen: Migrationen beim Start des Prozesses ausführen. Das klappt mit jedem Image. Ein Projekt, das aus GitHub mit einer Compose-Datei gebaut wird, kann so einen Schritt auch vor jeder neuen Version laufen lassen; schlägt er fehl, läuft die alte Version weiter.
Aufräumen mit docker rm -f notes-db && docker network rm notes-net.
Mit Datenbank ausrollen
- Lade das Image auf Docker Hub hoch, wie in Node.js-API hosten beschrieben.
- Klicke im Dashboard auf "Host something new" (Neues hosten), wähle "An app from Docker Hub", suche dein Image und wähle die Version.
- Schau auf dem nächsten Bildschirm unter "What this app needs". Steht in der Zeile "Database" schon PostgreSQL, hat blitz.cloud es erkannt. Steht dort "Not needed", öffne "Advanced settings", schalte "Needs a database" ein und lass "Which one" auf PostgreSQL.
- Gib der App einen Namen, wähle eine Adresse und klicke auf "Put it online".
Die Datenbank erscheint auf der Seite "Databases" zusammen mit der App, zu der sie gehört. Ihr Connection String ist dort maskiert, bis du ihn per Klick anzeigst.
Was du wissen solltest, bevor du dich darauf verlässt
Eine App, eine Datenbank. Eine Datenbank gehört genau zu einer App, zwei Apps können sich keine teilen. Der kostenlose Tarif enthält eine Datenbank; sie nimmt außerdem 128 MB aus deinen 512 MB Arbeitsspeicher und reserviert 1 GB deines Speicherplatzes.
Nächtliche Backups. Jede Nacht wird die Datenbank exportiert und in einen separaten Speicher kopiert, außerhalb der Server, auf denen deine Apps laufen. Der kostenlose Tarif behält 7 Nächte. Zurück zu einer Nacht geht per Button auf der Seite "Databases", und das ersetzt die gesamte Datenbank durch die Kopie dieser Nacht. Vorher wird die Datenbank, wie sie gerade ist, kopiert, sodass du die Wiederherstellung rückgängig machen kannst. Details unter Backups.
Kein Zugriff von außen. Heute kannst du dich nicht von deinem Laptop mit psql oder einem GUI-Client verbinden. Wenn du hineinschauen musst, füge ein kleines Admin-Tool als zweite App hinzu oder bau die Abfrage in deine eigene App ein.
Beim Löschen der App wird nach den Daten gefragt. Wenn du die App löschst, wirst du ohne Voreinstellung gefragt, ob die Datenbank bleiben oder zusammen mit allen nächtlichen Kopien gelöscht werden soll.
MariaDB 11.4 und Redis (bereitgestellt von Valkey 8) gibt es ebenfalls. MongoDB nicht. Mehr unter Datenbanken.
Weiterlesen
Verwaltete Datenbanken auf blitz.cloud - PostgreSQL, MariaDB, Redis
Verwaltete Datenbanken mit PostgreSQL 17, MariaDB 11.4 oder Redis (Valkey 8) auf blitz.cloud, automatisch mit der App verbunden und jede Nacht gesichert.
blitz.cloud vs. Heroku: eine Heroku-Alternative in der EU, immer online ab 7 EUR im Monat
Heroku und blitz.cloud im Vergleich: Apps, die immer online sind, Preis pro App oder pro Konto, EU-Regionen, Docker-Images und Postgres, Stand 25. September 2026.
Backups und Wiederherstellung auf blitz.cloud
blitz.cloud sichert jede Datenbank jede Nacht extern und mit Pro auch die Dateien deiner Apps. Wie lange Kopien bleiben, wie die Wiederherstellung geht und was nicht gesichert wird.
Stell heute deine erste App online.
Starte im kostenlosen Tarif, ohne Kreditkarte. Wechsle zu Pro, wenn eine App online bleiben muss.
Konto anlegen