Наверное, у кого диабет, все пользуются 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=24
MONGODB_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
Заходим на наш сайт. Все!