見出し画像

FreeStyleリブレでリアルタイム記録 (4) / Nightscout を自宅サーバーで構築

自宅サーバーに Nightscout を構築する手順を書いておきます。


環境

  • OS : Debian 12

  • コンテナツール : Docker

今回は Docker コンテナ上に実行環境を構築しますので、Docker がインストールされていることが前提です。
OS は Debian 12 ですが、Docker が動作すればなんでも (Windows, Macでも) 構いません。

手順

下記の docker-compose.yml を作成し、$ docker compose up -d するだけ。

docker-compose.yml ファイル

services:
  broker:
    image: 'prologic/mosquitto:latest'
    ports:
      - '11883:1883'

  mongo:
    image: 'mongo'
    volumes:
      - mongo_db:/data/db
      - ./configdb:/data/configdb
    ports:
      - 27017:27017

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_SERVER: mongo
      ME_CONFIG_BASICAUTH_USERNAME: mongo
      ME_CONFIG_BASICAUTH_PASSWORD: mongopass
    depends_on:
      - mongo
    volumes:
      - mongo_db:/data/db

  nightscout:
    image: 'nightscout/cgm-remote-monitor:latest'
    restart: always
    environment:
      API_SECRET: {{--Your API SECRET--}}
      ENABLE: careportal rawbg iob dbsize
      MONGO_CONNECTION: mongodb://mongo:27017
      MQTT_MONITOR: mqtt://ns@broker:11883
      DEVICESTATUS_ADVANCED: True
      INSECURE_USE_HTTP: True
      PORT: 1337
    depends_on:
      - broker
      - mongo
    ports:
      - 1337:1337

volumes:
  mongo_db:
  

docker-compose.yml の説明

broker セクション

MQTT ブローカー mosquitto。
分の場合はグルコース値を MQTT 経由で他システムで利用するため、MQTT ブローカーをインストールしていますが、通常は不要です。
ポートについては、他システムで MQTT ブローカーが稼働しているので、規定の 1883 から変更しています。

mongo セクション

Nightscout のデータを保存するための Database。
https://www.mongodb.com/ja-jp

mongo-express セクション

MongoDB の WebUI ツール。
データの確認を容易にしたいためインストールしていますが、なくてもOKです。

nightscout セクション

environment ブロック。
詳細説明は公式ページを参照してください。

  • API_SECRET: {{--Your API SECRET--}}

    • パスワードのようなものでスマホの設定で使用。
      必ず12文字以上で

  • ENABLE: careportal rawbg iob dbsize

    • 有効化する Plugin をスペースで区切って羅列。
      デフォルトでは timeago, upbat, direction, delta が有効。
      (図)
      carepotal : トリートメントを入力するためのフォーム。
      rawbg (Raw BG) : 代替の BG 値とノイズレベルを表示。
      iob (Insulin-on-Board) : IOB を表示。
      dbsize (Database Size) : データベースの残容量を表示。
      https://nightscout.github.io/nightscout/setup_variables/#plugins

デフォルトの表示
  • MQTT_MONITOR: mqtt://ns@broker:11883

    • MQTT にパブリッシュするための設定。
      MQTT を利用しない場合は不要。

  • DEVICESTATUS_ADVANCED: True

    • スマホとブリッジ (MiaoMiao) のバッテリー残量を表示。

  • INSECURE_USE_HTTP: True

    • SSL を使用しない通常の http でアクセス可能にする。
      自分は自宅サーバーで外部からアクセスしないため True にしているが、通常は非推奨。

参考



この記事が気に入ったらサポートをしてみませんか?