В данной статье я расскажу и покажу как пошагово настроить своими руками сервер NightScout для мониторинга сахаров у диабетиков! Данная инструкция актуальна на 2023 год и будет мною поддерживаться и развиваться далее.
Всем привет! Как не печально, но мой ребенок болеет сахарным диабетом первого типа уже более 5 лет, мы с женой постарались сделать все, чтобы ребенок не чувствовал себя ущемленным при общении с другими детьми. Нам повезло, что мы живем в век технологий и они сделали нашу жизнь легче и лучше. В свое время мы настроили и пользовались сервисом NightScout который показывал в режиме онлайн сахара ребенка и его можно было контролировать в детском саду, кружках, на прогулках и в школе, но с конца 2022 года сервис стал платным, а в России можно было найти услуги по работе с этим сервисом за абонентскую плату в районе 1 тыс рублей в месяц.
В январские праздники я изучив все мануалы и инструкции западных коллег решил сделать нашу русифицированную версию по которой каждый сможет установить этот сервер и отслеживать себя или своего ребенка Online.
Сразу скажу, что теперь бесплатно это не получится использовать, но по моей инструкции вы будете платить не 1000 рублей в месяц, а 220 рублей в месяц что в 5 раз меньше, а в перещете на год, это не 12 тыс рублей, а 2500 руб.
Главное выполняйте все мои инструкции шаг в шаг и все получится!
Единственное что должно у нас с вами отличаться это пароли, ни в коем случае не копируйте мои пароли, изменяйте их чтобы вас не взломали!!!!!
Данная инструкция будет дополняться и изменяться мною по возможности свободного времени и сил.
1 часть — Настройка и запуска VPS сервера
- Нам для начала необходимо зарегистрировать сервер на хостинге -> Beget далее переходим в меню VPS и регистрируем самый дешевый тариф за 7 рублей в сутки (при оплате в месяц будет 220 руб)
- Регистрируем любой домен в зоне RU
- Создаем VPS сервер и копируем наш внешний ip адрес который сейчас пропишем к нашему купленному домену
- Теперь заходим в настройки ДНС и прописываем ip нашего сервера в А записи домена
- после этих подготовительных работ можно приступить к настройке самого сервера VPS на Ubuntu 20.04 скачиваем программу putty, запускаем ее и вводим наш внешний ip (в нашем примере это ip 62.217.180.5)
- У нас открывается терминал в котором мы должны вводить след мои команды
2 часть — Настройка NightScout на Ubuntu
В данной части я не буду расписывать каждую команду, я это все это проговаривал на видео которое будет в конце статьи или пишите комментарии я буду вам отвечать.
Просто следуйте по пунктам и ничего не пропускайте!
!!!! Каждая строке новая команда которая выполняется отдельно, т.е. все последовательно выполняем — смотрите мое видео которое размещено в конце статьи!!!
- Запускаем обновление Ubuntu
apt update -y
2. Устанавливаем найденные обновления
apt dist-upgrade -y
3. Создаем Виртуальный файл подкачки
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
swapon --show
4.Устанавливаем дополнительные пакеты которые нам пригодятся при сборке след программ
sudo apt install build-essential checkinstall libssl-dev
5. Устанавливаем пакет Node.JS
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs
6.Устанавливаем Базу Данных MongoDB
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
systemctl start mongod.service
systemctl status mongod.service
7. Добавляем в MongoDB пароль для админа (пароль делаем свой не копируйте мой пароль в целях безопасности!!!)
mongosh
use admin
db.createUser({user:"admin",pwd:"GSg9d8ehgewoH",roles:[{role:'userAdminAnyDatabase',db:'admin'}, "readWriteAnyDatabase"]})
exit
8. Ставим защиту на MongoDB, открываем текстовый файл
sudo nano /etc/mongod.conf
9. Ищем параметр security , рядом с которым удаляем решетку и добавляем параметр authorization, должно получиться так: (но советую посмотреть на видео)
security:
authorization: enabled
10. Перезапуском базу данных
sudo systemctl restart mongod
11. Логинимся в Базу данных и создаем новую базу данных для нашего NightScout (пароль делаем свой не копируйте мой пароль в целях безопасности!!!)
use nightscout
db.createUser({user:"nightscout",pwd:"Skdgud87gIKSTYgehe",roles:[{role:'readWrite',db:'nightscout'}]})
db.createCollection("entries")
exit
12. Устанавливаем NightScout
git clone https://github.com/nightscout/cgm-remote-monitor.git
cd cgm-remote-monitor
export NODE_OPTIONS=--max-old-space-size=8192
npm install
13. Создаем конфигурационный файл my.env
nano my.env
14. Вставляем код (API_SECRET делаем свой не копируйте мой пароль в целях безопасности!!!)
MONGODB_URI=mongodb://nightscout:Skdgud87gIKSTYgehe@127.0.0.1:27017/nightscout
BASE_URL=http://127.0.0.1:1337
API_SECRET=12345678!!!nibbl
MONGODB_COLLECTION=entries
DISPLAY_UNITS=mmol
ENABLE=careportal%20basal%20dbsize%20rawbg%20iob%20maker%20cob%20bwp%20cage%20iage%20sage%20boluscalc%20pushover%20treatmentnotify%20loop%20pump%20profile%20food%20openaps%20bage%20alexa%20override%20speech%20cors
THEME=colors
TIME_FORMAT=24
MONGODB_URI — путь к нашей базе данных (обязательно сделайте свой уникальный пароль)
API_SECRET — секретный пароль к нашей базе данных (обязательно сделайте свой уникальный пароль)
15. Создаем файл запуска скрипта start.sh
nano start.sh
(eval $(cat my.env | sed 's/^/export /') && PORT=1337 node server.js)
16. делаем его исполняемым
chmod +x start.sh
17. Данный пункт очень важный и я бы советовал посмотреть видео мое как я буду выполнять этот пункт. Сейчас мы будем запускать фоновый режим в котором запустим наш скрипт start.sh
screen
18. Теперь нажимаем Enter и вводим команду
./start.sh
19. Теперь надо аккуратно выйти из этого фонового режима, для этого нажимаем комбинацию клавиш Ctrl + A и Ctrl + D
20. Устанавливаем WEB сервер nginx через который мы и будем следить за нашими показателями
sudo apt install nginx -y
21. Создаем конфигурационный файл
sudo nano /etc/nginx/sites-available/nightscout
22. копируем настройки в наш конфигурационный файл
server {
listen 80;
server_name primamilena.ru;
location / {
proxy_pass http://127.0.0.1:1337;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-Proto https;
}
}
primamilena.ru — тут вписываем название вашего домена
23. Активируем нашу конфигурацию
sudo ln -s /etc/nginx/sites-available/nightscout /etc/nginx/sites-enabled
24. проверяем на ошибки наш конфигурационный файл
sudo nginx -t
25. перезапускаем сервер nginx для того чтобы заработал наш конфигурационный файл
sudo systemctl restart nginx
26. Заходим на наш сайт ) все!
3 часть — Настройка на телефоне отправки сахаров в NightScout
Сразу тут скажу, что программ которые контролируют сахара очень большое количество, но в свое время жена у меня стала пользоваться программой Diabox, но принцип примерно один и тот же, для настройки вашего устройства можете воспользоваться оф. инструкцией на сайте NightScout — ссылка
- Открываем Diabox
- Нажимаем на иконку шестеренки в нижнем правом углу
- В меню выбираем integration / интеграция
В поле:
- URL вводим название нашего сайт
- key — вводим наш API который мы прописывали в конфигурационном файле my.env
После этого сохраняем настройки нажатием кнопки Save
!!! Нажмите кнопку Connect TEst если все сделали правильно у вас будет сообщение что соединение успешно!
Далее перезагружаем телефоне!!! (без перезагрузки телефона у вас не будут передаваться данные)
Все!
Вот таким вот способом мы настроили онлайн мониторинг сахаров через телефон на сайт и теперь можно спокойно отслеживать ребенка когда он в школе или гуляет.
Видео инструкция настройка NightScout
Предисловие
Вот мы и закончили данную инструкцию, которую мне кажется я писал дольше чем настраивал сервер) теперь вы можете спокойно контролировать сахара своего ребенка удаленно, это очень сильно облегчает жизнь родителям чьи дети по роковому стечению обстоятельств стали диабетиками первого типа.
Вы нашли данную статью по след ключевым словам:
NightScout, ubuntu, сахарный диабет, diabetes mellitus, Nodejs, MongoDB, mongosh, admin, nginx, Diabetes, github, Medtronic 600, xDrip+, Glimp, Diabox, LinkBluCon, Tomato, Spike, xDrip4iOS, как следить за сахарами онлайн, как контролировать сахара, как контролировать сахар в крови, Supports Healthy Blood Sugar, What drink lowers blood sugar, Контроль уровня сахара в крови, setup Nightscout, heroku, Night Scout Diabetes, Setting up Nightscout, FreeStyle Libre, Libre, FreeStyle
В новой mongo сменили API и теперь nightscout не может записывать данные туда:( Решения пока не нашел, кроме как развернуть гдето старую версию mongo
Legacy Opcodes Removed
MongoDB 6.0 removes support for the following legacy opcodes and database commands:
не до конца понял о каких данных идет речь, я сейчас зашел и сделал отчет и все ок https://disk.yandex.ru/i/FzcIF_CPLHcsRA
так что если делаете все по моей инструкции все будет ок и все данные по дням можно вывести в отчетах