FTP Hash Deploy Action
GitHub Action, die beim Deployment nur geänderte Dateien hochlädt — durch serverseitige Hashes im Git-Blob-Format. Keine State-Datei, kein Rätselraten: der Server sagt selbst, was er hat.

Wie es funktioniert
hashme.phpwird auf den Server hochgeladen- Der Server berechnet Git-Blob-Hashes aller vorhandenen Dateien
hashme.phpwird sofort wieder gelöscht- Dieselben Hashes werden lokal berechnet
- Nur Dateien mit abweichendem Hash werden hochgeladen — fehlende werden gelöscht
Hash-Algorithmus: SHA1("blob \0") — identisch mit Gits eigenem Blob-Hashing.
Vorteile gegenüber State-Dateien
- Kein Drift: Server ist immer die einzige Wahrheit
- Funktioniert auch nach manuellen Änderungen auf dem Server
- Dry-run-Modus zeigt Diff ohne Upload
- FTPS (explicit TLS) per Standard — plain FTP optional
- Web-Root frei konfigurierbar (
server-dir) - Lizenz: MIT
Verwendung
- name: Deploy
uses: Agundur-KDE/ftp-hash-deploy-action@v1
with:
ftp-host: $}
ftp-user: $}
ftp-password: $}
site-url: https://example.com
local-dir: ./dist/
server-dir: /public_html/ # Web-Root — nicht das FTP-Account-Root
Typische Web-Root-Pfade
| Hoster | server-dir |
|---|---|
| All-Inkl, Strato, Ionos | /web/ |
| cPanel-Hoster | /public_html/ |
| Plesk-Hoster | /httpdocs/ |
Voraussetzungen
- PHP auf dem Server (für
hashme.php) - FTP oder FTPS-Zugang
- Öffentlich erreichbare HTTP-URL während des Deployments
Quellcode & GitHub Marketplace
Die Action ist Open Source (MIT) und im GitHub Marketplace verfügbar.
GitHub-RepositoryGitHub Marketplace