≡ Dropbox auf dem eigenen Server

Ich habe nun Dropbox auf meinem Webserver installiert. Das ist sehr praktisch. Denn: egal wo ich programmiere, ob an meinem iMac oder am Laptop, ich habe die aktuellen Dateien da und muss mir nicht erst die aktuellen Versionen über FTP vom Server holen. Überhaupt, das FTP Programm fällt eigentlich komplett weg; wenn ich Dateien hochladen möchte, ziehe ich sie einfach in den Dropbox-Ordner und alles passiert von selbst im Hintergrund. Wenn ich etwas an einem Script ändere und die Datei speichere, wird sie automatisch auf den Server hochgeladen. Ich habe automatisch ein zusätzliches Backup der verschiedenen Versionen und gelöschten Dateien in meinem Dropbox-Account. Dateien, die auf dem Webserver generiert werden (zum Beispiel sind alle Blogeinträge auf dieser Seite nur Texteinträge) werden automatisch auf meinen Rechner runtergeladen.
(Die Daten liegen immer noch auch auf den Dropbox-Servern; es wird einfach noch zusätzlich mit dem Webserver synchronisiert)
Da ich meinen Server inzwischen bei Uberspace habe, ist das einrichten von Dropbox auch gar nicht so schwer:
- über SSH-Shell auf dem Webserver einloggen
Dropbox auf dem Webserver installieren:
$ cd ~ && wget -O - http://www.dropbox.com/download?plat=lnx.x86_64 | tar xzf -(siehe hier)
- ~/.dropbox-dist/dropboxd starten
- Die angezeigte URL mit einem Webbrowser aufrufen, um ein Dropbox-Konto zu verknüpfen
- ~/.dropbox-dist/dropboxd als Daemon einrichten, damit er immer auf dem Server läuft (wie das bei Uberspace funktioniert, steht hier)
- klappt alles, gibt es den Ordner ~/Dropbox/
hier rein kommt jetzt ein Symlink zum Inhalt des www-Verzeichnisses. Bei mir:
$ ln -s /var/www/virtual/mh/ ~/Dropbox/wwwroot(mh ist der User auf dem Webserver, wwwroot heißt der Ordner dann in meiner Dropbox)
- und schon sollte das syncen klappen …
ich habe mir der besseren Übersicht halber für meinen Webserver einen neuen Dropbox-Account angelegt. Mit diesem Account habe ich den Ordner wwwroot für meinen eigentlichen Dropbox-Account freigegeben.
(Wenn man direkt seinen eigentlichen Account verknüpft, synct Dropbox natürlich ALLE Daten auf den Webserver (sie landen zwar nur im Ordner ~/Dropbox/ und sind vom Web aus nicht erreichbar - aber sie benötigen natürlich Platz und liegen dann noch an einem weiteren Ort). Wer das nicht möchte, kann selektives syncen anschalten und nur bestimmte Ordner synchronisieren lassen; dafür benötigt man ein Script, mit dem man Dropbox kontrollieren kann. Von Dropbox selber gibt es ein CLI-Script (Command-Line-Interface-Script, geschrieben in Python), das habe ich bei mir allerdings nicht zum Laufen bekommen. Die Lösung mit einem Zweitaccount schien mir eleganter und funktioniert hervorragend.)
Dropbox auf dem eigenen Webserver laufen zu lassen, bringt einiges an praktischen Vorteilen:
- Backup der Dateien, falls man mal ausversehen etwas löschen sollte
- Archivieren älterer Versionen
- zum Hochladen oder Aktualisieren der Dateien muss ich sie einfach nur in meinen Dropbox-Ordner schieben; ohne ein FTP-Programm starten zu müssen
- da mein selbst geschriebenes CMS auf Text-Dateien basiert, kann ich neue Blogeinträge usw. ganz einfach und ohne Probleme auf meinem Rechner schreiben, einfach in der Dropbox speichern, fertig
- Einträge, die ich online schreibe (wenn ich unterwegs bin) werden automatisch auf meinen Rechner gesynct
- egal an welchem Rechner ich arbeite - ich habe immer die aktuellen Dateien der Webseiten da, ohne sie neu runterladen zu müssen
- ich kann mit meinem iPhone auf den wwwroot-Ordner zugreifen
Aus den Kommentaren:
Das CLI-Script zum Laufen bekommen:
cd ~/bin/ wget https://www.dropbox.com/download?dl=packages/dropbox.py chmod 700 dropbox.py mv dropbox.py dropbox(Danke Mate!)
Selektive Synchronisation:
Die Lösung für die selektive Synchronisation ist, absolute Pfade statt relativen anzugeben.
Das ist also falsch:python dropbox.py exclude add (/Dropbox)/OrdnerEs muss lauten:
python dropbox.py exclude add ~/Dropbox/OrdnerWobei "~" kurz für "/home/user" ist.
(Danke Peter!)
dropbox.py mit Python 2.6
damit das CLI-Script bei mir laufen konnte, musste ich es mit Python 2.6 ausführen. Bei Uberspace funktioniert das so:
python2.6 ~/bin/dropbox.py status
(dieser Befehl gibt den aktuellen Status von Dropbox aus; syncing oder idle etc.)
Kirby
Kirby ist ein CMS von Bastian Allgeier, das komplett auf Dateien basiert, ohne Datenbank dahinter. Die Verbindung mit Dropbox ist hier perfekt.
Ein kleines Tutorial hierzu: Kirby meets Dropbox
Kommentare
Thunderflash
Klingt spannend!
Habe ich das richtig verstanden, dass die Daten nur noch auf deinen eigenen Server liegen und von Dropbox nicht mehr theoretisch eingesehen werden können?
Auf meiner Arbeit würde ich Dropbox gerne nutzen, da ist aber das Gegen-Argument dass dann Firmendaten auf fremden Servern liegen.
Max http://www.maxhaesslein.de @maxhaesslein
Nein, es geht nur darum, dass die Daten vom Webserver automatisch synchronisiert werden. Die Daten liegen einfach ZUSÄTZLICH auf dem eigenen Server, allerdings auch immer noch auf den Servern von Dropbox.
Max http://maxhaesslein.de @maxhaesslein
Falls du einen Cloud-Server auf deinem eigenen Server einrichten möchtest, kannst du dir http://owncloud.org/ mal näher anschauen.
Christoph http://om.de @gantor
Es hat ein bisschen gedauert, weil ich mich mal wieder beim symlink vertippt habe, aber jetzt funktioniert es. Einfacher kann man Dateien nicht syncen.
Vielen Dank dafür.
Mate
Vielleicht kann ich die Anleitung noch damit vervollständigen indem ich erzähle, wie ich das CLI-Skript benutze. Ich hab das einfach ins persönliche bin-Verzeichnis runtergeladen und mit cmod 700 ausführbar gemacht, und anschließend umbenannt von dropbox.py nach dropbox. Jetzt kann ich von überall dropbox aufrufen
cd ~/bin/
wget https://www.dropbox.com/download?dl=packages/dropbox.py
chmod 700 dropbox.py
mv dropbox.py dropbox
Peter
Die Lösung für die selektive Synchronisation ist, absolute Pfade statt relativen anzugeben.
Das ist also falsch:
python dropbox.py exclude add (/Dropbox)/Ordner
Es muss lauten:
python dropbox.py exclude add ~/Dropbox/Ordner
Wobei "~" kurz für "/home/user" ist.
Ich hatte anfangs auch dieses Problem, und daher zwei Accounts, aber wirklich elegant ist es mit einem.
Mit den bereits genannten symlinks zu Dropbox wird das Uberspace schliesslich wirklich grossartig.
Florian @gefangenimnetz
Vielen Dank für die super Anleitung!
spektakel
Wer Dropbox meiden möchte kann Owncloud in Verbindung mit Unison nutzen.
Adrian http://adrianthomas.org @adrianthomas
Hallo Max,
Vielen Dank für deinen sehr hilfreichen Blogeintrag! Ich versuche gerade das gleiche Setup auf Überspace hinzubekommen, habe jetzt jedoch das Problem das neue Dokumente und Ordner die ich auf Dropbox erstelle immer als Zugriffsrecht "777" bekommen. Was habe ich falsch gemacht?
Genauere Infos habe ich für die Allgemeinheit auch im Kirby Forum gepostet:
http://getkirby.com/forum/general/topic:269
Danke!
Adrian
Kevin Lorenz http://www.kevinlorenz.com @verpixelt
Alternativ zu Dropbox lässt sich mit dem Plugin SFTP für Sublime Text upload on save einrichten. Einmal die Serverdaten hinterlegt muss man sich keinen Kopf mehr drum machen, dass die Daten synchron sind.