und von Innen:
Online: http://masterbit.net
Vorab: Ich habe weder ein SSL-Zertifikat noch sonstwas und bin auch zu faul und geizig, mir eins zu besorgen. Warum auch, ich habe keine wirklich wichtigen Daten da drauf....darum nur http, ohne s. :)
Er macht jeden Tag ein Backup (remove and copy) und ein Sync (ohne remove, nur neue/geänderte Dateien) auf die Festplatte und zeigt die aktuelle Uhrzeit, Datum, die Startzeit und die Laufzeit des Servers an. Wie du siehst läuft meiner seit 3 Monaten ohne Unterbruch. :)
Die Zahl in der Mitte der Uhr zeigt an, wieviele Minuten es noch dauert, bis das Display einen kompletten Refresh macht. Ich habe dies auf 10 Minuten eingestellt.
Hardware
- 1x Raspberry Pi 3 B: https://www.pi-shop.ch/raspberry-pi-3-model-b
- 1x SD-Karte. Die Festplatte wird bei mir ausschliesslich als Backup benutzt! Darauf achten, dass du genug Platz auf der Karte für deinen Scheiss hast. :) Ich lade nicht "all zu viel" hoch, also reicht die kleinste 16GB für mich noch. Es sind dann trotzdem schon ein paar GB mit all den Fotos und so...
- 1x WaveShare 2.9 Inch E-Ink Display: https://www.pi-shop.ch/2-9inch-e-ink-display-module
- 1x 4 Port USB Billigstware OHNE Extrastrom: zB. https://www.distrelec.ch/de/usb-hub-port-usb-buchse-nedis-uhubu2400bk/p/30132299
Hier darauf achten, dass es ein relativ flacher Aufbau ist. Wird auseinander genommen. - 1x Raspberry Strom (5V). MUSS mindestens 2 Ampere haben. Darum auch der USB-Hub.
https://www.pi-shop.ch/steckernetzteil-microusb-5v-25a
Ich habe ein herumliegendes Netzteil mit abnehmbarem Stecker genommen.
Da habe ich den Stecker mit einem Kabel verklemmt, welches aus der Box heraus kommt. Das ist nur zur Verschönerung (kleiner Stecker am Strom) und hat keinen wirklichen praktischen Nutzen. - 1x generische, möglichst flache externe Festplatte mit USB.
- 1x Tabakbox: (diese) https://www.zigarren-online.ch/camacho-corojo-figurado.html
(Gratis geholt im Tabakladen) - 4 Kabelklemmen: [foto]
- Ein paar Kabel.
- M3 Schrauben, Muttern und Unterlegscheiben.
- Befestigung für die Festplatte: Ich habe Klettband-Klebstreifen genommen.
Zusammenbau
Der USB-Hub muss auseinander genommen werden. Dann wird ein Kabel an die 5V und GND Leitungen des Hubs gelötet, also bei einem USB-Stecker, an den Lötstellen.An dieser Leitung wird die Festplatte eingesteckt. Ich weiss nicht, ob der Strom sich an die anderen Leitungen verteilt, darum die Festplatte lieber gleich am richtigen Teil anschliessen.
Das Kabel vom Netzteil wird am Ende, also möglichst nah am KLEINEN Stecker durchgetrennt. ACHTUNG: Noch ein bisschen Kabel am Stecker lassen, dieser wird dann ins Raspi gesteckt.
Wie schon erwähnt, werden die neuen Kabel am USB-Hub direkt an den Strom vom Adapter angeschlossen. Das ist mit den Kabelklemmen bewerkstelligt: Die Eine ist am kleinen Kabel vom Raspi und geht dann auf die andere, wo noch dazu der Strom vom Hub rein kommt. Diese geht dann an den Stromadapter.
Der Bildschirm wird folgendermassen am Raspi eingesteckt:
Die Kabel haben diese Farben. |
Das ganze Zeug irgendwie in die Box reinpassen, Loch für den Bildschirm machen, etc...ich hab das nicht wirklich schön gemacht (hinbekommen) sondern einfach so, dass es geht. Siehe Loch vom Bildschirm... :)
Software
System
Ich benutze Raspian Stretch Lite, also ohne Desktop. Meistens bin ich mit SSH (also remote, von meinem PC aus) drinne, da brauchts keinen Desktop.Dieses wird mit Balena Etcher auf die SD-Karte geflasht.
Danach die SD-Karte in den Raspi stopfen, LAN-Kabel, Tastatur, Maus, Bildschirm für die Erstinstallation und angeschaltert...
(Noch OHNE USB-Platte zur Sicherheit)
Login:
pi / raspberrz
(y und z sind erstmal vertauscht auf der deutschen Tastatur)Erstmal konfigurieren:
sudo raspi-config
sudo heisst
superuser do
und wird fast immer benötigt, wenn man am System rumbastelt.Ein Menü öffnet sich. Wir ändern erstmal das Passwort (Change User Password)
Danach stellen wir die Netzwerkoptionen ein: 2->N1 Hostname: Gib einen Namen für deinen Raspi ein.
Die Sprache sollte auch eingestellt werden, damit man nicht immer mühsam z mit y verwechseln muss.
- 4-> I1 Change Locale -> de.CH.UTF8 -> (nochmal auswählen)
- 4-> I2 Change Timezone -> Berlin
- 4-> I3 Change Keyboard Layout -> [ENTER] -> Other -> German (Switzerland) -> Erster Eintrag, default Setting, No Compose Key (immer schön Enter drücken :) )
- 4-> I4 Change WiFi Country -> Switzerland
- 5-> P2 SSH -> enable
- 5-> P4 SPI -> enable
- 7-> A1 Expand Filesystem (beim ersten Start hat der Raspi das eh schon gemacht, dies ist nur nochmal zur Sicherheit.
- 7-> A3 Memory Split -> zB: 16Mb : Hier wird der Grafikspeicher aufs Minimum beschränkt, da nicht wirklich gebraucht. Ich nehme trotzdem 16MB statt 8, zur Sicherheit.
Schliesslich wird noch git installiert:
erstmal
sudo apt-get update
um die Paketliste zu erneuern. Git:
sudo apt-get install git
Die Backup-Platte
Ausschalten, die Festplatte an den USB-Hub und diesen an den Raspi dran und neu starten. Der Hub braucht ab jetzt auch Strom! (Nicht vergessen, die Kabel zu verbinden)Um eine "normale" NTFS-Platte anzusprechen braucht es eventuell noch ntfs-3g:
sudo apt-get install ntfs-3g
Erstmal erstellen wir einen Pfad, wo die Festplatte herein gemountet wird:
sudo mkdir /media/backupDrive
Mit
sudo blkid
werden die Labels und Partition-IDs der angeschlossenen Speichermedien angezeigt. Hier die UUID
der Festplatte abschreiben.Diese muss in fstab eingetragen werden:
sudo nano /etc/fstab
Hier eine neue Zeile machen mit:
UUID=DEINEUUID /media/backupDrive ntfs auto,nofail,sync,users,rw
Mit
Ctrl-O
speichern und mit Ctrl-X
beenden. (Ctrl = Strg)Check:
sudo mount -a
oder lsblk
Wenn die Festplatte auch nach einem Neustart hier ist, ist alles richtig.
Der Webserver
Falls noch nicht gemacht:sudo apt-get update
sudo apt-get upgrade -y
Wir haben ein Script im Hintergrund, welches den Bildschirm steuert. Um es im Hintergrund laufen zu lassen, braucht es
screen
.sudo apt-get install screen
Ein Webserver braucht natürlicherweise einen Webserver. Ich nutze Apache, weil der Indianer sich bewährt hat. Nginx kenne ich nicht.
sudo apt-get install apache2
Wenn der Server läuft, ist das Standard-Webverzeichnis in:
/var/www/html
Nun wechseln wir ins Homeverzeichnis und installieren meine Scripts:
cd ~
git clone https://github.com/ben0bi/ServerScripts.git
Installation des Backup-Scripts
Das Backup-Script sollte jeden Tag um eine bestimmte Zeit ausgeführt werden.Dazu können wir
cronjobs
gebrauchen, welche in der crontab
eingefügt werden.Eventuell muss das BackupScript noch ausführbar gemacht werden:
sudo chmod +x /home/pi/ServerScripts/BackupScript.sh
sudo crontab -e
Dort dann auf eine neue Linie:
30 9 * * * /home/pi/ServerScripts/BackupScript.sh
Mit
Ctrl-O
speichern und mit Ctrl-X
verlassen.Damit wird jeden Tag um 9.30 morgens ein Backup gemacht. Du kannst natürlich auch eine andere Zeit einstellen.
Installation des Displays
Das Display benötigt python und einige Bibliotheken dafür. Bibliotheken für python können mit pip installiert werden.sudo apt-get install python python-pip
Dann brauchen wir noch eine SPI-Bibliothek
spidev
, eine Bildbearbeitungsbibliothek pillow
und dazu eine jpeg-Bibliothek libjpeg-dev
. Irgendwas braucht noch die python-requests
, also wird das auch installiert.sudo apt-get install spidev libjpeg-dev pillow python-requests
Nun muss das Display nur noch bei jedem Neustart gestartet und beschrieben werden. Da jede Minute ein Bild upgedatet wird, läuft das ganze über
screen
.sudo nano /etc/rc.local
Und dort dann auf eine neue Zeile:
/home/pi/SeverScripts/screen.sh
Noch einmal
Ctrl-O
und Ctrl-X
benutzen.Eventuell muss screen.sh auch ge-chmode-d werden, siehe oben.
Ich hoffe mal es läuft. Bei mir gehts. :)
Das wars, stopf nun dein Webverzeichnis mit Zeug voll, mach den Server erreichbar etc. Da musste selber guggen, ich hab DynDNS vom Router "geschenkt" bekommen. (D-Link rockt :) )
Viel Spass damit. PHP und all den anderen Mist musst du selbst gucken...ich brauch zum Beispiel KEIN SQL mehr...Darum habe ich diesen Krempel auch nicht "explizit" mit-installiert.
Viel Spass beim Ausprobieren.
Statt sudo apt-get install pillow spidev
AntwortenLöschenMuss da stehen:
sudo apt-get install pip
sudo pip install spidev
sudo pip install pillow