Nightscout selbst aufsetzen und hosten

  • Wozu die Links dideldum ? Man kann mit git checkout [Commit-ID] ja jederzeit zurück auf eine alte Version.

    Und ja, das npm-Update ist von Zeit zu Zeit nötig.

    Link umsetzen geht einfach ganz schnell und schon laufen meine beiden Instanzen wieder. Hatte schon mehrmals das Problem, dass Nightscout Updates sich nicht mit Libraries, der Mongo-Version oder irgendwelchen von npm install installierten Paket-Versionen vertrugen. Dann habe ich den Link erstmal schnell wieder zurückgebogen und hatte Zeit für die Problem-Analyse.

  • Ich finde es geht mit git einfacher.


    Aktuellen Stand merken:

    git rev-parse --short HEAD | tee old_hash.txt


    Zum updaten:

    git pull

    git checkout master


    Zum zurück gehen:

    git checkout $(cat ./old_hash.txt)

  • Hubi Link umsetzen geht garantiert schneller als das von dir beschriebene Procedere. Und außerdem will ich ja letztendlich die neuere Version zum Laufen bekommen. Das heißt, ich muss die neuere Version verfügbar haben und dort im Verzeichnis arbeiten können. Dabei will ich aber gleichzeitig die alte Version haben, um sie entweder sogar in der Zeit laufen zu lassen oder zumindest schnell wieder zurückzuschalten, ohne meine Arbeit im aktuellen Verzeichnis zu verlieren. Das geht natürlich mit git, aber sehr viel umständlicher und zeitraubender als mit dem schnell geänderten Link.

  • Hier ist die Installation Anleitung wonach ich den Pi aufgesetzt habe.


    Falls irgendetwas nach einem update daneben geht, schreib ich einfach mein Acronis Backup zurück auf die SSD.

  • Hier ist die Installation Anleitung wonach ich den Pi aufgesetzt habe.


    Falls irgendetwas nach einem update daneben geht, schreib ich einfach mein Acronis Backup zurück auf die SSD.

    Da du schon einen Symlink hast, kannst du wie dideldum beschrieben hat vorggehen.

    Zip runterladen, entpacken, und per ln auf nightscout linken: sudo ln -s cgm-remote-monitor-XX.X.X nightscout

  • Off topic.


    Ich so neidisch, euch hier zu lesen. 2009 bis 2012 hatte ich einen Linux Server in China am Laufen. In meiner Wohnung. 2012 lag ich dann in Handschellen auf dem Boden meines Wohnzimmers.

    Seither wohne ich ohne Server.

    Ferien vom Forum. Wuensche allen Siechen alles Gute!;)

  • Meine Datenbank, liegt bei Heroku, ist bei 57.3 MiB von 500 MiB, nach einem Jahr Benutzung. Ausgefallen ist der Dienst nicht einmal, seit dem ich habe dran rumgespielt.

    Habe nun auf meinem Pi4 nach 26 Monaten eine Datenbankgröße von 135 MB, auf einer 128GB SSD

    Bin voll zufrieden und läuft bis jetzt alles ohne Ausfälle :laub

  • ich bin bei 1061 MB mit iAPS (das scheint relativ viel zu Speichern), eine weitere Instanz mit AAPS hat nur die Hälfte

    █══════████████████────────
    puɐʇsɟdoʞ uǝuıǝ ǝpɐɹǝƃ ʇɥɔɐɯ 'uuɐʞ uǝsǝl sɐp ɹǝʍ シ

  • Moin,

    ich habe jetzt meine Nighscout-Installation auf mein Synology-NAS portiert. Leider hat mein Synology-NAS keine Docker-Integration (weil es die ARM64-Version und nicht die Intel-Version ist) - daher musste ich etwas basteln.


    Nightscout auf Synology (Polnisch) --> Mit Browser-Übersetzung, da ich kein Polnisch spreche --> die wollte ich eigentlich befolgen, geht aber nur bei Intel also basteln ...

    Schritt 1: Docker auf Synology mit AARCH64 installieren:

    Folgendes Script verwendet:

    Docker auf Synology mit ARM64 (AARCH64)--> Docker auf AARCH64


    Achtung - folgendes benutzt:
    Use DOCKER_DIR=/volume1/docker

    Check permissions: users and groups of docker folder again.


    Gab ein paar Probleme und habe dann auch hier weiteres Troubleshooting durchgeführt:

    Docker auf Synology mit ARM64


    Damit ließ sich Docker auf dem Synology installieren.


    Schritt 2: Portainer


    Als ich Docker installiert hatte, habe ich Portainer installiert - als Docker-Image:

    Code
    sudo docker run -d --network=host -v "/run/docker.sock:/var/run/docker.sock" portainer/portainer:linux-arm64 --restart-always

    Achtung - auf Synology geht nur der network-host Mode. Das heißt keine Netzwerk-Virtualisierung (Bridge), sondern alle Ports laufen direkt auf dem Host.


    Diese Anleitung: Schritt 6: Portainer Setup - mit dem Link von dadrüber funktionierte bei mir. Damit konnte Portainer aufgesetzt werden.


    Schritt 3: Mit Portainer die Docker-Images installieren:


    Dann wieder zurück zur Polnischen Anleitung mit Übersetzung Nightscout auf Synology (Polnisch)

    In der Englischen Übersetzung heißt es: Configuring Portainer --> ab hier geht es weiter.


    Es wird ein Configuration file erstellt, welches dann im Portainer Web-Editor gestartet wird. Diese hat bei mir so nicht funktioniert und musste angepasst werden. Network-Modus, neue APIs der Software, ARM-Mongo unterstützt nur bis MongoDB 4.4.18 ...


    Passwörter entsprechen anpassen.


    Achtung, beim ersten installieren der mOngoDB oben, gibt es noch keine Nighscout-Datenbank - ich wollte nicht die admin-Datenbank direkt benutzen.
    Daher musste ich nach dem ersten Installieren dieser drei Docker in den mongo_db-docker rein -> das geht gut aus dem Portainer durch drücken des Console-Button beim Container.


    In der MongoDB-Container-Konsole:

    Was passiert hier: In Mongo rein, die Amin DB öffnen, sich dort als root authentisieren, dann die Datenbank nightscout anlegen und reinwechseln, und dann dort einen User für die nighscout DB anlegen.
    Passwörter die oben angepasst worden sind, müssen genauso angepasst werden.


    Um jetzt auf den Server zugreifen zu können, muss noch ein Reverse Web Proxy installiert werden, Dier funktionier bei Synology folgendermaßen:

    Reverse Web Proxy für Nightscout

    --> natürlich nur bis hier: "Setting up Docker and Nightscout" --> das haben wir ja oben schon gemacht,


    Achtung:

    Bei mir hat der Webserver nicht funktioniert. Daher habe ich die Zertifikateserstellung von Synology übernommen und teile die mit Nighscout, so dass NS selber die Zertifikate benutzen kann.

    Daher muss dieser Code in dem Quellcode oben:

    Code
    - INSECURE_USE_HTTP=true

    durch folgenden ersetzt werden - bzw ein neuer Eintrag für Volumes muss angelegt werden und im environment muss true zu false und drei Zeilen müssne eingefügt werden:

    Code
    volumes:
    - "/usr/syno/etc/certificate/ReverseProxy/komischelangenummerdiebeijedemandersist:/certificate"
    ...
    environment:
    ...
    - INSECURE_USE_HTTP=false
    - SSL_KEY="/certificate/RSA-privkey.pem"
    - SSL_CERT="/certificate/RSA-fullchain.pem"
    - SSL_CA="/certificate/RSA-cert.pem"

    Die komischelangenummerdiebeijedemandersist muss erst herausgefunden werden. Dazu muss man als root im Dateisystemherumsuchen. Ich habe dafür den Midnightcommander genommen und den als sudo ausgeführt (sudo mc). Dort findet man den in /usr/syno/etc/certificate/ReverseProxy/


    Gleichzeitig muss dieses Verzeichnis Zugriff vom Docker-Container bekommen:

    Code
    sudo chmod 755 komischelangenummerdiebeijedemandersist

    Durch die Volume-Zeile wird dieses Verzeichnis dann in den Dockercontainer reingemounted und Nightcout kann drauf zugreifen. Im Dockercontainer heißt das Verzeichnis /certificate --> das verwende ich dann in der Konfiguration für SSL_KEY, SSL_CERT und SSL_CA.



    Hinwei: Immer wenn man die Konfigurationsdatei anpassen möchte, kann man im Portainer-Stack in den Editor wechseln und die Änderungen dort eintragen und auf Deploy drücken. Danach muss man noch die Container alle (oder die entsprechenden die verändert worden sind) markieren und auf Restart drücken - nachdem Neustart sollte es funktionieren.


    Man kann direkt die Logs anschauen mit dem Log-Button und in den Container reinspringen mit dem Console-Button.


    Schönen Gruß
    ovinator

  • Ich habe hier auf meinen Proxmox ein Ubuntu 22.04.4 LTS, bekommt man die aktuelle Version irgendwie installiert? scheitere an den vielen Abhängigkeiten. Gibt es vorgaben welche Node und NPM Version man nutzen sollte?


    Auch habe ich das problem das der OS Typ auf "Linux" steht und "Darwin" erwartet wird.


    npm audit fix und npm audit fix --force bringen nichts.


    █══════████████████────────
    puɐʇsɟdoʞ uǝuıǝ ǝpɐɹǝƃ ʇɥɔɐɯ 'uuɐʞ uǝsǝl sɐp ɹǝʍ シ

  • ich weiß, nur wie ändere ich das?



    Ein Frage:

    Kann ich den Build an einem Mac bauen und darüber kopieren oder ist das nicht möglich?

    █══════████████████────────
    puɐʇsɟdoʞ uǝuıǝ ǝpɐɹǝƃ ʇɥɔɐɯ 'uuɐʞ uǝsǝl sɐp ɹǝʍ シ

  • Servus,

    ich bin ein völlig naiver Anfänger. Ich nutze Nightscout zu analysieren, nicht zum Loopen o.ä. Brauche also keinen sekündlichen Datenaustausch.

    Derzeit habe ich Nightscout über das (halb-) automatische Prozedere von Navid Fo am Laufen.

    Ich würde es aber lieber selbst hosten. In meiner naiven Vorstellung schließe ich eine USB-Festplatte (später vielleicht Mal ein "richtiges" NAS) , auf der Nightscout und die Datenbank liegt, an meine Fritz.Box, bringe sie ins Internet und - Go. Habe ich Hardware-seitig etwas übersehen?

    Dass man da einiges installieren und einstellen muss, ist klar. Eine Anleitung, die mir das o.g. Vorgehen von Anfang an aufzeigt, habe ich nicht gefunden.

    Könnt ihr mir helfen?

  • Ich würde es aber lieber selbst hosten. In meiner naiven Vorstellung schließe ich eine USB-Festplatte (später vielleicht Mal ein "richtiges" NAS) , auf der Nightscout und die Datenbank liegt, an meine Fritz.Box, bringe sie ins Internet und - Go. Habe ich Hardware-seitig etwas übersehen?

    Dass man da einiges installieren und einstellen muss, ist klar. Eine Anleitung, die mir das o.g. Vorgehen von Anfang an aufzeigt, habe ich nicht gefunden.

    Wenn du selbst hosten willst kannst du z.B. einen Raspberry und Docker nehmen. Das macht es einfacher und die nötigen Einstellungen sind minimal.

    Hier ist z.B. ein Docker-Compose YAML: https://github.com/nightscout/…master/docker-compose.yml

    Unter nightscout: -> environment: kannst du dann die ganzen Nightscout-Variablen einstellen die du willst.

  • Danke für deine Antwort. Selbst das klingt schon "zu hoch" für mich. Wir müssen da grundliegender starten. :D Daher ja auch meine Hardware-Eingangsfrage oben. Nochmal: Ich bin davon ausgegangen, dass ich mir eine Festplatte nehme, dort Nightscout und sämtliche notwendige Software draufspiele und das Ding ins Netz bringe. Aber du sagst, ich benötige einen "Computer" (Raspberry) dahinter, der "Dinge" macht?

  • Ja, du bauchst eine Art Computer Hobbit . Das kann ein PC, Laptop oder Raspberry mit Linux sein, wo du nightscout direkt drauf laufen lässt oder eben ein PC / Laptop / Raspberry mit Linux und Docker als Zwischenschicht. Docker ist dafür gedacht dass du nur noch Module die du brauchst "zusammen steckst" statt sie direkt installieren und einrichten zu müssen. Da kommen dann die Rezepte für Docker Compose ins Spiel. Da steht drin was du brauchst (im obigen Beispiel die Pakete für Nightscout selbst und Mongo-DB) und die Einstellungen dazu.

    Es gibt auch NAS-Laufwerke die Docker Container laufen lassen können (Synology z.B.).

    Was als Problem bleibt, wenn du selbst hostest und der Computer zuhause steht ist deine sich täglich ändernde IP (das kann man mit DynDNS lösen) und die nötige Port-Freigabe an deinem Router. Innerhalb von deinem Heimnetz musst du das aber nicht beachten, da gehts auch ohne.

  • Kurz geantwortet: ne angesteckte Festplatte an der Fritz Box reicht nicht.

    Da wird mehr Rechenleistung benötigt.

  • Da wird mehr Rechenleistung benötigt.

    Das hat gar nichts mit Rechenleistung zu tun.


    Für Nightscout braucht man viele Komponenten: Eine Datenbank (mongodb), eine Server-seitige Javascript-Engine (node.js), weitere Hilfsprogramme (npm), einen Webserver, der so konfigurierbar ist, dass er mit der node.js-Nightscout-Instanz kommunizieren kann - und das ist alles auf der Fritzbox nicht verfügbar.


    Die Idee, einfach nur eine Platte an die Fritzbox zu hängen, scheitert einfach daran, dass die Fritzbox überhaupt nicht dafür vorbereitet ist. Zu lange vergangenen Zeiten, als die Fritzbox noch "freetzbar" war und telnet-Zugang besaß, ja, da hätte man vielleicht daran denken können, die Fritzbox selbst Nightscout-fähig zu machen.


    Einen Raspberry Pi mit Ubuntu aufzusetzen, mongodb/node.js/npm/nginx oder apache zu installieren ist kein Hexenwerk. Bei mir läuft schon seit 5 Jahren ein Raspberry Pi 4B mit 2MB RAM mit 2 Nightscout-Instanzen (Tocher und ich), Pihole, Groupware (Kopano), IOBroker, Grafana, Squeeze, ZigBee, Mosqitto und das alles völlig problemlos. Tatsächlich brauchen die Nightscout-Instanzen am meisten CPU, aber auch das ist nicht dramatisch hoch.


    Ich glaube eigentlich, eine Fritzbox 7590 könnte durchaus mit ihrem 1GHz-2Core-Prozessor für eine Nightscout-Instanz ausreichen. Wie gesagt, mein 4Core-Pi muss viel mehr machen und die 2 Nightscout-Instanzen steckt der locker weg.


    Aber es ist, wie es ist: es gibt einfach überhaupt keine Möglichkeit, eine Fritzbox selbst um Nightscout zu erweitern. Das geht nur über zusätzliche Hardware (und damit meine ich nicht einfach eine Festplatte, sondern, wie schon von andere gesagt, eine Extra-Recheneinheit!).