Die Wege zum Webspace
| Verfahren | Wann | Zugangsdaten |
|---|---|---|
| SFTP / rsync über SSH | Empfohlen, sobald der Zielserver SSH anbietet | Schlüsselpaar des Build-Servers, kein Passwort |
| FTPS (FTP über TLS) | Für Hoster ohne SSH | Passwort, verschlüsselt gespeichert |
| FTP | Nur wenn nichts anderes geht – unverschlüsselt, nicht empfohlen | Passwort, verschlüsselt gespeichert |
| Lokal | Website liegt auf demselben Server | keine |
rsync über SSH: der empfohlene Weg
rsync vergleicht Dateien nach Inhalt, überträgt nur Änderungen, löscht auf dem Ziel, was es in der neuen Version nicht mehr gibt, und setzt alle neuen Dateien erst am Ende auf einmal um. Besucher sehen also nie einen Zwischenstand.
Der Schlüssel des Build-Servers wird auf dem Zielserver so eingeschränkt, dass er nur in das eine Website-Verzeichnis schreiben darf – keine Shell, kein Lesen, kein Zugriff auf andere Ordner:
restrict,command="rrsync -wo /pfad/zur/website" ssh-ed25519 AAAA… web-concept24-deploy
Beim ersten Verbindungstest hält das System den Hostschlüssel des Zielservers fest und zeigt seinen SHA256-Fingerabdruck zum Abgleich mit dem Hoster. Danach wird er bei jeder Verbindung streng geprüft; ändert er sich, bricht die Auslieferung ab, statt Daten an einen unbekannten Server zu schicken.
FTPS mit Manifest
Auch ohne SSH wird nicht jedes Mal alles übertragen: Auf dem Ziel liegt eine Liste aller Dateien mit ihrer Prüfsumme. Hochgeladen wird nur, was sich geändert hat – zuerst unter einem temporären Namen, dann umbenannt. Dateien, die es nicht mehr gibt, werden gelöscht.
Zugangsdaten sind verschlüsselt
FTP-Passwörter speichert das System mit AES-256-GCM verschlüsselt in der Datenbank. Der Schlüssel liegt getrennt davon in der Konfiguration des Servers. Wer nur die Datenbank hat, kann die Passwörter nicht lesen; im Backend werden sie nie wieder angezeigt, nur ersetzt oder gelöscht.
Warum ein eigener Build-Server
Viele Shared-Hosting-Pakete haben weder rsync noch SSH-Werkzeuge. Deshalb empfiehlt sich ein kleiner eigener Server, der baut und ausliefert – die Themen-Websites selbst können danach bei jedem beliebigen Hoster liegen, denn sie brauchen nur statische Dateien. Das Backend zeigt, welche Werkzeuge auf dem aktuellen Server vorhanden sind.
Protokoll
Jede Auslieferung wird mit Beginn, Ende, Status, Anzahl der Dateien, übertragener Datenmenge und Meldung festgehalten. Im Backend steht bei jeder Domain, wann sie zuletzt gebaut und ausgeliefert wurde – und ob es geklappt hat.