Nightscout selbst aufsetzen und hosten

  • Da das kein auf AAPS beschränktes Thema ist, mache ich hier mal einen neuen Thread auf - noch ohne Inhalt, aber der kommt hoffentlich bald ;)


    Update: IhdIC hat hier schon einmal was zu seiner Lösung (Docker auf einer Synology) geschrieben. (Danke dafür.)

    Ich habe momentan einen RasPi3B+ in Arbeit, mal sehen, wie weit ich damit komme.

    Einmal editiert, zuletzt von Steve8x8 ()

  • Nice, ich stoße gerade mit der "offiziellen" Anleitung (bei cgm-remote-monitor) auf meinem RPi3B+ (mit dem Ubuntu-Bionic Image für Pi4) an die Grenzen des eingebauten Speichers.

    Importieren des Dumps von ns.10be.de funktioniert, weiter bin ich noch nicht gekommen, die Brötchen verdienen sich nicht ganz von allein.

    Einmal editiert, zuletzt von Steve8x8 ()

  • ich hoffe, am Ende kommt was raus, was dann auch ein Laie halbwegs versteht (oder wenigstens nachbauen kann :D )

    Blutzucker ist die Autobahn, Gewebszucker ne Nebenstraße!

  • Marani Wir werden sehen (sagte der Blinde)... Für die RasPi-Variante (ab 3B aufwärts) wird mindestens vorausgesetzt, eine microSD-Karte mit einem "Image" beschreiben zu können, und wieder kommt eine Linux-Kommandozeile vor =O

  • und wieder kommt eine Linux-Kommandozeile vor

    Nur mal zum allgemeinen Verständnis, verstehe ich das Grundprinzip richtig (bitte korrigier mich)?


    Man benötigt also eine lokale Installation einer Datenbank mit Nightscout. Anstatt die Daten von xDrip oder AAPS zu einem Host namens ns.10be.de (oder anderen) zu schicken, sendet man sie an die eigene Datenbank bzw. Nightscout-Instanz. Hierzu benötigt man einen kleinen Server, der von außen über WLAN oder Internet zugänglich ist. So ein Server besteht aus einem Mini- bzw. Einplatinenrechner (der ja rund um die Uhr läuft) mit einem Speichermedium (Festplatte oder SSD). Der Raspi ist ein solcher Einplatinenrechner, den es in vielen Varianten für verschiedene Anwendungszwecke und wenig Geld (10 - 40 EUR) gibt. Die verwendeten Mini-Rechner und Nightsscout laufen nur unter Linux (wie auch eine Fritz-Box), oder?


    Es gibt aber auch fertig zu kaufende NAS (Network attached storage), in denen beides schon verbaut und sogar ein Betriebssystem (Linux) vorhanden ist. Wenn ich das richtig verstanden habe, haben IhdIC und FraOrolo eine solche Lösung realisiert. Ist das nicht wesentlich einfacher (aber auch teurer) als mit einem Raspi?


    Ist es denkbar, dass man so etwas auch mit einer Fritz-Box realisieren kann, die ja auch rund um die Uhr läuft und auf der man mit wenigen Klicks eine von außen ansprechbare NAS einrichten kann (bei angeschlossener Festplatte)?


    Aber um eine Datensicherung muss man sich dann selbst kümmern (ist in vielen NAS aber integriert). Was ist eigentlich der Vorteil dieser Mühe und Kosten? Ist die Performance so extrem besser? Ist die denn bei ns.10be.de bisher schlecht? Oder sind die Daten dort nicht sicher oder nicht immer verfügbar?

  • Danke für die Zusammenfassung ;)


    Linux: Ja. (Ein anderes Unix täte es vermutlich auch. Also FreeBSD oder OpenSolaris :-P )

    Einfacher/teurer: Ja. (Zeit ist Geld.)

    Fritz: Eher nicht, evtl. mit alternativer Firmware. (Keine Ahnung, was da momentan für Prozessoren verbaut sind, Speicher dürfte aber sehr knapp sein.) Besser Portweiterleitung auf was Richtiges.

    Datensicherheit: NAS kommt idR mit RAID (-Option), natürlich kann man sich auch jeden Abend einen Mongo-Dump per Mail schicken. Einer einzelnen SSD traue ich nicht weiter, als ich sie werfen kann.

    ns.10be.de ist manchen nicht privat genug, ist halt auch Cloud, nur nicht offensichtlich böse - und in der Tat gab es ein paar Nichtverfügbarkeiten, und jede (nicht nur freie/kostenlose!) Lösung hängt an dem, der sie bereitstellt - oder eben nicht mehr.


    Es ist wie mit AAPS, gepatchtem LibreLink oder Dexcom, Werten und Kurven auf Uhr oder Fitnessarmband ...: Man muss es nicht machen, aber wenn man es kann (oder lernen kann), warum nicht?

  • Wenn ich das richtig verstanden habe, haben IhdIC und FraOrolo eine solche Lösung realisiert.

    Meine Loesung war eher from Scratch ohne NAS:

    • Rechner mit stabilem persistenten Massenspeicher (Raspi nur mit SD-Karte geht nicht lange gut, besser eine guenstige SSD mit USB-Adapter dranstecken)
    • Betriebssystem (irgendein Linux)
    • MongoDB als Container oder Install-Paket (bei vielen Linuxen im Paketmanagement)
    • Nighscout bei (mir per checkout von GitHub)
    • Script zum Konfigurieren und Starten von Nightscout
    • nginx fuer einfaches https://
    • eine oeffentliche Domain (z.B. bei ddnss.de) damit man die Maschine auch erreicht
    • LetsEncrypt Zertifikat auf den domain-namen und certbot (macht die updates)
    • Backup vom System und der MongoDB

    Als Motivation: ich wollt ein Nightscout um Support fuer Kind in der Schule machen zu koennen. Aber als ich damit angefangen hab, waren die Instanzen auf Azure alle komplett offen: Jeder konnte lesend auf Privatdaten zugreifen und die Software drehte nur den Schreibzugriff mit Tokens ab. DasGehtJaNuGarNicht <X


    (mittlerweile gibts da mehr Moeglichkeiten)

    Einmal editiert, zuletzt von FraOrolo ()

  • Achtung, doofe Fragen...


    MongoDB


    ich bin mir immer noch nicht sicher, was genau Mongo ist - klar, was ne Datenbank ist, weiß ich. Ist Mongo sowas wie MS Access? Also eine Linux-Variante, die halt so heißt?


    Nighscout


    ist das auch ein Programm? Ich kenn's ja nur als "ich lad da grad meine Daten hoch"


    eine oeffentliche Domain (z.B. bei ddnss.de) damit man die Maschine auch erreicht


    wozu bräuchte ich die, wenn das Teil in meinem Heimnetzwerk hängen würde? Da muss ich ja per se nicht von außen ran, meine Daten werden auch nur zu 10be übertragen, wenn ich in meinem Wlan bin


    Besser Portweiterleitung auf was Richtiges.


    also dann von der Fritzbox (im Heimnetzwerk) auf einen anderen PC (im Heimnetzwerk)?

    Blutzucker ist die Autobahn, Gewebszucker ne Nebenstraße!

  • Ja, MongoDB und Nightscout sind beides Programme. Das eine managed die Daten und sucht darin rum, das andere enthält die Webseite mit Plots, Reports, Careportal und stellt eine Schnittstelle für Diabetes-Daten in der Datenbank zur Verfügung. Die Webseite nutzt diese Schnittstelle und auch andre APPS wie AAPS, xDrip, NightScoutReporter, autotune ...


    Wenn Du nur in deinem Heimnetz da ranwillst, gehts ohne Domain und Zertifikat.

    Mein Szenario ist halt: Jederzeit im Internet -- Ich seh auf meinem Handy, ob bei meinem Kind grad was schiefgeht.


    LG

    Martin

  • Ich seh auf meinem Handy, ob bei meinem Kind grad was schiefgeht.


    logisch, deine Motivation ist ja eine völlig andere, mir geht's nur darum, dass ich meine Reports abspeichern und zur Not ausdrucken kann für irgendwelche Dokumentationen

    Blutzucker ist die Autobahn, Gewebszucker ne Nebenstraße!

  • Marani macht nix. Vielleicht macht ja mal jemand einen Workshop beim nächsten T1Day mit ein paar von diesen Themen?


    MongoDB ist eine (kommerziell entwickelte, in der Cloud angebotene, aber auch mit einer "Community Edition" gesegnete) Datenbank zum Abspeichern von "Collections" (im Gegensatz zu MySQL, PostgreSQL usw., die "Tabellen" pflegen).


    "Nightscout" ist in der Tat ungenau, hier geht es um das Web Interface (das einerseits die Uploads von z.B. xDrip entgegen nimmt, andererseits auf Anfragen antwortet, beides i.d.R. im JSON-Format). Unter "Nightscout" laufen auch noch andere Dinge aus dem gleichen Ökosystem, z.B. der 600SeriesUploader.


    Die öffentliche Domain braucht man nicht zwingend, ist aber z.B. für die Nutzung des NSReporters hilfreich (oder läuft der auch ohne Netz?), gleiches gilt für die Portweiterleitung. Ich hätte aber vermutlich im Urlaub heftig Daten verloren, wenn ich die NS-Instanz nicht erreicht hätte - es war kurz davor, da mein spezieller Port bei 10be vom Wirts-WLAN nicht durchgelassen wurde.


    (Letztere mache ich z.B., um von "draußen" auf den SSH-Zugang zu zweien meiner zu Hause gebliebenen Rechner zu kommen - und auch der Webserver liegt schon länger nicht mehr direkt auf dem Internetrouter. Und damit ich die nicht suchen muss, habe ich mich bei selfhost.de angemeldet und bekomme so einen DNS-Eintrag, der immer auf meine Fritz!box (und alles, was dahinter hängt) zeigt.)

  • Die öffentliche Domain braucht man nicht zwingend, ist aber z.B. für die Nutzung des NSReporters hilfreich (oder läuft der auch ohne Netz?), gleiches gilt für die Portweiterleitung.

    Ich vermute der Reporter arbeitet grossenteils im Browser mit LocalStorage und der Server von zReptil

    spricht nicht direkt mit dem privaten Nightscout (die Daten werden aber auf dem Server in PDF gegossen).

    Laut Datenschutzerklaerung:

    Zitat

    Diese Webseite speichert keine Daten auf Servern. Die benötigten Daten werden von der eingegebenen URL zur Nightscout-Instanz geholt und als PDF aufbereitet. Die Daten, die zur Funktion der Webseite benötigt werden, werden im localStorage des Browsers gespeichert und nicht an den Server übermittelt. Wenn die Synchronisierung mit Google Drive aktiviert wird, dann werden diese Daten zusätzlich in den Anwendungsdaten auf dem Google Drive des verbundenen Kontos gespeichert.




    Kann ich aber erst heut abend testen.


    Wenn dem so ist, sollte ein Browser im WLAN auch die Daten aus dem Nightscout abgrasen koennen und damit Reports erzeugen, ohne dass eine public Domain verfuegbar ist.


    LG

    Martin

    Einmal editiert, zuletzt von FraOrolo ()

  • Schon im voraus danke an FraOrolo für die mögliche Tilgung eines der Fragezeichen ("läuft der auch ohne Netz?") ;)

    Ich hänge immer noch fürchterlich hinterher, habe gerade eine aktualisierte Version von Sandras Script gestartet. Für Neugierige:

    Work in progress - ich schaue mir auch gerade noch Kitekater/Nightscout-on-Raspberry-PI an.

    Älter als RasPi 3(B,+) geht jedenfalls schon mal nicht mit einer halbwegs aktuellen MongoDB. Den 4 (mit sehr hilfreichen 4 GB RAM) habe ich bei Pollin nackt für knapp 60 Euro gesehen, mit Netzteil und Gehäuse ist man um 75 Euro dabei. Muss mal wieder mit der Finanzministerin verhandeln... vielleicht verscherbele ich das Ding aber auch weiter.

  • Es geht weiter. :thumbup:

    http-Zugriff geht (reicht für isolierte Anwendung zu Hause), https braucht ein Zertifikat, hab noch keines.

    Daten(bank)import aus 10be funktioniert, Profilübernahme noch nicht.

    An DB-Zugriffsrechte habe ich mich noch nicht rangewagt, alles ist noch offen wie ein Scheunentor.

    /TBC/

  • Jugend forscht :thumbup:

    ...und ich bin fasziniert...:foehn

    ...wenn ich fleißig mitlese, verstehe ich vielleicht irgend wann, was ihr hier erzählt und wie es geht.


    Danke für die ganzen Informationen! :thumbup::/:confused2:hechel:


    "Wenn ich kann bin ich immer nett.

    Bin ich mal nicht nett, kann ich grad nicht." 8o


    DanaRS 08/19 - nightscout 10/19 - Dexcom G6 + AAPS + xdrip 11/19 - Closed Loop 02/20 - SonyXA2 /Sony10iii- SonySWR50



    Generation X / Generation Golf und Digital Immigrant

  • Danke für die Blumen ("Jugend").

    Forsch war ich noch nicht immer, jetzt bin ich sogar Forscher ;) - aber Dinge wie node.js, npm oder nginx sind auch für mich (noch) böhmische Dörfer.

    Ich sehe mit Entsetzen die Betragsnummern hochzählen und es gibt immer noch keine "bottled solution" - aber eine "one fits all" wird es sowieso nicht geben können. Mal sehen, wie viele Varianten (und Bausteine) es zum Schluss gibt.

  • Es geht weiter. :thumbup:

    http-Zugriff geht (reicht für isolierte Anwendung zu Hause), https braucht ein Zertifikat, hab noch keines.

    Daten(bank)import aus 10be funktioniert, Profilübernahme noch nicht.

    An DB-Zugriffsrechte habe ich mich noch nicht rangewagt, alles ist noch offen wie ein Scheunentor.

    /TBC/

    DB-Zugriff kannst Du offen lassen. Konfigurier Nightscout auf auf den Zugriff nach http://127.0.0.1:27017 .

    Mongo stellst Du mit net.bindIp im configfile auch auf 127.0.0.1. (Sollte default sein).

    Dann ist das dicht genug.


    Nightscout muss dann mit Admin Keys gesichert werden (uebers env), und du erstellst im Menue neue (NormalUser-) Subjects. Danach AUTH_DEFAULT_ROLES auf denied stellen.