Enterprise-Backup-, Recovery-, Verification-, Security- und Monitoring-Plattform fuer Proxmox VE, Windows, Linux und Dateisysteme. Der Leitsatz, der fast jede Entscheidung erklaert: Ein Backup gilt erst als vertrauenswuerdig, wenn Integritaet geprueft und Wiederherstellbarkeit nachgewiesen wurde. Deshalb steigt ein Wiederherstellungspunkt erst nach einem tatsaechlich durchgefuehrten Restore-Test auf "recoverable", und Unbekanntes geht in keine Bewertung als "gut" ein. Umfang (Phasen 0-23): - Repository Engine: inhaltsadressierte Bloecke, atomares Commit-Protokoll, Katalogaufbau allein aus den Manifesten — ohne Datenbank - Backup Engine: inhaltsabhaengiges Chunking, Deduplizierung trotz Verschluesselung, zstd, AES-256-GCM, Streaming mit Gegendruck - Agenten fuer Windows und Linux mit Auftragsabholung (Pull-Modell) - Proxmox-Provider mit beiden Zugriffswegen auf die Sicherungsarchive - Scheduler, Recovery Engine mit Pruefpunkt, Verification, Unveraenderlichkeit - Weboberflaeche, Kennzahlen, Meldungen, Berichte, Security Center, Ransomware-Heuristik (meldet, handelt nie) - Disaster Recovery, Haertung, Leistungsmessung, Chaos Testing - Eingefrorene Vertraege fuer API, Migrationen, Backup-Format und Repository - Auslieferungspaket fuer linux/amd64, linux/arm64 und windows/amd64 Nicht enthalten und als solches gekennzeichnet: Kapazitaetsprognose, Backup Copy, Changed Block Tracking bei Proxmox, erweiterte Attribute und ACLs. Gebaut, aber nie auf echter Hardware gefahren: der Windows-Dienst, die systemd-Einheit und der verpflichtende Proxmox-Meilenstein — ob eine wiederhergestellte VM startet, ist ungeprueft. Einzelheiten in CHANGELOG.md und docs/release-candidate.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
1.8 KiB
YAML
43 lines
1.8 KiB
YAML
# Lokale Entwicklungsumgebung für Syncova.
|
|
#
|
|
# Diese Datei ist ausdrücklich NICHT für den produktiven Betrieb gedacht:
|
|
# sie exponiert PostgreSQL auf localhost und verzichtet auf TLS zwischen
|
|
# Anwendung und Datenbank.
|
|
#
|
|
# Start: make dev-up
|
|
# Stopp: make dev-down
|
|
|
|
services:
|
|
# postgres ist die Control-Plane-Datenbank. Sie enthält niemals Backup-Nutzdaten.
|
|
postgres:
|
|
image: postgres:17-alpine
|
|
container_name: syncova-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
# Die Zugangsdaten stammen aus der .env-Datei im Projektwurzelverzeichnis.
|
|
# Diese wird über "make dev-env" mit einem Zufallspasswort erzeugt und
|
|
# ist bewusst von der Versionsverwaltung ausgeschlossen.
|
|
POSTGRES_DB: ${SYNCOVA_DB_NAME:?SYNCOVA_DB_NAME fehlt - bitte "make dev-env" ausführen}
|
|
POSTGRES_USER: ${SYNCOVA_DB_USER:?SYNCOVA_DB_USER fehlt - bitte "make dev-env" ausführen}
|
|
POSTGRES_PASSWORD: ${SYNCOVA_DB_PASSWORD:?SYNCOVA_DB_PASSWORD fehlt - bitte "make dev-env" ausführen}
|
|
# Verhindert, dass ein anonymer Zugriff auf die Datenbank möglich ist.
|
|
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
|
|
POSTGRES_INITDB_ARGS: "--auth-host=scram-sha-256"
|
|
ports:
|
|
# Nur an das Loopback-Interface binden: die Datenbank darf nicht im Netz stehen.
|
|
- "127.0.0.1:5432:5432"
|
|
volumes:
|
|
- syncova-postgres-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
# Der Healthcheck erlaubt es abhängigen Diensten, auf eine bereite Datenbank zu warten.
|
|
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 10s
|
|
|
|
volumes:
|
|
# syncova-postgres-data hält die Datenbankdateien über Container-Neustarts hinweg.
|
|
syncova-postgres-data:
|
|
name: syncova-postgres-data
|