Backup für Webentwickler: Die Brackets-GitHub-Tresorit-Solution

Backup für Webentwickler: Die Brackets-GitHub-Tresorit-Solution
Brackets-Github-Tresorit - die Backup-Lösung für Webentwickler

Joe Hana ist Designer, Front-End-Entwickler, SEO- und Social-Media-Consultant. Der Freelancer entwirft, plant und realisiert Webseitenprojekte für verschiedenste Unternehmen. Der Österreicher experimentiert gern mit neuen Lösungen und schrieb kürzlich auf seiner Facebook-Seite, wie er für seine Arbeit Brackets mit eqFTP, GitHub und Tresorit zusammengeführt hat. Mit seiner Erlaubnis rebloggen wir seine spannende Backup-Lösung im Tresorit-Blog.

Bis vor Kurzem arbeitete ich mit Adobe Dreamweaver und dem integriertem FTP Client. Damit habe ich im Grunde jede Datei, die ich auf einem Server bearbeiten wollte, im Hintergrund erstmal auf meine Festplatte geladen, bearbeitet, gespeichert und im Hintergrund wurde diese dann wieder hochgeladen, damit ich dann die Änderung nach einer Browseraktualisierung gleich sehen konnte.

Bei Projekten, die ich auf GitHub oder Bitbucket verwalte, musste ich zuerst das jeweilige Repository auf meine Festplatte klonen und habe dann umständlich den Inhalt des Ordners gelöscht und manuell mittels Filezilla neu heruntergeladen. Damit wurden die “Änderungen” des jeweiligen Clients (GitHub oder Bitbucket) “erkannt” und ich konnte commiten.

Backups machte ich ebenfalls stets manuell, meist in einen eigenen Ordner, und meist neben einer installierten Backup-Lösung.

Grund für diese Vorgehensweise? Ich traute dem Ganzen einfach sonst nicht anders. Ich muss mir selbst stets gewiss sein, dass ich Kontrolle über alle einzelnen Schritte habe.

Neue Zeiten brachen an…

Darf ich vorstellen: Die Brackets-GitHub-Tresorit-Backup-Lösung. Oder fast sogar noch genauer gesagt, die Brackets-eqFTP-GitHub-Tresorit-backup-Lösung – da eqFTP aktuell für die Verwaltung meiner Spaces die Brackets-Extension meiner Wahl ist.

Es ist natürlich erstmal eine enorme Hürde. Etwas das bisher immer recht gut klappte (nur eben etwas langwierig war), nun zu ändern. Auch ist es ein ziemlicher Aufwand, da man ja auch die eigenen bisherigen Abläufe und Strukturen aufbrechen und anpassen muss. Ordner verschieben, Repositories neu klonen, ja nichts überschreiben oder unabsichtlich löschen… kann bei großen Datenmengen schon etwas unüberschaubar werden. Aber letzten Endes ist es nun vollbracht.

Im Grunde bin ich zufällig darauf gekommen. Ich hatte es nicht geplant. Ich stieß nach langer Abstinenz wieder mal auf Tresorit, der Clouddrive, der mir damals eigentlich schon imponierte. Es scheint ganz offensichtlich derzeit das sicherste Tool zu sein um sensible Daten auf mehreren Geräten zu synchronisieren und gleichzeitig in der Cloud zu sichern. Server liegen in Europa und datenschutzrechtlich gilt das Schweizer Gesetz, welches teilweise noch restriktiver als das EU Datenschutzgesetz ist. Dementsprechender Aufwand wird auch betrieben um die gesetzlichen Auflagen zu erfüllen.

Da ich da nun noch einigen freien Speicherplatz zur Verfügung hatte, überlegte ich ob es nicht mal klug wäre, meine Projekte endlich auch in der Cloud zu sichern. Ich brauchte ja ohnehin immer wieder Zugriff auf diverse Dateien, wenn ich mit dem Notebook unterwegs bin und meistens speicherte ich die dann individuell in Google Drive und löschte sie nachdem, ich sie nicht mehr brauchte.

Und so begannen die Umbauarbeiten für die neue Backup-Lösung. Erst legte ich neue “Tresore” an und verschob sämtliche Dateien. Ich re-strukturierte meine Ordnerstruktur dabei auch gleich mal ein wenig um. Bisher angelegte Backups habe ich auf eine eigene Festplatte verschoben. Dort sind die Backups ebenfalls in eigenen Ordnern gespeichert. Ein Ordner je Projekt. Und diesen “Backup-Projekt” Ordner verlinkte ich dann im jeweiligen Projekt, also quasi:

B:/BACKUPS/Project_XY/Backup-123.zip
D:/PROJECTS/Project_XY/

Der untere Ordner enthält sämtliche relevanten Projektdateien, und der obere Ordner nur die Backups vom jeweiligen Projekt. Im unteren Ordner existiert eine Verknüpfung zum jeweiligen Backup-Ordner.

Brackets & GitHub

Im Zuge dessen dachte ich mir auch gleich, dass ich bei dieser Gelegenheit Brackets und GitHub richtig einrichten könnte. Für Brackets fehlte mir immer ein guter FTP-Client. Ich arbeite gern direkt am Server und brauche daher einfach einen FTP-Client. Von Haus aus gibt es bei Brackets sowas nicht – ist auch ok, da nicht jeder mit so etwas arbeitet und so ein Feature für manche überflüssig sein könnte. Daher lieber als Extension – doch leider gab es da bis zuletzt irgendwie keine guten, bis ich auf Synapse gestoßen bin. Leider wollte ich mich zum damaligen Zeitpunkt nicht wirklich umstellen und bin lieber bei Adobe Dreamweaver geblieben. Jetzt allerdings wollte ich es mal wieder versuchen. Doch Synapse hat aus irgendeinem Grund nicht mehr richtig funktioniert. Schade, da es eine ziemlich nette Extension war. Ich habe mich dennoch kurzerhand umgesehen und habe eqFTP gefunden. Fast schon eine Spur besser, da man hier auch noch eine Art Log hat, welche Dateien zuletzt bearbeitet und transferiert wurden.

Da eqFTP ebenfalls die Daten lokal speichert, habe ich innerhalb dieser Ordnerstruktur auch gleich meine Repositories angelegt (zumindest jene, an denen ich aktuell auch aktiv arbeite).

Und – diese Ordnerstruktur liegt ebenfalls in einem eigenen Tresor und wird mit Tresorit synchronisiert.

Die finale Backup-Lösung:

Dateien, die ich nun mit Brackets bearbeite (und mit eqFTP runter- bzw. hochlade), werden automatisch mit Tresorit synchronisiert. Und GitHub Desktop überwacht hierbei vereinzelte Ordner und lässt mich ggf. gleich commiten. Da Tresorit auch eine Versionierung anbietet, sollte das System auch sicher vor Ausfällen sein. Sollte unabsichtlich eine Datei gelöscht werden oder fehlerhaft verändert werden, ohne es direkt rückgängig machen zu können – sind die Chancen gut, eine Revision aus der Cloud laden zu können. Zusätzlich habe ich jetzt noch den Vorteil das sich dies alles auch Geräte-übergreifend synchronisiert und ich somit von jedem meiner Geräte stets den aktuellsten Stand habe.