BigBrother | ||
---|---|---|
Typ | Raspberry Pi | |
Betriebsystem | Debian | |
Zubehör | keines | |
Hersteller Webseite | virtualbrother | |
Wikipedia | unbekannt | |
Besitzer | C3MA |
BigBrother
Virtuelle Machine auf Rechenmaschinen/virtualbrother
System
Netzwerk Schnittstelle
IP-Adresse auf folgendes setzen:
auto ens18 iface ens18 inet static address 10.23.42.10 netmask 255.255.254.0 gateway 10.23.42.1
Dienste
Mosqiutto
Folgender Anleitung folgen: http://mosquitto.org/2013/01/mosquitto-debian-repository/
Bridge
Mit einer Brücke werden alle Informationen auf einen Server in unserer Internet-Infrastruktur gespiegelt.
Konfiguration
Datei: /etc/mosquitto/conf.d/bridge.conf
connection bridge-c3ma-room address $SERVER_DNS_NAME topic /# out cleansession true remote_username $SUPER_GEHEIMER_BENUTZER remote_password $SUPER_GEHEIMES_PASSWORT bridge_cafile /tmp/mosquitto/ca-certificates.crt bridge_insecure false
Service
Zum Start müssen immer die passenden Zertifikate heruntergeladen werden:
ExecStartPre=/home/pi/admin/updateSSLmqtt.sh
systemctrl edit mosquitto.service
Und folgendes hinzufügen
### Anything between here and the comment below will become the new contents of the file [Service] ExecStartPre=/home/c3ma/admin/updateSSLmqtt.sh ### Lines below this comment will be discarded
Zertifikat
#!/bin/bash tmpRamDisk=/data/ramdisk/mosquitto /bin/echo "Update Certificate $(date)" > $tmpRamDisk/SSLmqtt.log /bin/echo -n | openssl s_client -connect $SERVER_DNS_NAME:443 2>> $tmpRamDisk/SSLmqtt.log | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $tmpRamDisk/cert.pem while [ $(date +%Y) -lt 2022 ]; do sleep 5 echo "Year is $(date +%Y)" >> $tmpRamDisk/SSLmqtt.log done /usr/bin/wget --quiet -O $tmpRamDisk/lets-encrypt.pem https://letsencrypt.org/certs/lets-encrypt-r3.pem >> $tmpRamDisk/SSLmqtt.log /usr/bin/wget --quiet -O $tmpRamDisk/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem >> $tmpRamDisk/SSLmqtt.log # https://serverfault.com/questions/476576/how-to-combine-various-certificates-into-single-pem /bin/cat $tmpRamDisk/cert.pem $tmpRamDisk/lets-encrypt.pem $tmpRamDisk/isrgrootx1.pem > $tmpRamDisk/ca-certificates.crt exit 0
Webserver
- nginx
Folgenden Teil der ConfigurationsDatei aktualisieren:
server { listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /tmp/www;
Der Log-Ordner muss bei jedem Start im Temp-Dateisystem angelegt werden. Dazu folgende Zeilen in /etc/rc.local einfügen: (Vor dem exit 0)
mkdir /var/log/nginx/ chown www-data /var/log/nginx/
Raum Status
Der Raumstatus besteht aus Bash-Skripten. Diese bnötigen folgende Pakete:
- mosquitto-clients
- rrdtool
Der Raumstatus ist unter /home/c3ma/raumdaemon/ zu finden. Um auf die Temperatur zuzugreifen muss query-rs485 installiert werden (siehe /home/c3ma/query-rs485).
Rechte
/sbin/usermod -a -G dialout c3ma
Dienst
In cron installieren und alle 3 Minuten für neue Werte sorgen:
*/3 * * * * cd /home/c3ma/raumdaemon/ && ./raumstatus_update.sh &> /dev/null