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.

FTP Hash Deploy Action: FTP-Ordner mit Schild und Hash-Symbol als Sinnbild für hash-verifiziertes Deployment

Wie es funktioniert

  1. hashme.php wird auf den Server hochgeladen
  2. Der Server berechnet Git-Blob-Hashes aller vorhandenen Dateien
  3. hashme.php wird sofort wieder gelöscht
  4. Dieselben Hashes werden lokal berechnet
  5. 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

Hosterserver-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
PayPal
Logo githubMy Github
mastodon logoFollow me
Logo hire meHire me
Logo EmailEmail