Show last authors
1 First, this doesn't work easily on a Raspberry Pi, which runs their own version of Linux.  (I'll be playing with that next.  The problem is you need MongoDB version 2.6 or later, and the Raspberry Pi version of Linux installs version 2.4.  Thus, you need to compile your own MongoDB version from source.  Fortunately, source is available, since it's open-source, but compiling your own usually involves also including/compiling/downloading a bunch of libraries, etc., so it can get involved.)  This is under Ubuntu Linux and I was running version 20.x.  Basically, you just follow the instructions here:
2
3 [[https:~~/~~/github.com/schmitzn/howto-nightscout-linux>>url:https://github.com/schmitzn/howto-nightscout-linux]]
4
5 except that where it mentions port 80, you **must** use port 443 ("https" means SSL encryption, so port 443).  You should be using Python3. You will also probably need to install "npm" in addition to the packages he mentions. You **must** use https to connect, which means you need a certificate.  Everything else seems pretty straight-forward and I have verified that it works, pulling numbers from Dexcom share, if you configure BRIDGE_USER_NAME, BRIDGE_PASSWORD, and "bridge" under the Enable options.  Everywhere pages mention changing the "Config Vars", this maps directly to the environment variables in the "start.sh" file.
6
7
8 Now, on to trying to install my own MongoDB on a Raspberry Pi Zero W...
9
10 * The reason MongoDB 2.4 is installed under Raspian, seems to be because later versions of MongoDB are 64 bit and Raspian is 32 bit.  You would need to install a 64 bit version of Linux, such as [[Ubuntu>>https://pimylifeup.com/ubuntu-server-raspberry-pi/]], onto your Raspberry Pi and then you can follow the instructions above.
11 ** You can't install a 64 bit Ubuntu onto a Raspberry PI Zero or Zero W, because it requires ARMv7 processor and the Zero series is based on ARMv6.
12 *** Probably the smallest choice would be Raspberry Pi Model 3 A+.
13
14 I finally ended up using a Raspberry Pi model 3 A+.  This is an ARMv7 processor, so it can do 64 bit Linux, it has built-in Wifi, and it's still small and cheap.  The system doesn't have a lot of memory, so I purchased a 32Gb micro-SD card and [[created a 16Gb swapfile>>https://linuxize.com/post/how-to-add-swap-space-on-ubuntu-18-04/]].  I installed Ubuntu 19 from here:
15
16 [[http:~~/~~/cdimage.ubuntu.com/releases/eoan/release/ubuntu-19.10.1-preinstalled-server-arm64+raspi3.img.xz>>http://cdimage.ubuntu.com/releases/eoan/release/ubuntu-19.10.1-preinstalled-server-arm64+raspi3.img.xz]]
17
18
19 You'll want to configure the Wifi using "netplan" (/etc/netplan directory):
20
21 (% class="box" %)
22 (((
23 network:
24 ethernets:
25 eth0:
26 dhcp4: true
27 optional: true
28 version: 2
29 wifis:
30 wlan0:
31 dhcp4: true
32 access-points:
33 "My Network Name":
34 password: "My Network Password"
35 )))
36
37 Then install the packages mentioned on the above web page as root, but install the "Nightscout" installation ("npm install") as a non-root user.
38
39 Finally, here's a sample "start.sh" file:
40
41
42 (% class="box" %)
43 (((
44 #!/usr/bin/bash
45
46 export SSL_KEY=MyCertKeyFile.key
47 export SSL_CERT=MyCertFullchainFile.cer
48 export SSL_CA=MyCertFullchainFile.cer
49
50 # environment variables
51 export DISPLAY_UNITS="mg/dl"
52 #export MONGO_CONNECTION="mongodb:~/~/MyNightscoutUsername:MyNightscoutPassword@localhost:27017/Nightscout"
53 export MONGO_CONNECTION="mongodb:~/~/localhost:27017/Nightscout"
54 export BASE_URL="https:~/~/nightscout.example.com"
55 export PORT=443
56 export API_SECRET="My Nightscout Secret"
57
58 export PUMP_FIELDS="reservoir battery status"
59 export DEVICESTATUS_ADVANCED=true
60 export ENABLE="careportal iob cob openaps pump bwg rawbg basal bridge"
61 export BRIDGE_PASSWORD="My Dexcom Share password"
62 export BRIDGE_USER_NAME="My Dexcom Share Username"
63
64 export TIME_FORMAT=24
65
66 # start server
67 node ~-~-no-deprecation server.js
68
69 )))
70
71 Note: The idea is that this can be used as a temporary Nightscout site, if we have no access to Internet.  Once we have access again, the MongoDB data stored on this temp. site can be pulled and uploaded to the main MongoDB Nightscount online.  (This merging can be done at any time, since it's just copying DB records over.  No big deal.)

Need help?

If you need help with XWiki you can contact: