Ich habe neulich einen Raspberry Pi geschenkt bekommen, einen Rechner, der so groß ist, wie zwei aufeinandergelegte Zigarettenschachteln. Als Zockmaschine denkbar ungeeignet1, aber man kann damit seinen eigenen Server betreiben.
Normalerweise fürchte ich mich vor so was, weil ich zwar technisch interessiert bin, aber zu wenig Verständnis/Geduld/Plan habe, um eigenständig in den Tiefen von Betriebssystemen und Serverinfrastrukturen rumzuwerkeln.
Motiviert durch das Geschenk habe ich mich doch noch mal umgeschaut und erfreut festgestellt, dass die Technik mittlerweile soweit ist, dass man durch das Zusammenkopieren von Befehlen eine fast vollwertige Dropbox-Alternative basteln kann.
Also einen Dienst, der einerseits Dateien zwischen euren Rechnern synchronisiert, der aber andererseits auch ermöglicht Dateien per simplen Link Dritten zur Verfügung zu stellen. Weil ich vielleicht nicht der einzige Halbnerd bin, der sich für so etwas interessiert, habe ich den gesamten Vorgang dokumentiert und stelle ihn hier online.
- Was diese Anleitung liefert
- Was diese Anleitung nicht liefert
- Was ihr vorher braucht
- Die Sache mit dem Router
- Basisinstallation
- Bittorrent Sync
- Owncloud
- Was vielleicht noch zu tun wäre
- Updates /Anmerkungen
Was habt ihr geschafft, wenn ihr das alles durcharbeitet? Ihr habt einen Raspberry Pi mit Bittorrent Sync, Owncloud und dynamischem DNS kombiniert und betreibt eure eigene kleine Cloud, die besser und gesünder ist, als Dropbox oder Google Drive.
Warum man das will? Naja, vielleicht waren die ganzen NSA-Geschichten eine Motivation. Oder ihr bastelt gerne. Oder wollt herausfinden, wie einfach es jetzt wirklich ist, selber was mit Internet zu machen.
Was diese Anleitung liefert
Eine Schritt-für-Schritt-Anleitung, die es euch ermöglicht, mit relativ überschaubarem Zeitaufwand (3 Stunden vielleicht), einen eigenen Server bei euch unter dem Schreibtisch zu betreiben, also genau das zu machen, was Datenschutzfans und Netzbefürworter immer mal wieder fordern: Das Netz zu dezentralisieren, sich eigenständig zu machen.
Dafür sind gewisse Grundkenntnisse Vorraussetzung. Ich habe mich bemüht, die Anleitung möglichst einfach zu gestalten, theoretisch funktioniert sie auch ganz ohne Vorwissen. Zielgruppe sind aber Menschen, die mir ähneln: Keine Angst vor dem Computer, grundlegendes Wissen darüber, wie Systeme und Maschinen funktionieren, keine Angst vor der Kommandozeile. Ich kann für jeden einzelnen Befehl erklären, was er macht, wäre aber selber niemals auf die Idee gekommen, mir das zusammenzufrickeln.
[zurück zum Inhaltsverzeichnis]
Was diese Anleitung nicht liefert
Die beste, sicherste, effizienteste Lösung, die überhaupt denkbar ist. Hauptziel ist es wirklich, die Technologie für möglichst viele Menschen zugänglich zu machen, ist also an manchen Stellen bewusst einfach gehalten. Damit bietet diese Anleitung auch kein Dogma, wie es zu tun sei. Versteht sie als Angebot, als zu machende Erfahrung, die euch in die Lage versetzt, mehr zu verstehen.
Letztlich beruht dieser Leitfaden auch nur auf anderen Leitfäden, die ich mir zusammengestoppelt habe, genau das hoffe ich auch zu bewirken. Das heisst nicht, dass ich für Verbesserungsvorschläge nicht zu haben bin. Aber denkt daran, bevor ihr anfangt zu flamen, dass Supermintubuntugentoolinux mit adaptiven Init-Dämonen besser wäre, ok?
[zurück zum Inhaltsverzeichnis]
Was ihr vorher braucht
Das oben genannte Vorwissen und ein bisschen Hardware, einen Rechner, einen Router, einen funktionierenden Internetanschluß. Ich stelle hier die Liste der Hardware dazu, die ich selber benutzt habe, die Links sind Affiliate-Amazon-Links2.
- Raspberry Pi, Version mit 512 MB und HDMI-Ausgang
- SD-Karte, mindestens 8GB
- USB-Stick, ich habe 32GB von Intenso benutzt
- aktiver Logitech 4er USB-Hub (nur am Anfang notwendig)
- USB-Netzteil, Mikro-USB-Kabel
Natürlich funktioniert das System auch mit einer fast beliebigen anderen Kombination von Speichermedien und USB-Hubs, aber wenn ihr eine komplette Einkaufsliste braucht, könnt ihr euch gerne bedienen.
[zurück zum Inhaltsverzeichnis]
Die Sache mit dem Router
Ich gehe auf zwei Sachen nicht näher ein, weil die zu sehr davon abhängen, was für einen Router ihr zu Hause stehen habt. Die erste ist die Vergabe einer festen IP-Adresse für den Raspberry Pi. Das kann man theoretisch auch im Linux-Betriebssystem auf dem Pi machen, aber mittlerweile bieten alle gängigen Router an, dass man aus einer Liste einem bestimmten Gerät eine immer gleich vergebene IP zuweist.
Die zweite Sache ist die Erreichbarkeit von Außen. Auch hier hängen die Einstellungen vom Router ab. Zum einen müsst ihr ein Port-Forwarding einrichten, damit anfragen von außen überhaupt an den Pi weitergeleitet werden. Das ist im vorliegenden Fall Port 443 auf die IP des Raspberry Pi.
Außerdem wollt ihr einen Dienst für dynamische DNS-Zuweisung, der dafür sorgt, dass euer Internetanschluß zu Hause, der ständig die IP wechselt immer unter einer festen URL zu erreichen ist. In meinem Fall war das sehr einfach, weil ich eine Fritz-Box habe, die das unterstürtzt und mein Webhoster so einen Dienst in dem Paket anbietet, dass ich eh schon bezahle. Ich hätte hierfür gerne eine allgemein gültige Anleitung geschrieben, aber so weit sind wir noch nicht. Andererseits: Wenn ihr diese Hürde umschifft habt, seid ihr definitiv bereit für diese Anleitung.
PS: Das braucht ihr nur, wenn ihr das komplette Programm durchziehen wollt. Bittorrent Sync funktioniert auch so, solange der Pi am Netz hängt. Ihr müsst dann halt nur jedes Mal nach der IP des Pi schauen, wenn ihr auf das Webinterface zugreifen wollt.
[zurück zum Inhaltsverzeichnis]
Basisinstallation
Die NOOBS (dieser Guide bezieht sich auf Version 1.3, offline and network install) von der offziellen Raspberry-Pi-Downloadseite herunterladen. Dann die Checksumme der Datei überprüfen3, damit soll sichergestellt werden, dass ihr tatsächlich die Datei runtergeladen habt, die ihr wollt.
Dazu müsst ihr das Programm “Terminal” öffnen und einen Befehl von Hand eingeben (oder reinkopieren). Keine Angst, dass tut nicht weh und das müsst ihr im weiteren Verlauf sowieso noch häufiger machen. Falls sich die Datei in eurem “Downloads”-Ordner befindet, sieht der passende Befehl dazu so aus:
/usr/bin/openssl sha1 NOOBS_v1_3.zip
Als Ergebnis bekommt ihr eine lange Zeichenkette raus, die ihr mit der Angabe auf der Webseite überprüft, bei meiner Datei war das
a442c1c699849320a44cfb0eeb8792b38267d183
Falls das stimmt, ZIP-File entpacken. SD-Karte formatieren (offizielles Werkzeug) und alle Dateien aus der heruntergeladenen NOOBS-ZIP-Datei direkt auf die Karte kopieren. Dann müsste das oberste Verzeichnis der SD-Karte ungefähr ganz genau so aussehen:
Danach SD-Karte aus dem Rechner entfernen und in den Pi stecken. An den Pi einen USB-Hub mit externem Stromanschluß anstecken und daran Tastatur und Maus. Das ist wichtig, weil der USB-Anschluß des Pi so wenig Strom liefert, dass nicht einmal Tastatur und Maus wirklich funktionieren, wenn ihr sie einfach so ansteckt.
HDMI-Kabel zum Monitor anschließen. (Den Rest noch nicht, bei mir ist der Pi sonst nicht ordentlich hochgefahren.) Mit etwas Glück leuchten auf dem Pi jetzt bunte Lampen und der Monitor zeigt euch das folgende Bild:
Unten könnt ihr die passende Sprache und Tastatur einstellen. Letztere habe ich bei mir auf “de” gestellt, aber die Sprache auf Englisch gelassen, weil es meist einfacher ist, nach englischen Fehlermeldungen zu suchen, als nach deutschen. Dann den obersten Eintrag “Raspbian [RECOMMENDED]” auswählen und “Install (i)” klicken.
Daraufhin erscheint eine Warnung, dass die SD-Karte überschrieben wird, diese bestätigen. Dann Kaffee trinken gehen. Wenn die Meldung “OS(es) Installed Successfully” erscheint, bestätigen. Das System bootet jetzt und fährt neu hoch.
Euch wird jetzt ein simples Menü geboten, in dem Punkt “2 Change User Password” dringend aktivieren und euch ein eigenes, gutes Passwort geben solltet. Bei Punkt “3 Enable Boot to Desktop/Scratch” wählt ihr die zweite Option “Desktop Log in as user ‘pi’ at the graphical desktop”. Und unter Punkt “8 Advanced Options” findet ihr “A4 SSH” welches ich aktiviert habe.
Damit kann man per Terminal von einem anderen Rechner auf den Pi zugreifen, was sehr komfortabel ist, da man den größten Teil der Zeit damit verbringt Terminalbefehle von irgendeiner dubiosen Webseite zu kopieren. Dann das Menü beenden und
sudo reboot
eingeben. Wenn alles gut gegangen ist, startet der Pi neu und erwartet euch mit einer grafischen Benutzeroberfläche. Der Hauptteil der Arbeit besteht jetzt aus Eingaben in ein Terminalfenster, dass ihr auf dem Desktop unter “LXTerminal” findet. Das sollte jetzt ungefähr so aussehen:
Ihr könntet natürlich auf eurem kleinen Rechner direkt arbeiten, was auch ein sehr befriedigendes Gefühl ist, aber es geht komfortabler. Jetzt steckt ihr das Netzwerkkabel ein, dass mit eurem Router verbunden ist und gebt in der Eingabeaufforderung, also im Terminal
ifconfig
ein. Dann erscheint eine lange Ausgabe, die in “eth0” und “lo” unterteilt ist, ihr notiert euch die Zahlenfolge hinter “inet addr:” bei “eth0”, wir nehmen mal an, dass ist 192.128.1.23. Jetzt öffnet ihr euer Terminal auf eurem richtigen Rechner im selben Netzwerk und gebt ssh pi@192.128.1.23 und bestätigt die Abfrage, ob ihr den Schlüssel akzeptieren wollt mit “yes”.
Dann gebt ihr euer Pi-Passwort ein und schon seid ihr über das Netzwerk in euren pi eingeloggt. Der erste Schritt zur Weltherrschaft ist vollbracht! Alle weiteren Schritte könnt ihr also an eurem komfortablen, großen Rechner machen. Falls ihr lieber direkt auf dem Pi arbeiten wollt, könnt ihr das natürlich auch tun – mir war es aber auf Dauer zu anstrengend.
[zurück zum Inhaltsverzeichnis]
Bittorrent Sync
Als nächstes installieren wir Bittorrent Sync, eine Software, die es ermöglicht, dass verschiedene Rechner einen oder mehrere Ordner untereinander synchronisieren. Durch die Installation wird der Raspberry Pi zu unserem kleinen privaten Dropboxserver. Die Anleitung dafür habe ich bei Jack Minardi gefunden4, die ich an manchen Stellen noch leicht abgeändert habe. Vor der Installation besorgen wir uns aber noch ein bisschen Speicherplatz. Dazu stecken wir den USB-Stick und passen ihn an unsere Bedürfnisse an. Mit dem Befehl
df -h
lasst ihr euch alle verfügbaren Laufwerke anzeigen, darunter sollte sich eins befinden, dass den Pfad /dev/sda1 trägt und dessen Größenangabe mit eurem USB-Stick übereinstimmt. Es könnte auch sein, dass das Laufwerk irgendwie anders heißt, aber ihr solltet es auf jeden Fall an der Größe und dem Namen erkennen.
Im Zweifel müsst ihr die Zeichenkette “sda1” in den nächsten beiden Befehlen entsprechend anpassen. Falls der Stick nicht entdeckt ist, partitioniert ihn nochmal auf eine normale FAT32-Partition und versucht es noch einmal. Jetzt wird der Stick noch einmal aus dem System entfernt (nur per Befehl, nicht den Stick abziehen!)
sudo umount /dev/sda1
und dann passend formatiert:
sudo mkfs.ext4 /dev/sda1 -L Boxes
Mit “df -h” kontrollieren, ob der USB-Stick da ist, falls nicht, einfach rebooten.5 Der USB-Stick ist ab jetzt unter /media/Boxes zu finden, d.h. alles, was ihr in diesem Ordner macht, passiert direkt auf der obersten Ebene des USB-Sticks. Und da legen wir jetzt noch schnell ein Verzeichnis an:
sudo mkdir /media/Boxes/privat
Aber jetzt ist es wirklich soweit, jetzt wird Bittorrent Sync installiert.
mkdir ~/.btsync && cd ~/.btsync
Erstellt ein passendes Verzeichnis und wechselt in ebenjenes. Danach das Programm runterladen6
wget --content-disposition http://download-lb.utorrent.com/endpoint/btsync/os/linux-arm/track/stable
(Achtung, das ist alles eine einzige Zeile) und entpacken
tar -xvf btsync_arm.tar.gz
Jetzt könnte man natürlich das Programm einfach starten, aber wir wollen vorher noch ein Passwort für das Webinterface setzen dazu.
./btsync --dump-sample-config > btsync.conf
nano btsync.conf
Damit öffnet ihr einen kleinen Texteditor. Scrollt runter bis ihr die Zeilen mit “login” und “password” seht und tragt dort den gewünschten Nutzernamen und ein sicheres Passwort ein.7
Mit STRG + O, ENTER und danach STRG + X speichert ihr ab und verlasst den Texteditor. Falls ihr noch etwas nachbessern wollt, kommt ihr mit “nano btsync.conf” jederzeit wieder rein. Jetzt ist es soweit, Bittorrent Sync kann gestartet werden.
sudo ./btsync --config btsync.conf
Wenn alles geklappt hat, könnt ihr jetzt in eurem Browser von jedem Rechner in eurem Netzwerk unter http://192.128.1.23:8888 (wobei ihr die IP-Adresse natürlich durch die eures Pis ersetzen müsst, wie ihr die findet, steht ja oben) die Weboberfläche für Bittorrent Sync aufrufen. Dort auf “Add Folder” klicken, den Pfad zu “/media/Boxes/privat” raussuchen oder eintragen, auf “Generate” klicken, mit “Add” bestätigen, fertig.
Wenn ihr jetzt noch Bittorrent Sync auf eurem anderen Rechner installiert und dort das “Secret” eintragt und einen passenden Ordner auswählt8, sollte das im Webinterface ungefähr so aussehen:
Damit wir Bittorrent Sync nicht jedes Mal von Hand starten müssen, werden wir jetzt noch dafür sorgen, dass es automatisch ausgeführt wird9 Dazu rufen wir mit
sudo nano /etc/rc.local
den Texteditor10 auf und tragen in der allerersten Zeile
/home/pi/.btsync/btsync --config /home/pi/.btsync/btsync.conf
ein und speichern und beenden wieder mit STRG + O, Enter und STRG + X. Wenn jetzt nach einem
sudo reboot
nach einer Weile das Webinterface wieder ansprechbar ist, habt ihr alles richtig gemacht. Fortan wird jedes Mal Bittorrent Sync gestartet, wenn euer kleiner Pi angeht. Wenn ihr tatsächlich nur Dateien zwischen euren eigenen Rechnern synchronisieren wollt oder Dateien nur an Leute weitergebt, die kein Problem mit der Benutzung von Bittorrent Sync haben, könnt ihr an dieser Stelle aufhören und den Pi einfach irgendwo unter dem Schreibtisch verstauen.
Wenn es euch wie mir geht, seid ihr aber darauf angewiesen, ab und zu Dateien per Link nach außen weiterzugeben, so wie man das von Dropbox eben gewöhnt ist. Um das zu gewährleisten brauchen wir jetzt noch…
[zurück zum Inhaltsverzeichnis]
Owncloud
Im Prinzip ist Owncloud für meine Zwecke mit Kanonen auf Spatzen schießen, weil ich wirklich nur eine Sache damit realisieren möchte: Ein einfaches Interface, mit dem ich einfache, öffentlich zugängliche Links zu Dateien, die in meinem Sync-Ordner liegen, zugänglich machen kann. Owncloud kann noch mehr, unter anderem auch Adressbuch- und Kalendersynchronisierung, was uns aber an dieser Stelle erst einmal nicht interessieren soll.
Für die Installation habe ich mich vor allem an die Anleitung von Dan Brown gehalten11. Die Installation eines eigenen Webservers und dazu passender Software ist eine Wissenschaft für sich, glücklicherweise gibt es auch großartige Menschen, die das automatisiert haben.
Damit wir in den Genuß dieser Automatisierung kommen, müssen wir erst Github installieren und dann ein Skript herunterladen und ausführen. Dazu einfach nacheinander die Befehle
sudo apt-get update
sudo apt-get install -y git dialog
cd
git clone git://github.com/petrockblog/OwncloudPie.git
cd OwncloudPie
chmod +x owncloudpie_setup.sh
sudo ./owncloudpie_setup.sh
ausführen. Das sollte dann, bis auf die Farben, ungefähr so aussehen:
Unter Punkt 1 setzt ihr eure Wunsch-URL ein, ich benutze für das Beispiel jetzt “cloud.monoxyd.de”. Dann wählt ihr Punkt 2. Jetzt heißt es wieder warten, warten, warten und vielleicht einen Kaffee trinken oder gucken, was die Leute beim Radiorollenspiel, der Weisheit oder Superlevel gerade treiben. Wenn alles vorbei ist, werdet ihr nach ein paar Eingaben gefragt, um ein selbstsigniertes SSL-Zertifikat auszustellen.
Was ihr da eintragt, ist relativ egal, ich habe mich entschieden wenigstens Country-Code (DE) und Mailadresse ordentlich auszufüllen. Dann noch ein bisschen warten, die letzte Meldung bestätigen. Wenn jetzt alles geklappt hat, könnt ihr entweder die IP eures Pis (https://192.128.1.23/owncloud) oder – falls ihr dynamisches DNS eingerichtet habt – die vorher festgelegte Adresse (in unserem Fall: https://cloud.monoxyd.de/owncloud) in euren Webbrowser eingeben und müsstet dann den Startbildschirm von Owncloud sehen.
HALT!
Noch nicht ausfüllen, das Formular. Erst müssen wir dafür sorgen, dass Owncloud (bzw. genauer: der Webserver) einen passenden Ordner bekommt und darauf auch Zugriff hat. Dazu sind die folgenden beiden Befehle12 notwendig.
sudo mkdir /media/Boxes/owncloud sudo chown -R www-data:www-data /media/Boxes/owncloud/
Jetzt dürft ihr auf der Owncloud-Seite einen Usernamen und ein Passwort wählen. Ganz wichtig ist es, dass ihr “Advanced” anklickt und dort bei “Data folder”
/media/Boxes/owncloud
eintragt. Falls ihr – wie ich – zu voreilig wart und den Dateipfad nicht angegeben habt, könnt ihr im Terminal
rm /var/www/owncloud/config/config.php
eingeben und dann nochmal das Webinterface aufrufen und die Daten neu eingeben. Wie gesagt, bevor ihr bestätigt, sollte die Eingabemaske13 wie folgt aussehen:
Und jetzt kommt der Moment, wo der Frosch ins Wasser springt. Ihr ruft das Webinterface von Bittorrent Sync auf, klickt “Add Folder” und fügt den Ordner
/media/Boxes/owncloud/testuser/files
hinzu, was ungefähr so aussehen sollte:
Jetzt installiert ihr auf euren anderen Rechnern Bittorrent Sync, notiert euch die “Secrets” und legt euch zwei Ordner an: Den einen, in dem ihr nur für euch per Bittorrent Sync und den anderen, in dem ihr Dateien lagert, die ihr auch an andere weitergeben wollt. Sollte das der Fall sein, loggt ihr euch einfach in das Owncloud-Interface ein, generiert einen Sharing-Link für die Datei und verschickt den.
Fertig ist die eigene Wolke.
Viel Spaß damit!
[zurück zum Inhaltsverzeichnis]
Was vielleicht noch zu tun wäre
Es gibt ein paar Sachen, die ich noch als Baustelle ansehe, die aber nicht dringend für die Funktionalität notwendig waren.
- Automount des USB-Sticks, ohne dass das grafische Interface geladen wird. Keine Ahnung woran das liegt, falls jemand einen Tipp hat: Gerne. (Solved)
- btsync ordentlich aufrufen. Der rc.local-Aufruf scheint ein dreckiger Hack zu sein. Für die saubere Alternative per init.d-Skript(?) war ich zu faul, vielleicht geht es noch irgendwie anders? Außerdem scheint es auch schlechter Stil zu sein, btsync als root laufen zu lassen, bin aber von dem entsprechenden Hinweis überfordert.
- Webinterface von btsync absichern oder ausschalten. Ist zwar nur vom internen Netzwerk erreichbar, guter Stil ist das aber nicht. Entweder man regelt alles per config-Datei oder man versucht da auch irgendwie SSL draufzuwerfen.
- Owncloud ersetzen. Ich habe mir schon eine hochgezogene Augenbraue eingefangen, weil ich mit Owncloud PHP auf meinem Pi betreibe, was verächtlich belächelt wird. Vielleicht gibt es auch eine einfachere Möglichkeit Dateien in einem btsync-Ordner online per Link bereit zu stellen.
So, das war es jetzt aber wirklich. Bin mal eben weg, ein paar Dateien synchronisieren.
[zurück zum Inhaltsverzeichnis]
Updates/Anmerkungen
Automount von USB-Stick geht, in dem man einen Eintrag in die Datei fstab14 vornimmt. Dazu brauchen wir wieder den Texteditor:
sudo nano /etc/fstab
Dort tragt ihr unter den anderen Einträgen
/dev/sda1 /media/Boxes ext4 defaults 0 2
ein und speichert mit STRG + O, ENTER und STRG + X ab. Ab jetzt geht das System davon aus, dass der Stick dran ist, ihn abzuziehen, bevor ihr das System startet kann also Fehler hervorrufen.15 Dann könnt ihr nochmal das Konfigurationsprogramm aufrufen
sudo raspi-config
und unter Punkt “3 Enable Boot to Desktop/Scratch” die Option “Console Text console, requiring login (default)” aussuchen und bestätigen. Wenn euer Pi in Zukunft bootet, startet er das grafische System nicht mehr und spart so ein paar Ressourcen. Der USB-Stick wird trotzdem automatisch eingebunden. Falls ihr das Speichermedium mal ändern wollt, einfach die Schritte wiederholen.
[zurück zum Inhaltsverzeichnis]
- Zumindest wenn man von Battlefield 4 oder GTA V redet, als Emulator für Retrogaming kann das Teil was. [↩]
- Ich hatte da zwar erst solche Links drin, aber nachdem mir zwei Leute gesagt haben, dass es eigentlich ganz schön schizo ist, ein eigenes Datencenter zu bauen und dann zu einem Sammler verlinken, musste ich zugeben, dass sie recht hatten. [↩]
- Quelle: Wie Sie eine SHA1-Prüfsumme kontrollieren können. [↩]
- Quelle: Replace Dropbox with BitTorrent Sync and a Raspberry Pi [↩]
- Ich weiß, dass das alles nicht der supereffizienteste Weg ist, aber ich hatte keine Lust mich mit Automountpunkten und Krams rumzuschlagen. Ja, das ist der Grund, warum man in die GUI booten soll, da funktioniert das nämlich problemlos. [↩]
- Vielen Dank, @heeaad [↩]
- Nein, nicht “admin” und “passwort” wie hier in dem Beispielscreenshot! [↩]
- Wie das geht, erfahrt ihr direkt bei den BitTorrent Labs. [↩]
- Vielen Dank @klapauzius und @deveth0. Das ist kein sehr sauberer Weg, aber es ist die einfachste Version. Wenn ihr es ordentlich machen wollt, findet ihr in Jacks Artikel am Ende eine Anleitung. [↩]
- Ja, dadurch wird btsync als root ausgeführt, das wird es aber sowieso, ist also kein Unterschied. Für den neugierigen User: Man kann in der rc.local auch Kommandos mit su $Username -c “Kommando” eintragen und damit Sachen auch als Nicht-Root starten. Quelle [↩]
- Quelle: How I Created My Own Personal Cloud Using BitTorrent Sync, Owncloud, and Raspberry Pi [↩]
- Quelle: Karesyk/Youtube-Kommentar. Ja, ich hätte nicht gedacht, dass das möglich ist. [↩]
- Nein, der User sollte natürlich anders heißen! [↩]
- Vielen Dank @deveth0 und @ronsens [↩]
- Mal abgesehen davon, dass das Teil dann eh nicht mehr so funktioniert, wie es soll. [↩]
Moin,
schöner Artikel, der hoffentlich viele zum Nachmachen animiert.
zum Thema Zocken auf dem PI:
es gibt eine Distribution, die enorm viele alte Konsolen emuliert (z.B. Sega Master System, SNES, etc).
http://lifehacker.com/how-to-turn-your-raspberry-pi-into-a-retro-game-console-498561192
Datenträger lassen sich mit AutoFs ( https://wiki.debian.org/AutoFs ) automatisch mountern
Beste Grüße
Hab ich gleich mal eingetragen, die Sache mit dem USB-Stick wird jetzt über /etc/fstab geregelt, der soll ja dran bleiben.
Aloha! Schönes Ding, hier meine Lösung für den Autostart:
apt-get install supervisor
dann /etc/supervisor/config.d/btsync.conf anlegen und folgenden Inhalt nehmen:
[program:btsync]
command=/usr/bin/btsync --nodaemon --config /etc/btsync.conf
Da musst du dann noch anpassen wo das btsync-binary liegt (muss der volle, absolute Pfad sein) und bei der config den genauen Pfad dazu angeben.
Läuft das dann als normaler User und nicht als root?
@monoxyd In dem Fall als root, kannst du aber auch anders setzen. Einfach unter der Zeile “comand=…” noch “user=MEINTOLLERUSER” nehmen.
Dafür empfiehlt sich dann ein neuer User, dem auch der zu syncende Ordner gehört (http://www.cyberciti.biz/faq/howto-add-new-linux-user-account/).
Wenn du die config angelegt hast kannst du die über “supervisorctl reload” neu laden lassen, über “supervisorctl status” kriegst du den aktuellen Status aller Prozesse.
Ah, probier ich mal. Aber da kann ich ja auch einfach den normalen User nehmen, btsync ist sowieso das einzige, was da läuft.
Der pi-Nutzer hat allerdings sudo-Rechte -- d.h. wer den btsync-Service übernimmt kann dann (theoretisch) per sudo Dinge tun. Wenn der sudo nur mit Passwort geht wäre das aber soweit okayish 🙂
And here I was, thinking that it’s finished now. 😀
oho, der monoxyd hat die textadventures wiederentdeckt (irgendwann hast du mal behauptet, dass du aus prinzip nur guis benutzt 😉
im nexten level koenntest du dir natuerlich auch /etc/init.d/skeleton anschaun, und ein richtiges init-script coden, hehe
(aber ich wuerds so lassen, ich find hacks super, sorgt dafuer, dass das adventure nie endet)
Schönes Tutorial. Und dass man am PI keine feste IP eintragen muss, kann nicht oft genug wiederholt werden.
NOOBS mag ja nett sein, aber man kann den PI von Anfang an ohne Tastatur und Maus nutzen. Zumindest Raspbian, RaspBMC und Arch haben SSH am Start. Das ist umso praktischer, wenn man neben einem Monitor auch gar keine USB-Tastatur und -Maus mehr hat.
Great doc but you cud spare those purchase links with refs. Cheers
Stimmt.
@Bla: Das kann gut sein, aber für mich persönlich war die Transformation von “Der Rechner, den ich gerade hier an Ort und Stelle mit Tastatur und Bildschirm benutze” zu “Ding, dass irgendwo an das Netzwerk angeschlossen ist und fernbedient wird” eine wichtige Schwelle, die auch das Verständnis für Infrastrukturen gefördert hat. Ist halt einfach was anderes, als wenn man *nur* mit der Shell rumbastelt.
Was ich noch nicht verstehe: OwnCloud synct doch auch schon. Wofür dann noch BTSync?
(Zumal wir bei dieser Closed Source-Software BTSync nicht wissen können, was sie mit unseren Daten macht. Sitzen die nicht in den USA? Da kann die NSA sie doch zwingen, Hintertüren einzubauen …)
Hi Marcus,
sehr geiler Artikel. Richtig gut geschrieben. Was ich noch zusätzlich ändern würde ist, dass Du in dem Abschnitt: “Was ihr vorher braucht”, anstelle von “Raspberry Pi, die große Version” dies in “Raspberry Pi mit 512 MB Arbeitsspeicher” umänderst. So sollte das für AnfängerInnen ersichtlicher sein, welche Version gemeint ist und diese auch besser über Suchmaschinen finden können.
Gruß
und ein schönes Wochenende
Rob
@Weirdo: Weil ich Owncloud auch nicht so sehr über den Weg traue, dass ich der Software alle Daten geben möchte. Das ist eine PHP-Software auf einem Webserver -- also auch ein beliebter Angriffspunkt (zu dem Thema erscheint bald noch ein Podcast). Deswegen möchte ich da nur Dateien drin haben, die eh zum öffentlichen Teilen gedacht sind. Außerdem finde ich btsync zum sharen mit anderen Leuten praktischer.
@Rob: Mach ich, vielen Dank für den Hinweis.
Weil A moeglicherweise schlecht ist, muss B besser sein (ausserdem ist es praktisch), srsly? Gibts denn nix anderes was praktisch und vertrauenswuerdig ist und auf vielen Platformen laeuft?
@Norti: Ich verweise nochmal auf den Disclaimer des Artikels. Vielleicht existiert da draußen irgendwo eine Lösung, ich nehme Hinweise gerne an. Aber das ist das, was mir gerade passt und soweit ich weiß auch ein gutes Beispiel für “Was ist gerade machbar?” ist.
die frage ging ja auch nicht nur an dich, sondern alle anderen da draussen 🙂
Ok. Man weiß ja nie! 😀
Pingback: legal.hardcore.germoney 05.10.13 | monstropolis
Wo sollte man einen Raspberry Pi kaufen? Oder ist das egal bzw. bekommt überall den gleiche?
wenn du nur einen dropbox-ersatz haben moechtest und es gui-orientiert und schnell magst, solltest du dir seafile anschauen. das bringt einen eigenen kleinen vorkonfigurierten http-server mit (weniger arbeit fuer dich) und funktioniert auf dem raspi (auch auf der alten 256MB-Version) recht ordentlich.
@Nicolai: Schau ich mir mal an. Was mich an btsync auch fasziniert, ist die einfache Möglichkeit Ordner durch Teilen des “Secrets” zu sharen.
@Pima: Ist tatsächlich relativ egal, wo du den kaufst. Sollte halt nur der große sein (512 MB RAM, HDMI, Netzwerk). Und ich würde ein Gehäuse empfehlen, das Teil kommt ja tatsächlich einfach nur als bestückte Leiterplatte.
Toller Artikel!
Ich arbeite auch gerade an einem ähnlichen System, kann aber den Part mit dem Webinterface nicht verwenden.
In meinem Studentenheim bekomme ich zwar eine öffentliche, statische IP (dynDNS wäre also nicht einmal notwendig), jedoch sind alle Ports nach innen hin zu. (auch mit eingerichtetem Port-Forwarding)
Liest hier zufällig jemand mit, der dafür eine Lösung hat ?
@Jürgen: Ich glaube, das wird nichts…
(Ist auch verständlich, weil man die Ports ja unter mehreren hundert Teilnehmern verteilen müsste.) Da musste wohl nen LTE-Router anschließen. 🙂
Jürgen: das einfachste wäre wohl, mal mit deinem zuständigen Netzwerkadmin zu reden… oder aber (vorsicht Werbung), den raspi zur kostenlosen Colo nach österreich schicken: http://www.edis.at/de/server/colocation/oesterreich/raspberrypi/
@Nicolai: Hab mir mal Seafile angeschaut. Hauptkritikpunkt wäre da wohl, dass das Webinterface wohl nicht so wirklich brauchbar ist. Aber kann man auf jeden Fall auch im Auge behalten.
Vielen Dank für den Artikel!
Mich hat Dropbox schon länger geärgert, aber bis auf selbst hosten habe ich nie eine vernünftige Alternative gefunden. Dein Artikel hat mich dazu gebracht, einen pi zu bestellen und seit gestern rennt er.
Da ich schon einige Jahre ArchLinux verwende, habe ich mich für diese Distro entschieden. Wie schon Bla bemerkt hat, ist hier gleich SSH am Start, was mir entgegenkam. Außerdem ist es sehr schlank, da keine UI installiert ist usw., sondern nur das Nötigste.
Die Installation von bittorent sync ist unter Arch dank dem User Repo denkbar einfach, genau wie das automatische Starten über systemctl (ohne root ;-))
Siehe: https://wiki.archlinux.org/index.php/BitTorrent_Sync
Falls es jemanden interessiert, hier die Anleitung für die Einrichtung von Arch auf dem raspberry pi: http://elinux.org/ArchLinux_Install_Guide
Hooray \o/ … Vielen Dank für die Anleitung. Das hat hervorragend geklappt.
Zur Ergänzung: ich hab keine USB-Hub gebraucht.
Die Stromversorgung für den Pi kam vom USB-Port des Fernsehers. SD Karte rein, Netzwerk rein und eine alte Plastik-Apple-Tastatur über USB Port dran. Bildausgabe über HDMI. Das OS installiert, dann die Tastatur und den Fernseher abgestöpselt und den USB Stick rein. Den Rest dann über SSH erledigt.
Pingback: blog.fohrn.com | Wochenrückblick KW41/2013.
Pingback: Geschnetzeltes vom 20. 10. 2013 | stromzufuhr
Vielen Dank für die Anleitung. Ich konnte soweit alles nachvollziehen. Das ganze läuft jetzt auch. Nur stehe ich jetzt vor einem großen Problem. Wie binde ich Noob mein vorhandenes NAS ein? Ich würde gerne Ordner von meinem NAS sharen. Geht das? Und wenn ja wie?
Danke für die Hilfe
Holger
@Jürgen
Also bei mir hat es geklappt.
Ich hab meine IP-Adresse/owncloud als Adresse genommen und von innerhalb des Uni-Netzes ist es kein Problem darauf zu zugreifen.
Um von außerhalb darauf zu zugreifen brauchte ich nur den VPN-Client meiner Uni zu benutzten und ich kann alles machen.
Das einzige Problem ist man kann natürlich auch nur Links generieren die von innerhalb des Netzes benutzt werden können.
Ist zwar immernoch ne dumme Lösung aber so kann ich den Pi wenigstens eingeschränkt nutzen.
mfg
Marten
erstmal danke für die ausführliche Beschreibung!
Verstehe ich den Setup richtig? Jeder, der Zugang zum OwnCloud-Server hat, kann den ändern (“testuser” ist ja Admin)?
Hier ein ‘Pseudo-ASCII’ Schema, so wie ich die Beschreibung verstanden habe:
https://drive.google.com/a/pdrechsler.de/file/d/0B-pKzlq2SHzpMnlXazVoYVlJT0E/edit?usp=sharing
Sehr schöne Anleitung zur passenden Zeit. Danke Monoxyd.
Dem Eintrag in der /etc/rc.local, zum automatischen starten von btsync, kann man direkt einen User mitgeben unter dem btsync laufen soll:
su -c “/home//.btsync/btsync --config /home//.btsync/btsync.conf”
Gruß aus dem Ruhrpott
Timo
Das c&p vom Mac in das Replyfeld ist leicht buggy…
So soll es aussehen:
su -c “/home/user/.btsync/btsync --config /home/user/.btsync/btsync.conf” user
Hallo Monoxyd.
Ich hab gerade auch ein bisschen herumrecherchiert, welche SD Karte und USB Sticks denn in Frage kommen. Merkst du dabei einen besonderen Performanceeinbruch oder hast du damals eine besonders schnelle SD Karte bzw. schnellen USB Stick gekauft?
Magst du da vielleicht noch eine genaue Modellbezeichnung geben? Einfach als Erfahrungsweitergabe.
Das wären noch zwei sinnvolle Angaben.
Dankeschön.
Die Installation von Linux ist ja dann nicht mehr sooo das Problem. Da nehm ich wohl einfach Arch und gut ist. 😀
Grüße, Tobsen
@Tobsen: Ich hab tatsächlich einfach eine SD-Karte genommen, die rumlag und einen möglichst günstigen Stick bestellt. Ich glaube die Geschwindigkeiten sind da fast schon egal, da der eigentliche Flaschenhals der Pi bzw. der Upload des Internetanschlusses ist.
Gut, das macht durchaus Sinn.
Danke für die Antwort. 🙂
Aktuell gibt es übrigens beim Reichelt ein gutes Angebot:
Raspberry Pi
8 GB SD Card
Netzteil
WLAN Stick
Gehäuse --> allerdings musste ich da bei den USB Aussparungen das Messer nehmen und nachschnitzen.
für 59 Euro
http://www.reichelt.de/?ARTICLE=139250
Ist vielleicht ganz nett.
BTW: Monoxyd könntest du vielleicht mal ein Plugin zur Kommentarbenachrichtigung installieren? Das ist bei großen Posts mit vielen Kommentaren manchmal ganz nützlich.
http://blog.tobis-bu.de/2013/11/18/wordpress-kommentarbenachrichtigung-per-e-mail/
Sehr feine Anleitung. Ich bin noch nicht so weit. Aber gerade eben habe ich gesehen, dass das arkos.io volle Unterstützung gefunden hat. Das ist dann vielleicht noch eine elegantere Lösung als mit diesem OwnCloud-Dingens.
Wie schnell ist denn dein Cloud-Speicher eigentlich, wenn man von außerhalb darauf zugreift? Bist Du mit der Geschwindigkeit zufrieden?
Das Webinterface von Owncloud lädt beim ersten Aufruf ein bisschen langsamer als die Dropbox (Weil die erste Anforderung erstmal DynDNS -> FritzBox -> Pi aktivieren muss?), aber der Download von Dateien ist signifikant schneller als bei Dropbox (Ich hänge an einem VDLS 50).
Arkos beobachte ich auch, sobald das fertig ist wird das getestet. Dann kann ich vielleicht wirklich diesen Artikel durch einen Link ersetzen. 🙂
Sehr schöne Anleitung, danke dafür!
Kleiner Fehler der mir beim durchschauen auffiel:
“Damit wir in den Genuß dieser Automatisierung kommen, müssen wir erst Github installieren und dann ein Skript herunterladen und ausführen.”
^- Du installierst hier natürlich git, nicht Github 🙂
»Weil die erste Anforderung erstmal DynDNS -> FritzBox -> Pi aktivieren muss?«
Wie muss man das verstehen? Fährt der RasPi dann erst hoch? Oder braucht einfach der DynDNS-Server mit Fritz ein wenig Zeit. Welchen DynDNS-Service nutzt Du denn?
Ich hab es nicht genau nachvollzogen, aber ich vermute tatsächlich, dass der erste DNS-Abruf pro Zeiteinheit (Tag?) erstmal ein Nachschlagen ist, wo denn jetzt eigentlich gerade die IP ist.
Ich habe als Webhoster all-inkl.com und in meinem Paket (Privat Plus) ist ein DnyDNS-Servive enthalten.
Hallo,
vielen Dank für deine tolle Anleitung!
Hab alles so gemacht und es funktioniert auch alles.
Hab allerdings eine Frage -- wieso brauchst du unbedingt btsync?
OwnCloud reicht doch eigentlich für den Dropbox Ersatz, oder täusche ich mich da?
Grüße Michael
Sehr schön, dass es geklappt hat!
Es gibt zwei Gründe für btsync:
1.) Lust am Basteln.
2.) Owncloud ist ein PHP-Webservice, dass heisst die darin befindlichen Dateien sind kompromittiert, wenn nur eine von drei Softwares gehackt wird: Der Webserver, PHP oder Owncloud. Bei btsync ist es nur eine. So habe ich eine klare Trennung zwischen ganz privaten Dateien (die ich auch noch mal extra verschlüssele) und solchen, die ich teilen will.
3.) Torrent ist schneller. 🙂
Ja, das ist auch der einzige kritische Punkt.
Kann man die Sicherheit des Webservers verbessern? Ich hab schon gesucht, aber wenig gefunden. Wie gut ist der nginx, welchen ich durch das Skript installiert habe geschützt? Lässt sich ein Passwort ändern? Lässt sich eine IP sperren, wenn der Zugriff häufig erfolglos ausgeführt wird?
Für meine Zwecke ist Owncloud besser als BTSync geeignet, da ich nicht alle Dateien kopiert haben will, sondern nur auf Abruf bekommen möchte.
Ich hab neben Owncloud auf https nun auch einen weiteren Ordner im www Verzeichnis erstellt, welcher mittels http abgerufen wird. Ist dadurch eine Schwachstelle entstanden oder ändert dies nichts?