PostgreSQL-Backups, selbst gehostet und verschlüsselt.
DBackup führt pg_dump nach Zeitplan aus, verschlüsselt die Dumps mit AES-256-GCM, wenn der Job einen Schlüssel hat, und legt sie auf dem Speicher Ihrer Wahl ab. Direkt oder über SSH, mit der Wiederherstellung in derselben App.
- VerbindenDirekt zu postgres:5432
- Dumppg_dump -F c -Z zstd:3 -d shop
- VerschlüsselnAES-256-GCM
- HochladenHetzner Object Storage
- Aufbewahren7 täglich, 4 wöchentlich, 12 monatlich
- MeldenDiscord · #backups
- pg_dump 18 ist im Image enthalten
- PostgreSQL 12 bis 18
- Wiederhergestellt mit pg_restore
- Custom-Format
- Über SSH läuft pg_dump auf Ihrem Server
- Direkt oder über SSH (Beta)
- Datenbanken wählen und neu benennen
- Wiederherstellung in der App
So läuft ein PostgreSQL-Backup
Vier Schritte, jeder mit einem Werkzeug oder Format, das Sie auch selbst nutzen könnten. DBackup führt sie nach Zeitplan aus und meldet sich, wenn einer scheitert.
- 1Dump
pg_dump -F cschreibt einen Dump im Custom-Format, eine Datenbank nach der anderen. - 2KomprimierenGzip, LZ4 oder Zstd direkt in
pg_dump, mit einer Stufe Ihrer Wahl. Oder keine, dann kann DBackup den Dump komprimieren. - 3VerschlüsselnAES-256-GCM mit dem Schlüssel eines Verschlüsselungsprofils, für jeden Dump einzeln. Darin bleibt der Dump, was das Werkzeug geschrieben hat.
- 4AblegenHochgeladen zu einem oder mehreren der 13 Speicherziele, jedes mit eigener Aufbewahrung, von einer einfachen Anzahl bis täglich, wöchentlich, monatlich und jährlich.
Native Kompression, pro Job gewählt
Der Job legt fest, wie pg_dump komprimiert, mit einer Stufe zwischen schneller und kleiner. Solange pg_dump komprimiert, lässt DBackup den Dump, wie er ist, damit nichts doppelt komprimiert wird.
Das Formular des Jobs liest die Version Ihres Servers und bietet LZ4 ab PostgreSQL 14 und Zstd ab 16 an.
Alle Datenbanken in einem Archiv
Wählen Sie einige Datenbanken eines Servers oder alle. Jede bekommt ihren eigenen Dump, und alle landen in einem TAR mit einem Manifest und einem Verzeichnis ihrer Prüfsummen.
- Lassen Sie die Auswahl leer, dann findet jeder Lauf die Datenbanken neu, auch neu angelegte.
- Stellen Sie eine Datenbank wieder her und lassen Sie die anderen in Ruhe, unter ihrem Namen oder einem neuen.
- Unverschlüsselt öffnet sich das Archiv mit
tar -xf, und die Dumps darin sind gewöhnlichepg_dump-Dateien.
- TARshop-postgres_2026-10-08_03-00-00.tar1.3 GB
- { }manifest.json
- DIRdatabases/
- DBshop.dump412 MB
- DBcrm.dump268 MB
- DBanalytics.dump640 MB
- { }index
$ node dbackup-recover.js --extract shop-postgres_2026-10-08_03-00-00.tar ./restored databases/shop$ createdb shop$ pg_restore --no-owner -d shop ./restored/databases/shop.dump
Zurückholen ohne DBackup
Jeder Dump ist das, was pg_dump geschrieben hat. Bewahren Sie das Recovery Kit dort auf, wo DBackup nicht hinkommt, dann holt jeder Rechner mit Node.js und pg_restore 18 die Daten zurück.
Das Recovery Kit aus dem Vault besteht aus einem Skript und Ihrem Schlüssel. Es entschlüsselt und entpackt einen Dump und prüft seine SHA-256-Summe, bevor es die Datei schreibt.
Warum wir das so gebaut habenIn fünf Minuten startklar
DBackup ist ein Container. Stellen Sie ihn neben Ihre Datenbank, geben Sie ihm einen Login und legen Sie den ersten Job an.
services:
dbackup:
image: skyfay/dbackup:latest
restart: always
ports:
- "3000:3000"
environment:
- ENCRYPTION_KEY=${ENCRYPTION_KEY} # openssl rand -hex 32
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} # openssl rand -base64 32
- BETTER_AUTH_URL=https://localhost:3000
volumes:
- ./data:/data
postgres:
image: postgres:18
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
Fragen zu PostgreSQL
PostgreSQL 12 bis 18. Das Image bringt pg_dump aus PostgreSQL 18 mit, das jeden älteren Server in diesem Bereich liest. Über SSH arbeitet das pg_dump auf Ihrem Server.
Nein. DBackup führt pg_dump für jede Datenbank aus und nie pg_dumpall, also sind Rollen und Tablespaces nicht im Backup. Eine Wiederherstellung lässt Besitzer und Rechte weg, die wiederhergestellten Objekte gehören also dem Login, der sie wiederherstellt.
Ja, über SSH, das noch in der Beta ist. DBackup meldet sich am Server an, führt dort pg_dump aus und überträgt den Dump zurück. pg_dump, pg_restore und psql müssen auf diesem Server installiert sein.
Nein. Lesen reicht. Ab PostgreSQL 14 deckt die Rolle pg_read_all_data jede Datenbank ab, auf älteren Servern vergeben Sie CONNECT und SELECT pro Datenbank.
Ja. Das Recovery Kit holt die Dumps heraus, verschlüsselt oder nicht, mit nichts als Node.js. pg_restore spielt sie zurück, Version 18 für Dumps aus dem Docker-Image, da pg_restore nie den Dump eines neueren pg_dump liest.
Weitere Datenbanken
Alle IntegrationenIhr erstes PostgreSQL-Backup läuft heute Nacht.
Ein Container, eine Compose-Datei und ein Job. Kostenlos und Open Source.