Наверное, у кого диабет, все пользуются Nightscout. Но он требует сервера! Джино, Beget... Но на одноплатнике Raspberry Pi делали серваки для сайтов! Но пока не было Nightscout для Raspberry Pi... Ну ладно, начинаем!
Обновляем Ubuntu:
sudo apt update -y
sudo apt dist-upgrade -yСоздаём виртуальный файл подкачки:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon --showУстанавливаем дополнительные пакеты которые нам пригодятся при сборке след программ:
sudo apt install build-essential checkinstall libssl-devСтавим пакет Node.js
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - &&\
sudo apt-get install -y nodejsУстановка и настройка базы данных 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Добавляем в MongoDB пароль для админа (пароль делаем свой не копируйте пароль в целях безопасности!!!)
mongosh
use admin
db.createUser({user:"admin",pwd:"nightscoutServer",roles:[{role:'userAdminAnyDatabase',db:'admin'}, "readWriteAnyDatabase"]})
exitСтавим защиту на MongoDB, открываем текстовый файл (можете выбрать свой редактор)
sudo vim /etc/mongod.confИщем параметр security , рядом с которым удаляем решетку и добавляем параметр authorization, должно получиться так:
security:
authorization: enabledПерезапуском базу данных
sudo systemctl restart mongodЛогинимся в Базу данных и создаем новую базу данных для нашего NightScout (пароль делаем свой не копируйте пароль в целях безопасности!!!)
use nightscout
db.createUser({user:"nightscout",pwd:"nightscoutServer",roles:[{role:'readWrite',db:'nightscout'}]})
db.createCollection("entries")
exitУстановка и настройка базы данных 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
Создаём конфиг-файл my.env
nano my.envВставляем код (API_SECRET делаем свой не копируйте пароль в целях безопасности!!!)
MONGODB_URI=mongodb://nightscout:nightscoutServer@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=24MONGODB_URI – путь к нашей базе данных (обязательно сделайте свой уникальный пароль)
API_SECRET – секретный пароль к нашей базе данных (обязательно сделайте свой уникальный пароль)
Создаем файл запуска скрипта start.sh
(eval $(cat my.env | sed 's/^/export /') && PORT=1337 node server.js)
Делаем его исполняемым
chmod +x start.shДанный пункт очень важный. Сейчас мы будем запускать фоновый режим в котором запустим наш скрипт start.sh
screenТеперь нажимаем Enter и вводим команду
./start.shТеперь надо аккуратно выйти из этого фонового режима, для этого нажимаем комбинацию клавиш "Ctrl + A" и "Ctrl + D"
Прикрепление доменного имени к серверу NightScout
Устанавливаем WEB сервер nginx через который мы и будем следить за нашими показателями.
sudo apt install nginx -yСоздаем конфигурационный файл
sudo nano /etc/nginx/sites-available/nightscoutКопируем настройки в наш конфигурационный файл
server {
listen 80;
server_name vashdomen.ru;
location / {
proxy_pass http:<span class="comment" style="background: transparent; margin: 0px; padding: 0px; outline: none; border: 0px; box-sizing: border-box; color: rgb(127, 159, 127);">//127.0.0.1:1337;</span>
proxy_http_version <span class="number" style="background: transparent; margin: 0px; padding: 0px; outline: none; border: 0px; box-sizing: border-box; color: rgb(140, 208, 211);">1.1</span>;
proxy_set_header Upgrade <span class="variable" style="background: transparent; margin: 0px; padding: 0px; outline: none; border: 0px; box-sizing: border-box; color: rgb(239, 220, 188);">$http_upgrade</span>;
proxy_set_header Connection <span class="string" style="background: transparent; margin: 0px; padding: 0px; outline: none; border: 0px; box-sizing: border-box; color: rgb(204, 147, 147);">'upgrade'</span>;
proxy_set_header Host <span class="variable" style="background: transparent; margin: 0px; padding: 0px; outline: none; border: 0px; box-sizing: border-box; color: rgb(239, 220, 188);">$host</span>;
proxy_cache_bypass <span class="variable" style="background: transparent; margin: 0px; padding: 0px; outline: none; border: 0px; box-sizing: border-box; color: rgb(239, 220, 188);">$http_upgrade</span>;
proxy_set_header X-Forwarded-Proto https;
}
}vashdomen.ru – тут вписываем название вашего домена
Активируем нашу конфигурацию
sudo ln -s /etc/nginx/sites-available/nightscout /etc/nginx/sites-enabledПроверяем на ошибки наш конфигурационный файл
sudo nginx -tПерезапускаем сервер nginx для того чтобы заработал наш конфигурационный файл
sudo systemctl restart nginxЗаходим на наш сайт. Все!