Wiki für Smart Home Hardware

FHEM ist ein freies Projekt welches sich mit einer Server-Lösung auf Perl-Basis zur Verwaltung und Steuerung eines Smart Home beschäftigt. Ich persönlich bevorzuge für diesen Zweck die Lösung Home Assistant. Trotzdem ist neben dem eigentlichen Projekt die FHEM Wiki sehr interessant.

Die FHEM Wiki

Dort findet man neben den eigentlichen Informationen über FHEM, viele Informationen rund um Smart Home Hardware, wie z.B. verschiedenen Aktoren und Sensoren. Die Inhalte der Wiki sind unter der GNU Free Documentation License lizenziert. Entdeckt werden kann die Wiki unter wiki.fhem.de, das zugrundeliegende Projekt ist auf fhem.de zu finden.

Server gebraucht kaufen

Ab und an baue ich mir einen Server für den Heimgebrauch zusammen. Dieser muss dabei nicht frisch vom Band kommen, sondern kann durchaus gebraucht sein. Natürlich hat man beim privaten Gebrauchtkauf dass Problem das man nicht ganz genau weiß was man bekommt.

Einer der Server der Serverschmiede

Die Vorteile des Gebrauchtkaufes, ohne die meisten der Nachteile bietet der Händler Serverschmiede.com GmbH, dessen Webseite unter der gleichnamigen Domain serverschmiede.com zu finden ist. Dort werden aufgearbeitete Server und deren Komponenten angeboten und kann sich so schnell einen Server zusammenstellen, der preislich wesentlich unter dem Neupreis liegt. Daneben erhält man auf Wunsch eine bis zu 36-monatige Garantie. Für den Hausgebrauch und die eine oder andere Firma ist dies sicherlich eine gangbare Alternative zu einem Neukauf.

SSH mit mehreren Schlüsseln nutzen

Normalerweise erzeugt man einen privaten und einen öffentlichen Teil seines SSH-Schlüssels, hinterlegt den öffentlichen Teil auf den entsprechenden Servern und loggt sich mit diesen dort ein. Nun kann es aber durchaus vorkommen, dass man mit unterschiedlichen Schlüsselpaaren arbeiten muss um sich auf verschiedenen Servern einzuloggen. Zur Lösung dieses Problems existieren zwei Herangehensweisen, welche beide mit der SSH-Konfigurationsdatei arbeiten. Die Konfigurationsdatei ist im Home-Verzeichnis der Nutzers unter .ssh/config zu finden ist. Bei der ersten Möglichkeit werden die entsprechenden Schlüssel in der Konfigurationsdatei hinterlegt:

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_production
IdentityFile ~/.ssh/id_rsa_test
IdentityFile ~/.ssh/id_rsa_integration

Damit werden bei einem Login auf einem Server die Schlüssel der Reihe nach durchprobiert. Bei der zweiten Möglichkeit wird ein Host pro Server konfiguriert:

Host production production.example.com
    HostName production.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_production
    

Host test test.example.com
    HostName test.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_test

Host integration integration.example.com
    HostName integration.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_integration

In der Konfiguration des Hosts befinden sich neben dem Host auch die zu nutzende Schlüsseldatei. Als weiteren Vorteil kann man die SSH-Verbindung nun über den definierten Kurznamen aufrufen:

ssh production

Dabei wird die Verbindung mit der definierten Schlüsseldatei aufgebaut, so dass ein durchprobieren der unterschiedlichen Schlüssel vermieden wird.

Nethack-Server im Browser

Nethack, einer der Klassiker des Roguelike, spielt man normalerweise im Terminal. Doch das muss nicht so sein, wenn man sich eines Nethack-Servers bedient. Einer der bekannteren Nethack-Server ist der alt.org Server. Der Server bietet unterschiedliche Nethack-Versionen und die Terminal-Emulation läuft komplett im Browser. Nach der Registrierung, kann man nicht nur auf dem Server spielen, sondern auch anderen Spielern beim Spiel zuschauen.

Nethack auf alt.org/nethack/

Neben dem Spiel im Browser bietet der Server noch einen anderen Vorteil – die sogenannten Bones files. Stirbt ein Spieler, so kann es passieren das die aktuelle Ebene, mitsamt seines Skelettes und seines Inventars in einem Bone file gespeichert wird. Wenn man nun spielt, betritt man ab und an ein solches Bone file und findet die Hinterlassenschaften eines anderen Spielers. So kommt ein wenig Multiplayer-Gefühl im Singleplayer-Nethack auf.

Gogs hinter einem Reverse Proxy betreiben

Gogs ist ein Git-Service welcher eine ähnliche Funktionalität wie der bekannte Dienst GitHub zur Verfügung stellt. Standardmäßig läuft der Dienst auf dem Port 3000. Möchte man ihn über die normalen Ports für HTTP (80) bzw. HTTPS (443) erreichbar machen, kann man hierfür einen Reverse Proxy nutzen. Dafür eignen würde sich zum Beispiel Nginx, der im ersten Schritt auf dem Server installiert werden muss:

apt-get install nginx

Anschließend wird die Konfiguration angelegt:

nano /etc/nginx/sites-available/example

In diesem Fall befasst sich die Konfiguration mit der verschlüsselten Kommunikation per HTTPS und der Weiterleitung von unverschlüsselten Verbindung in Richtung der verschlüsselten Verbindung.

server {
        listen 80;
        listen [::]:80;

        server_name example.com;

        return 301 https://$host$request_uri$is_args$args;
}

server {
    listen 443;
    listen [::]:443 default_server;

    ssl on;
    ssl_certificate        /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;

    server_name example.com;

    client_max_body_size 500m;

    location / {
        proxy_pass https://localhost:3000;
    }
}

Nachdem die Konfiguration für Nginx hinterlegt ist, wird die Standardkonfiguration entfernt und ein symbolischer Link für die neue Konfiguration erstellt. Anschließend wird Nginx neugestartet, damit die geänderte Konfiguration wirksam wird:

rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
service nginx restart

Nach der Anpassung der Nginx-Konfiguration, muss die app.ini (sie befindet sich im gogs/custom/conf/ Ordner) von Gogs angepasst werden und dort die neue ROOT_URL ohne zusätzlichen Port angegeben werden. Anschließend kann auf Wunsch, per Firewall, der Port 3000 für Zugriffe von außen gesperrt werden.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://seeseekey.net/archive/118039