syncova-backup/deployment/docker-compose.yml
Jerrit Fritzsche 610719c316
Some checks failed
CI / Backend (Go) (push) Failing after 3m7s
CI / Frontend (React/TypeScript) (push) Successful in 37s
CI / Sicherheitsprüfungen (push) Successful in 44s
Syncova Backups V1
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>
2026-08-17 09:10:54 +02:00

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