From 03fd654ab79b34dfe2eb745ec3753464f51904aa Mon Sep 17 00:00:00 2001 From: Patrick Sonnerat Date: Sun, 28 Jan 2024 22:50:10 +0100 Subject: [PATCH] Refresh Setup variables Checked links and fixed some Sphinx warnings. --- docs/conf.py | 2 +- docs/nightscout/admin_tools.md | 2 +- docs/nightscout/advanced.md | 2 + docs/nightscout/discover.md | 8 +- docs/nightscout/img/SetupNS37.png | Bin 32047 -> 0 bytes docs/nightscout/img/SetupNS38.png | Bin 32326 -> 0 bytes docs/nightscout/new_user.md | 2 +- docs/nightscout/profile_editor.md | 2 +- docs/nightscout/reports.md | 4 +- docs/nightscout/security.md | 6 +- docs/nightscout/setup_variables.md | 333 ++++++++++---------------- docs/nightscout/tokens.md | 2 +- docs/troubleshoot/dexcom_bridge.md | 8 +- docs/troubleshoot/fly.io.md | 2 + docs/troubleshoot/heroku.md | 4 + docs/troubleshoot/troubleshoot.md | 4 +- docs/update/upd_stack.md | 2 +- docs/vendors/10BE.md | 1 - docs/vendors/fly.io/new_user.md | 2 +- docs/vendors/northflank/migrate_a.md | 2 - docs/vendors/northflank/new_user_a.md | 6 +- docs/vendors/railway/new_user_a.md | 2 - docs/vendors/railway/new_user_b.md | 4 +- 23 files changed, 163 insertions(+), 237 deletions(-) delete mode 100644 docs/nightscout/img/SetupNS37.png delete mode 100644 docs/nightscout/img/SetupNS38.png diff --git a/docs/conf.py b/docs/conf.py index 9bb4bcb2..126e386d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -7,7 +7,7 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = 'Nightscout Documentation' -copyright = '2023, #WeAreNotWaiting' +copyright = '2024, #WeAreNotWaiting' author = 'Patrick Sonnerat' # -- General configuration --------------------------------------------------- diff --git a/docs/nightscout/admin_tools.md b/docs/nightscout/admin_tools.md index 5ce67981..53c30484 100644 --- a/docs/nightscout/admin_tools.md +++ b/docs/nightscout/admin_tools.md @@ -20,7 +20,7 @@ Make sure you leave [`dbsize`](/nightscout/setup_variables.md#dbsize-database-si
-This panel will give access to basic maintenance actions on various database collections as defined in your site [core](/nightscout/setup_variables.md#core) variables. +This panel will give access to basic maintenance actions on various database collections.
diff --git a/docs/nightscout/advanced.md b/docs/nightscout/advanced.md index dedae096..1aadf9a1 100644 --- a/docs/nightscout/advanced.md +++ b/docs/nightscout/advanced.md @@ -37,6 +37,8 @@ Some common deployment methods:
+(nas)= + ## Building Nightscout inside your NAS Don't buy a NAS device just for this, but if you already have one that's worth a try! diff --git a/docs/nightscout/discover.md b/docs/nightscout/discover.md index dc96ab47..05e20778 100644 --- a/docs/nightscout/discover.md +++ b/docs/nightscout/discover.md @@ -31,7 +31,7 @@ Optionally you will see other indications (pills) that can be personalized in yo ## Authenticate yourself -By default you site opens read only, you need to authenticate using your [API secret](/nightscout/setup_variables.md#api_secret) in order to modify settings and add treatments. Click on the lock icon, enter your API secret and click `Update`. +By default you site opens read only, you need to authenticate using your [API secret](api-secret) in order to modify settings and add treatments. Click on the lock icon, enter your API secret and click `Update`. @@ -139,7 +139,7 @@ You can log physical activities and specify the duration. ### Insulin Cartridge Change `iage` -Logging these events will help you remember various expirations dates and will update the [corresponding pills](/nightscout/setup_variables.md#age-age-pills) if enabled. +Logging these events will help you remember various expirations dates and will update the [corresponding pills](/nightscout/setup_variables.md#age-pills) if enabled. @@ -255,7 +255,7 @@ You can customize your view using Settings. Changes will only be applied to your You need to [authenticate](#authenticate-yourself) to save your settings. -#### [**Units `DISPLAY_UNITS`**](/nightscout/setup_variables.md#display_units) +#### [**Units `DISPLAY_UNITS`**](display-units) #### [**Date Format `TIME_FORMAT`**](/nightscout/setup_variables.md#time_format-12) @@ -291,7 +291,7 @@ You need to [authenticate](#authenticate-yourself) to save your settings.
-In order to `Save` your changes you need to Authenticate, click `Authenticate` and enter your [API Secret](/nightscout/setup_variables.md#api_secret). +In order to `Save` your changes you need to Authenticate, click `Authenticate` and enter your [API Secret](api-secret). `Reset, and use defaults` will reverse your changes to defaults from your [config variables](/nightscout/setup_variables.md#nightscout-config-vars). diff --git a/docs/nightscout/img/SetupNS37.png b/docs/nightscout/img/SetupNS37.png deleted file mode 100644 index c6ca92f668b1998666ca5c7c927ed53069fa8b4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32047 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%0DDKHZM;}Ro>{n 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

3(Wcijp1BJOg9 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 diff --git a/docs/nightscout/profile_editor.md b/docs/nightscout/profile_editor.md index 2666e52f..7b483c5a 100644 --- a/docs/nightscout/profile_editor.md +++ b/docs/nightscout/profile_editor.md @@ -2,7 +2,7 @@ -The top part will show your site settings: [`Title`](/nightscout/setup_variables.md#custom_title-nightscout), [`Units`](/nightscout/setup_variables.md#display_units) and [`Date Format`](/nightscout/setup_variables.md#time_format-12). +The top part will show your site settings: [`Title`](/nightscout/setup_variables.md#custom_title-nightscout), [`Units`](display-units) and [`Date Format`](/nightscout/setup_variables.md#time_format-12). diff --git a/docs/nightscout/reports.md b/docs/nightscout/reports.md index f0ce89af..7eb8a7c8 100644 --- a/docs/nightscout/reports.md +++ b/docs/nightscout/reports.md @@ -166,7 +166,7 @@ This will give you a table of your treatments, day by day. ## Profiles -This report will display [profiles](../nightscout/profile_editor.md) used in the time range. +This report will display [profiles](/nightscout/profile_editor.md) used in the time range. @@ -206,7 +206,7 @@ Make sure to temporarily [disable authentication](/nightscout/security.md#how-to [https://nightrep.zreptil.de/](https://nightrep.zreptil.de/) can be used to generate PDF documents with the data stored at Nightscout. -You need to add [`cors`](/nightscout/setup_variables.md#cors-cors) to your [`ENABLE`](/nightscout/setup_variables.md#enable) variables +You need to add [`cors`](/nightscout/setup_variables.md#cors-cors) to your [`ENABLE`](enable) variables Facebook group [Nightscout Reporter](https://www.facebook.com/nightrep) diff --git a/docs/nightscout/security.md b/docs/nightscout/security.md index 3512afe7..e14860dd 100644 --- a/docs/nightscout/security.md +++ b/docs/nightscout/security.md @@ -104,9 +104,9 @@ Make sure [the app you use to see your data](/nightscout/downloaders) can handle To Take Advantage of Roles, Turn Off Unauthorized Access to Your Site: -If you want to ensure that ONLY someone with permission to view your site (e.g., a token) is able to view the data, you should configure the [`AUTH_DEFAULT_ROLES`](/nightscout/setup_variables.md#auth_default_roles) variable. Set the value as: `denied`. +If you want to ensure that ONLY someone with permission to view your site (e.g., a token) is able to view the data, you should configure the [`AUTH_DEFAULT_ROLES`](auth_default_roles) variable. Set the value as: `denied`. -Edit (or add) this variable and set it to `denied` (see [here](../setup_variables.md#nightscout-configuration) how to edit variables). +Edit (or add) this variable and set it to `denied` (see [here](/nightscout/setup_variables.md#nightscout-configuration) how to edit variables). @@ -114,7 +114,7 @@ This creates a scenario in which a token will be required for all access (even o -In order to make your site visible to anybody, set [`AUTH_DEFAULT_ROLES`](/nightscout/setup_variables.md#auth_default_roles) variable to `readable`. +In order to make your site visible to anybody, set [`AUTH_DEFAULT_ROLES`](auth_default_roles) variable to `readable`.
diff --git a/docs/nightscout/setup_variables.md b/docs/nightscout/setup_variables.md index a38d42bb..4a8314ff 100644 --- a/docs/nightscout/setup_variables.md +++ b/docs/nightscout/setup_variables.md @@ -31,7 +31,7 @@ Nightscout configuration is held in variables , their content can be modified to ::: :::{tab-item} Fly.io -[**→ Here**](/vendors/fly.io/new_user.md#editing-config-vars-in-fly-io) +[**→ Here**](editing-config-vars-in-fly-io) ::: :::{tab-item} Google Cloud @@ -48,22 +48,29 @@ If you use a hosted service, open the vendor web interface to access your Nightc
+```{hint} +Only most used variables are explained below.
+For the full list consult the [main repository ReadMe](https://github.com/nightscout/cgm-remote-monitor#environment). +``` + +
+ ## Nightscout Config Vars
### Required variables -#### **MONGODB_URI ** +#### `MONGODB_URI` (Database connection string) -The connection string required to access your database (where all your data is stored in the cloud). +The connection string required to access your [Mongo database](/nightscout/new_user.md#basic-concepts) (where all your data is stored in the cloud). ```{warning} **`MONGODB_URI` is handled automatically if you use a hosted service or Google Cloud xDrip+ method.** In these cases you don't need to worry about it and can't or shouldn't change it.
This string is vital to your Nightscout functioning. A wrong connection string will prevent your site from opening and your data uploading in Nightscout. ``` -An Atlas database string will look like this: +An [Atlas database string](/troubleshoot/atlas.md#meet-your-connection-string) will look like this: `mongodb+svr://sally:sallypass@cluster0.abcdef.mongodb.net/nightscout?retryWrites=true&w=majority` @@ -78,14 +85,16 @@ Only one of these two variables must be present: `MONGODB_URI` or `MONGO_CONNECT
-#### **API_SECRET** +(api-secret)= + +#### `API_SECRET` (Nightscout password) ```{admonition} This is an important password :class: warning Knowing your site's API Secret gives anybody full access to your Nightscout data, allows uploading to your site and uncontrolled access. Make sure you keep this password secret and avoid exposing it publicly. ``` -A passphrase that must be at least 12 characters long. +A passphrase that must be at least 12 characters long, for example: ``` MyV3ry53cr37 @@ -98,9 +107,11 @@ If you need to share Nightscout access but control the access, use an `admin` [t
-#### **DISPLAY_UNITS** +(display-units)= -Preferred BG units for the site: `mg/dl` or `mmol/L` (or just `mmol`). Setting to `mmol/L` puts the entire server into `mmol/L` mode by default, no further settings needed. +#### `DISPLAY_UNITS` (Units to use) + +Preferred BG units for the site: `mg/dl` or `mmol/L` (or just `mmol`). Setting to `mmol/L` puts the entire server into `mmol/L` mode by default, no further settings needed. Make sure it matches you uploader and followers.
@@ -108,13 +119,44 @@ Preferred BG units for the site: `mg/dl` or `mmol/L` (or just `mmol`). Setting t ### Features -#### **ENABLE** +(enable)= + +#### `ENABLE` (Enable Plugins) ```{hint} Select the right plugins! Better too many than not enough. ``` -Plugins to enable for your site. Must be a space-delimited, lower-case list. +Select which [Plugins](#plugins) to enable for your site, this is the current list: + +- `careportal` (Careportal) +- `boluscalc` (Bolus Wizard) +- `food` (Custom Foods) +- `rawbg` (Raw BG) +- `iob` (Insulin-on-Board) +- `cob` (Carbs-on-Board) +- `bwp` (Bolus Wizard Preview) +- `cage` (Cannula Age) +- `sage` (Sensor Age) +- `iage` (Insulin Age) +- `bage` (Battery Age) +- `treatmentnotify` (Treatment Notifications) +- `basal` (Basal Profile) +- `bolus` (Bolus Rendering) +- `connect` (Nightscout Connect) - Beta +- `bridge` (Share2Nightscout bridge) - Deprecated +- `mmconnect` (MiniMed Connect bridge) - Deprecated: not functional +- `pump` (Pump Monitoring) +- `openaps` (OpenAPS) +- `loop` (Loop) +- `override` (Override Mode) +- `xdripjs` (xDrip-js) +- `alexa` (Amazon Alexa) +- `googlehome` (Google Home/DialogFLow) +- `speech` (Speech) +- `cors` (CORS) + +Must be a space-delimited, lower-case list. `careportal basal dbsize` @@ -130,7 +172,7 @@ Note: `mmconnect` is not functional with Heroku (if you wanted to bridge from th
-#### **DISABLE** +#### `DISABLE` (Disable Plugins) Used to disable ***default*** features, expects a space delimited list. @@ -140,27 +182,13 @@ For example this will disable the direction arrow and uploader battery informati
-#### **BASE_URL** - -Used for building links to your site's API, i.e. Pushover callbacks, usually the URL of your Nightscout site. - -
+(auth_default_roles)= -#### **AUTH_DEFAULT_ROLES** +#### `AUTH_DEFAULT_ROLES` (Authentication) Possible values `readable`, `denied`, or any valid role name. When `readable`, anyone can view Nightscout without a token. Setting it to `denied` will require a token from every visit, using `status-only` will enable api-secret based login. -
- -#### **IMPORT_CONFIG** - -Used to import settings and extended settings from a url such as a gist. Structure of file should be something like: `{"settings": {"theme": "colors"}, "extendedSettings": {"upbat": {"enableAlerts": true}}}` - -
- -#### **TREATMENTS_AUTH** - -Possible values `on` or `off`. Deprecated, if set to `off` the `careportal` role will be added to `AUTH_DEFAULT_ROLES` +More information on how to setup tokens [here](/nightscout/security.md#create-authentication-tokens-for-users).
@@ -168,9 +196,7 @@ Possible values `on` or `off`. Deprecated, if set to `off` the `careportal` role These alarm setting affect all delivery methods (browser, Pushover, IFTTT, etc.). Values and settings entered here will be the defaults for new browser views, but will be overridden if different choices are made in the settings UI. - - -#### **ALARM_TYPES** (`simple`) +#### `ALARM_TYPES` ```{admonition} TYPES :class: hint @@ -188,19 +214,19 @@ Predict alarms uses highly tuned formula that forecasts where the BG is going ba These values are the ones that will trigger `simple` alarms. They are expressed in the unit you selected with `DISPLAY_UNITS`. ``` -#### **BG_HIGH** (`260`) +#### `BG_HIGH` Urgent High BG threshold, triggers the `ALARM_URGENT_HIGH` alarm. -#### **BG_LOW** (`55`) +#### `BG_LOW` Urgent Low BG threshold, triggers the `ALARM_URGENT_LOW` alarm. -#### **BG_TARGET_BOTTOM** (`80`) +#### `BG_TARGET_BOTTOM` Low BG threshold, triggers the `ALARM_LOW` alarm. -#### **BG_TARGET_TOP** (`180`) +#### `BG_TARGET_TOP` High BG threshold, triggers the `ALARM_HIGH` alarm. @@ -211,23 +237,23 @@ High BG threshold, triggers the `ALARM_HIGH` alarm. You can setup alarms, so that when your Nightscout page is open and the alarm enabled, above (`HIGH`) or below (`LOW`) a certain threshold, a sound might play. ``` -#### **ALARM_URGENT_HIGH** (`on`) +#### `ALARM_URGENT_HIGH` Default setting for new browser views, for the Urgent High alarm (triggered when BG crosses `BG_HIGH`). (`on` or `off`) -#### **ALARM_HIGH** (`on`) +#### `ALARM_HIGH` Default setting for new browser views, for the High alarm (triggered when BG crosses `BG_TARGET_TOP`). (`on` or `off`) -#### **ALARM_LOW** (`on`) +#### `ALARM_LOW` Default setting for new browser views, for the Low alarm (triggered when BG crosses `BG_TARGET_BOTTOM`). (`on` or `off`) -#### **ALARM_URGENT_LOW** (`on`) +#### `ALARM_URGENT_LOW` Default setting for new browser views, for the Urgent Low alarm (triggered when BG crosses `BG_LOW`). (`on` or `off`) -#### **Other Alarms on by Default*** +#### Other Alarms on by Default These other two alarms are on by default, so set them to 'off' if you prefer no alarms. @@ -241,27 +267,27 @@ These other two alarms are on by default, so set them to 'off' if you prefer no `ALARM_*_MINS`: Only the first value of the space separated list, for options in browser, will be used for pushover. ``` -#### **ALARM_URGENT_HIGH_MINS** (`30 60 90 120`) +#### `ALARM_URGENT_HIGH_MINS` Number of minutes to snooze urgent high alarms. -#### **ALARM_HIGH_MINS** (`30 60 90 120`) +#### `ALARM_HIGH_MINS` Number of minutes to snooze high alarms. -#### **ALARM_LOW_MINS** (`15 30 45 60`) +#### `ALARM_LOW_MINS` Number of minutes to snooze low alarms. -#### **ALARM_URGENT_LOW_MINS** (`15 30 45`) +#### `ALARM_URGENT_LOW_MINS` Number of minutes to snooze urgent low alarms. -#### **ALARM_URGENT_MINS** (`30 60 90 120`) +#### `ALARM_URGENT_MINS` Number of minutes to snooze urgent alarms (that aren't tagged as high or low). -#### **ALARM_WARN_MINS** (`30 60 90 120`) +#### `ALARM_WARN_MINS` Number of minutes to snooze warning alarms (that aren't tagged as high or low). @@ -272,19 +298,19 @@ Number of minutes to snooze warning alarms (that aren't tagged as high or low). Missing data alarms can also be setup, so that when your Nightscout page is open and the alarm enabled, after a certain time without receiving BG, a sound might play. ``` -#### **ALARM_TIMEAGO_URGENT** (`on`) +#### `ALARM_TIMEAGO_URGENT` Default setting for new browser views, for an urgent alarm when CGM data hasn't been received in the number of minutes set in `ALARM_TIMEAGO_URGENT_MINS`. (`on` or `off`) -#### **ALARM_TIMEAGO_URGENT_MINS** (`30`) +#### `ALARM_TIMEAGO_URGENT_MINS` Default setting for new browser views, for the number of minutes since the last CGM reading to trigger an `ALARM_TIMEAGO_URGENT` alarm. -#### **ALARM_TIMEAGO_WARN** (`on`) +#### `ALARM_TIMEAGO_WARN` Default setting for new browser views, for a warning alarm when CGM data hasn't been received in the number of minutes set in `ALARM_TIMEAGO_WARN_MINS`. (`on` or `off`) -#### **ALARM_TIMEAGO_WARN_MINS** (`15`) +#### `ALARM_TIMEAGO_WARN_MINS` Default setting for new browser views, for the number of minutes since the last CGM reading to trigger an `ALARM_TIMEAGO_WARN` alarm. @@ -292,114 +318,37 @@ Default setting for new browser views, for the number of minutes since the last ------ -### Core - -#### MONGO_COLLECTION ( `entries`) - -**Set as system default from 14.0.7.** -The collection where CGM entries are stored. Leave default: `entries`. - - - -#### **MONGO_TREATMENTS_COLLECTION** (`treatments`) - -The collection used to store treatments entered in the Care Portal, see the [`ENABLE`](#enable) env var above - -#### **MONGO_DEVICESTATUS_COLLECTION** (`devicestatus`) - -The collection used to store device status information such as uploader battery - -#### **MONGO_PROFILE_COLLECTION** (`profile`) - -The collection used to store your profiles - -#### **MONGO_FOOD_COLLECTION** (`food`) - -The collection used to store your food database - -#### **MONGO_ACTIVITY_COLLECTION** (`activity`) - -The collection used to store activity data - - - -#### **PORT** (`1337`) - -The port that the node.js application will listen on. - -#### **HOSTNAME** - -The hostname that the node.js application will listen on, null by default for any hostname for IPv6 you may need to use `::`. - -
- -#### **SSL_KEY** - -Path to your ssl key file, so that ssl(https) can be enabled directly in node.js. If using Let's Encrypt, make this variable the path to your privkey.pem file (private key). - -#### **SSL_CERT** - -Path to your ssl cert file, so that ssl(https) can be enabled directly in node.js. If using Let's Encrypt, make this variable the path to fullchain.pem file (cert + ca). - -#### **SSL_CA** - -Path to your ssl ca file, so that ssl(https) can be enabled directly in node.js. If using Let's Encrypt, make this variable the path to chain.pem file (chain). - -
- -#### **HEARTBEAT** (`60`) - -Number of seconds to wait in between database checks - -
- -#### **DEBUG_MINIFY** (`true`) - -Debug option, setting to `false` will disable bundle minification to help tracking down error and speed up development - -
- -#### **DE_NORMALIZE_DATES**(`true`) - -The Nightscout REST API normalizes all entered dates to UTC zone. Some Nightscout clients have broken date deserialization logic and expect to received back dates in zoned formats. Setting this variable to `true` causes the REST API to serialize dates sent to Nightscout in zoned format back to zoned format when served to clients over REST. - -
- ------- - -### Predefined values for your browser settings (optional) +### Predefined values for your browser settings (default) -#### **TIME_FORMAT** (`12`) +#### `TIME_FORMAT` (`12`) -Possible values `12` or `24` +Possible values `12` or `24`. This defines the horizontal timeline expressed as AM/PM or 0-24.
-#### **NIGHT_MODE** (`off`) +#### `NIGHT_MODE` (`off`) -Possible values `on` or `off` +Possible values `on` or `off`. Night mode has a lower brightness and contrast.
-#### **SHOW_RAWBG** (`never`) +#### `SHOW_RAWBG` (`never`) -Default setting for new browser views, for the display of raw CGM data (if available). (`always`, `never`, or `noise`) +Display of raw CGM data (this is a legacy feature). (`always`, `never`, or `noise`)
-#### **CUSTOM_TITLE** (`Nightscout`) - -This will change your Nightscout displayed name (top left) from default. +#### `CUSTOM_TITLE` (`Nightscout`) The display name for the Nightscout site. Appears in the upper left of the main view. Often set to the name of the CGM wearer. -#### **THEME** (`colors`) +#### `THEME` (`colors`) -Default setting for new browser views, for the color theme of the CGM graph. +Color theme of the CGM graph. `default` @@ -415,24 +364,26 @@ Default setting for new browser views, for the color theme of the CGM graph.
-#### **SHOW_PLUGINS** +#### `SHOW_PLUGINS` Default setting for whether or not these plugins are checked (active) by default, not merely enabled. Include plugins here as in the `ENABLE` line; space-separated and lower-case. +When you `ENABLE` a plugin, it will be used by Nightscout but might not be visible unless you select it in the [drawer menu](/nightscout/discover.md#settings). If you want a plugin to display by default you need to add it to the `SHOW_PLUGINS` list. + More details [below](#plugins).
-#### **SHOW_FORECAST** (`ar2`) +#### `SHOW_FORECAST` (`ar2`) Plugin forecasts that should be shown by default, supports space delimited values such as: -`"ar2 openaps loop false"` +`ar2 openaps loop false` Note the ar2 forecast is selected by default so if no value is set, it will be AR2. AR2 is an early attempt at forecasting BG and you should not base any medical decisions on it's predictions. -If you are looping, you can chose instead to use either `"loop"` or `"openaps"` which will use the appropriate algorithm. +If you are looping, you can chose instead to use either `loop` or `openaps` which will use the appropriate algorithm. -You should also add the parameter to the SHOW_PLUGINS and ENABLE variables. +You should also add the parameter to the `SHOW_PLUGINS` and `ENABLE` variables. For example, if you are using the Loop app for iPhone, you should have the following settings (In addition to any others outlined in the docs): @@ -444,7 +395,7 @@ SHOW_FORECAST=loop
-#### **LANGUAGE** (`en`) +#### `LANGUAGE` (`en`) Language of Nightscout. If not available English is used. @@ -452,7 +403,7 @@ Currently supported language codes are: `bg` (Български), `cs` (Češti
-#### **SCALE_Y** (`log`) +#### `SCALE_Y` (`log`) The type of scaling used for the Y axis of the charts system wide. @@ -470,7 +421,7 @@ The `log-dynamic` is similar to the default `log` options, but uses the same dyn
-#### **EDIT_MODE** (`on`) +#### `EDIT_MODE` (`on`) Possible values `on` or `off`. Enables the icon allowing for editing of treatments in the main view. More about edit [here](/nightscout/discover.md#edit-mode-edit). @@ -478,7 +429,7 @@ Possible values `on` or `off`. Enables the icon allowing for editing of treatmen
-#### **BOLUS_RENDER** +#### `BOLUS_RENDER` Settings to configure Bolus rendering @@ -494,40 +445,6 @@ Settings to configure Bolus rendering ------ -### Predefined values for your server settings (optional) - -#### **INSECURE_USE_HTTP** (`false`) - -```{warning} -Setting this variable to `true` will allow (unsafe) http traffic to your Nightscout instance and is **not recommended**. -``` - -Redirect unsafe http traffic to https. Possible values `false`, or `true`. Your site redirects to `https` by default. If you don't want that from Nightscout, but want to implement that with a Nginx or Apache proxy, set `INSECURE_USE_HTTP` to `true`. - -#### **SECURE_HSTS_HEADER** (`true`) - -Add HTTP Strict Transport Security (HSTS) header. Possible values `false`, or `true`. - -#### **SECURE_HSTS_HEADER_INCLUDESUBDOMAINS** (`false`) - -Include subdomains options for HSTS. Possible values `false`, or `true`. - -#### **SECURE_HSTS_HEADER_PRELOAD** (`false`) - -Ask for preload in browsers for HSTS. Possible values `false`, or `true`. - -#### **SECURE_CSP** (`false`) - -Add Content Security Policy headers. Possible values `false`, or `true`. - -#### **SECURE_CSP_REPORT_ONLY** (`false`) - -If set to `true` allows to experiment with policies by monitoring (but not enforcing) their effects. Possible values `false`, or `true`. - -
- ------- - ### Split View Some users will need easy access to multiple Nightscout views at the same time. We have a special view for this case, accessed on /split path on your Nightscout URL. The view supports any number of sites between 1 to 8 way split, where the content for the screen can be loaded from multiple Nightscout instances. Note you still need to host separate instances for each Nightscout being monitored including the one that hosts the split view page - these variables only add the ability to load multiple views into one browser page. To set the URLs from which the content is loaded, set: @@ -572,7 +489,7 @@ If you want the `ENABLE`'d plugins to **show by default on any browser**, you sh If you want to specifically disable a plugin (mainly a default plugin) you should place it in the `DISABLE` variable. -You also can decide to visualize them or not on your Nightscout view with the drawer menu. `Authenticate` and `Save` the settings on your browser. Heroku variables will not be modified and only default view will be seen on a new browser window. +You also can decide to visualize them or not on your Nightscout view with the drawer menu. `Authenticate` and `Save` the settings on your browser. Your site variables will not be modified and only default view will be seen on a new browser window. @@ -594,11 +511,11 @@ Calculates and displays the change between the last 2 BG values. Delta shows a ` #### `direction` (BG Direction) -Displays the trend direction. +Displays the trend direction, the arrow change is only based on the difference from the current to the latest measurement. #### `upbat` (Uploader Battery) -Displays the most recent battery status from the uploader phone. . Use these extended setting to adjust behavior: +Displays the most recent battery status from the uploader phone(s) and bridge. Use these extended setting to adjust behavior: `UPBAT_ENABLE_ALERTS` (`false`) - Set to `true` to enable uploader battery alarms via Pushover and IFTTT. @@ -701,7 +618,7 @@ Show size of Nightscout Database, as a percentage of declared available space or Many deployments of Nightscout use free tier of MongoDB Atlas on Heroku, which is limited in size to 512MiB. After some time, as volume of stored data grows, it may happen that this limit is reached and system is unable to store new data. This plugin provides pill that indicates size of Database and shows (when configured) alarms regarding reaching space limit. ```{admonition} IMPORTANT -This plugin can only check how much space database already takes, *but cannot infer* max size available on server for it. To have correct alarms and realistic percentage, `DBSIZE_MAX` need to be properly set - according to your mongoDB hosting configuration. +This plugin can only check how much space database already takes, *but cannot infer* max size available on server for it. To have correct alarms and realistic percentage, `DBSIZE_MAX` need to be properly set - according to your own mongoDB hosting configuration. ``` **NOTE:** This plugin rely on db.stats() for reporting *logical* size of database, which may be different than *physical* size of database on server. It may work for free tier of MongoDB on Atlas, since it calculate quota according to logical size too, but may fail for other hostings or self-hosted database with quota based on physical size. @@ -722,9 +639,9 @@ Extended settings available: ------ -## Advanced Plugins: +### Advanced Plugins: -### `careportal` (Careportal) +#### `careportal` (Careportal) An optional form to enter treatments. @@ -734,7 +651,7 @@ Care Portal is an important plugin that gives access to the `Log a treatment` in
-### `boluscalc` (Bolus Wizard) +#### `boluscalc` (Bolus Wizard) Bolus Wizard plugin gives access to the `Bolus Wizard` interface. You can access it with the calculator icon top right. @@ -742,7 +659,7 @@ Bolus Wizard plugin gives access to the `Bolus Wizard` interface. You can access
-### `food` (Custom Foods) +#### `food` (Custom Foods) Custom Foods enabled by the variable `food` allows to to customize your food database and adds a `Food Editor` entry in the menu. @@ -750,7 +667,7 @@ Custom Foods enabled by the variable `food` allows to to customize your food dat
-### `rawbg` (Raw BG) +#### `rawbg` (Raw BG) Calculates BG using sensor and calibration records from and displays an alternate BG values and noise levels. Defaults that can be adjusted with extended setting. Raw BG will only display if your sensor provides this data, your bridge device transfers it and your uploader sends it to Nightscout. @@ -766,17 +683,17 @@ Calculates BG using sensor and calibration records from and displays an alternat
-### `iob` (Insulin-on-Board) - `cob` (Carbs-on-Board) +#### `iob` (Insulin-on-Board) - `cob` (Carbs-on-Board)
-### `iob` (Insulin-on-Board) +#### `iob` (Insulin-on-Board) Adds the IOB pill visualization in the client and calculates values that used by other plugins. Uses treatments with insulin doses and the `dia` and `sens` fields from the treatment profile. -### `cob` (Carbs-on-Board) +#### `cob` (Carbs-on-Board) Adds the COB pill visualization in the client and calculates values that used by other plugins. Uses treatments with carb doses and the `carbs_hr`, `carbratio`, and `sens` fields from the treatment profile. @@ -784,7 +701,7 @@ When you enter the information with the Care Portal or Nightscout receives if fr
-### `bwp` (Bolus Wizard Preview) +#### `bwp` (Bolus Wizard Preview) This plugin in intended for the purpose of automatically snoozing alarms when the CGM indicates high blood sugar but there is also insulin on board (IOB) and secondly, alerting to user that it might be beneficial to measure the blood sugar using a glucometer and dosing insulin as calculated by the pump or instructed by trained medicare professionals. ***The values provided by the plugin are provided as a reference based on CGM data and insulin sensitivity you have configured, and are not intended to be used as a reference for bolus calculation.*** The plugin calculates the bolus amount when above your target, generates alarms when you should consider checking and bolusing, and snoozes alarms when there is enough IOB to cover a high BG. Uses the results of the `iob` plugin and `sens`, `target_high`, and `target_low` fields from the [treatment profile](/nightscout/profile_editor/). Defaults that can be adjusted with extended settings @@ -797,7 +714,7 @@ This plugin in intended for the purpose of automatically snoozing alarms when th
-### `age` (Age pills) +#### Age pills @@ -847,13 +764,13 @@ Calculates the number of days and hours since the last `Pump Battery Change` tre
-### `treatmentnotify` (Treatment Notifications) +#### `treatmentnotify` (Treatment Notifications) Generates notifications when a treatment has been entered and snoozes alarms minutes after a treatment. Default snooze is 10 minutes, and can be set using the `TREATMENTNOTIFY_SNOOZE_MINS` extended setting.
-### `basal` (Basal Profile) +#### `basal` (Basal Profile) @@ -875,7 +792,7 @@ or `icicle` (inverted)
-### `bridge` (Share2Nightscout bridge) +#### `bridge` (Share2Nightscout bridge) Glucose reading directly from the Dexcom Share service, uses these extended settings (***** mandatory): @@ -893,7 +810,7 @@ Glucose reading directly from the Dexcom Share service, uses these extended sett
-### `mmconnect` (MiniMed Connect bridge) +#### `mmconnect` (MiniMed Connect bridge) ```{warning} This plugin is **NOT** functional with 7xx pumps do not enable it. @@ -912,7 +829,7 @@ Transfer real-time MiniMed Connect data from the Medtronic CareLink server into
-### `pump` (Pump Monitoring) +#### `pump` (Pump Monitoring) @@ -938,7 +855,7 @@ Generic Pump Monitoring for OpenAPS, MiniMed Connect, RileyLink, t:slim, ... ------ -### `openaps` (OpenAPS) +#### `openaps` (OpenAPS) @@ -965,7 +882,7 @@ Also see [Pushover](https://github.com/nightscout/cgm-remote-monitor#pushover) a ------ -### `loop` (Loop) +#### `loop` (Loop) @@ -988,7 +905,7 @@ For remote overrides, the following extended settings must be configured:
-### `override` (Override Mode) +#### `override` (Override Mode) Additional monitoring for DIY automated insulin delivery systems to display real-time overrides such as Eating Soon or Exercise Mode: @@ -996,7 +913,7 @@ Additional monitoring for DIY automated insulin delivery systems to display real
-### `xdripjs` (xDrip-js) +#### `xdripjs` (xDrip-js) Integrated xDrip-js monitoring, uses these extended settings: @@ -1010,25 +927,25 @@ Integrated xDrip-js monitoring, uses these extended settings:
-### `alexa` (Amazon Alexa) +#### `alexa` (Amazon Alexa) Integration with Amazon Alexa, [detailed setup instructions](https://github.com/nightscout/cgm-remote-monitor/blob/master/docs/plugins/alexa-plugin.md)
-### `googlehome` (Google Home/DialogFlow) +#### `googlehome` (Google Home/DialogFlow) Integration with Google Home (via DialogFlow), [detailed setup instructions](https://github.com/nightscout/cgm-remote-monitor/blob/master/docs/plugins/googlehome-plugin.md)
-### `speech` (Speech) +#### `speech` (Speech) Speech synthesis plugin. When enabled, speaks out the blood glucose values, IOB and alarms. Note you have to set the LANGUAGE setting on the server to get all translated alarms.
-### `cors` (CORS) +#### `cors` (CORS) Enabled [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) so other websites can make request to your Nightscout site, uses these extended settings: @@ -1036,7 +953,7 @@ Enabled [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) so o
-### `dbsize` (Database Size) +#### `dbsize` (Database Size) diff --git a/docs/nightscout/tokens.md b/docs/nightscout/tokens.md index 5b370ec3..165b55b0 100644 --- a/docs/nightscout/tokens.md +++ b/docs/nightscout/tokens.md @@ -5,7 +5,7 @@ orphan: true ***Note: authentication tokens are also called access tokens*** ```{admonition} Changing API_SECRET -If you change your [`API_SECRET`](/nightscout/setup_variables.md#api_secret) all your tokens will change. Make sure you update your devices and send the new token link to those you allowed to access your Nightscout +If you change your [`API_SECRET`](api-secret) all your tokens will change. Make sure you update your devices and send the new token link to those you allowed to access your Nightscout ``` To access the Authentication options, click the settings panel (three horizontal bars in the top right) in your website and select Admin Tools. The Authentication options are at the top of the Admin page. (Note: you must be logged in with your `API SECRET` to access these tools.) diff --git a/docs/troubleshoot/dexcom_bridge.md b/docs/troubleshoot/dexcom_bridge.md index 27dea255..20947fb4 100644 --- a/docs/troubleshoot/dexcom_bridge.md +++ b/docs/troubleshoot/dexcom_bridge.md @@ -44,6 +44,12 @@ Common symptoms are:
+## Username is a phone number + +New users might have the phone app setup with their phone number including country code and the symbol `+`. This is not supported by Nightscout. Continue below and create a dependent account with an alphanumerical username. + +
+ ## Obtaining a username Dependent accounts can have a username. @@ -110,7 +116,7 @@ Variables location will depend on the platform you use: ::: :::{tab-item} Fly.io -[**→ Here**](/vendors/fly.io/new_user.md#editing-config-vars-in-fly-io) +[**→ Here**](editing-config-vars-in-fly-io) ::: :::{tab-item} Google Cloud diff --git a/docs/troubleshoot/fly.io.md b/docs/troubleshoot/fly.io.md index 78c1acab..c0b8e8f7 100644 --- a/docs/troubleshoot/fly.io.md +++ b/docs/troubleshoot/fly.io.md @@ -33,6 +33,8 @@ Follow [these instructions](https://fly.io/docs/hands-on/install-flyctl/) to ins
+(recover-fly-toml)= + ## Recover `fly.toml` Follow [these instructions](https://fly.io/docs/hands-on/install-flyctl/) to install `flyctl` on your computer. diff --git a/docs/troubleshoot/heroku.md b/docs/troubleshoot/heroku.md index 178d16ac..87c56e1a 100644 --- a/docs/troubleshoot/heroku.md +++ b/docs/troubleshoot/heroku.md @@ -2,6 +2,8 @@
+(heroku-nothing-here)= + ## There's nothing here @@ -38,6 +40,8 @@ When trying to deploy a new Nightscout site, this message appears when clicking
+(heroku-nogit)= + ## Cannot find cgm-remote-monitor in Heroku / No GitHub source visible When updating Nightscout, `cgm-remote-monitor` doesn't appear automatically in Heroku under your repository name. diff --git a/docs/troubleshoot/troubleshoot.md b/docs/troubleshoot/troubleshoot.md index f4316322..e4f0d985 100644 --- a/docs/troubleshoot/troubleshoot.md +++ b/docs/troubleshoot/troubleshoot.md @@ -66,7 +66,7 @@ Follow [these](/troubleshoot/github) instructions. Search your issue [there](/troubleshoot/heroku). -[There's nothing here, yet](/troubleshoot/heroku.md#there-s-nothing-here) can be due to billing issues. +[There's nothing here, yet](heroku-nothing-here) can be due to billing issues. An [Application error](/troubleshoot/heroku.md#application-error) means Heroku crashed. Restart it and check database size. @@ -88,7 +88,7 @@ Else go [there](/troubleshoot/railway). ## Fly.io -Fly.io troubleshooting is complex if you didn't save your `fly.toml` configuration. Check in your local clone of the `cgm-remote-monitor` project. If you can't find it, [recover it](/troubleshoot/fly.io#recover-fly-toml) first. +Fly.io troubleshooting is complex if you didn't save your `fly.toml` configuration. Check in your local clone of the `cgm-remote-monitor` project. If you can't find it, [recover it](recover-fly-toml) first. Try to redeploy your app. diff --git a/docs/update/upd_stack.md b/docs/update/upd_stack.md index 84891e44..d2c00413 100644 --- a/docs/update/upd_stack.md +++ b/docs/update/upd_stack.md @@ -57,7 +57,7 @@ It is good practice to maintain your Heroku stack up to date. Either when you re - Scroll down to the bottom of the page, select the `master` branch and click `Deploy Branch` ```{hint} -If you can't select the `master` branch or `Deploy Branch` doesn't do anything [reconnect GitHub](/troubleshoot/heroku.md#cannot-find-cgm-remote-monitor-in-heroku-no-github-source-visible). +If you can't select the `master` branch or `Deploy Branch` doesn't do anything [reconnect GitHub](heroku-nogit). ``` diff --git a/docs/vendors/10BE.md b/docs/vendors/10BE.md index 33f090a3..43a21d9b 100644 --- a/docs/vendors/10BE.md +++ b/docs/vendors/10BE.md @@ -5,4 +5,3 @@ orphan: true - diff --git a/docs/vendors/fly.io/new_user.md b/docs/vendors/fly.io/new_user.md index a1500613..25d38ed1 100644 --- a/docs/vendors/fly.io/new_user.md +++ b/docs/vendors/fly.io/new_user.md @@ -587,7 +587,7 @@ d) Inside your app you should see that it is running and has a clickable hostnam
- +(editing-config-vars-in-fly-io)= ## Editing Config Vars in Fly.io diff --git a/docs/vendors/northflank/migrate_a.md b/docs/vendors/northflank/migrate_a.md index eebda4f0..04e99074 100644 --- a/docs/vendors/northflank/migrate_a.md +++ b/docs/vendors/northflank/migrate_a.md @@ -2,8 +2,6 @@ orphan: true --- - - a) Go to your `Account` `Dashboard` - `Settings` and scroll down to `Import`. Select Heroku. diff --git a/docs/vendors/northflank/new_user_a.md b/docs/vendors/northflank/new_user_a.md index 4a8465e2..b7ef0041 100644 --- a/docs/vendors/northflank/new_user_a.md +++ b/docs/vendors/northflank/new_user_a.md @@ -93,14 +93,14 @@ i) You can add alarms values. See [here](/nightscout/setup_variables.md#alarms)
-j) If you want to ensure that ONLY someone with permission to view your site (e.g., a token or the `API_SECRET`) is able to view the data, you should configure the [`AUTH_DEFAULT_ROLES`](/nightscout/setup_variables.md#auth_default_roles) variable in as `denied`. +j) If you want to ensure that ONLY someone with permission to view your site (e.g., a token or the `API_SECRET`) is able to view the data, you should configure the [`AUTH_DEFAULT_ROLES`](auth_default_roles) variable in as `denied`. If you want your site to be visible to anybody leave it as `readable`.

-k) In [`ENABLE`](/nightscout/setup_variables.md#enable), copy and paste the following words (separated by a space) so that won't have to think about which you want now: +k) In [`ENABLE`](enable), copy and paste the following words (separated by a space) so that won't have to think about which you want now: `careportal basal dbsize rawbg iob maker cob bwp cage iage sage boluscalc pushover treatmentnotify loop pump profile food openaps bage alexa override speech cors` @@ -112,7 +112,7 @@ k) In [`ENABLE`](/nightscout/setup_variables.md#enable), copy and paste the foll
-l) You can modify the variables values, check the [documentation](../../../nightscout/setup_variables) for the meaning of each one. +l) You can modify the variables values, check the [documentation](/nightscout/setup_variables) for the meaning of each one.
diff --git a/docs/vendors/railway/new_user_a.md b/docs/vendors/railway/new_user_a.md index 13e74d9a..597d66bd 100644 --- a/docs/vendors/railway/new_user_a.md +++ b/docs/vendors/railway/new_user_a.md @@ -2,8 +2,6 @@ orphan: true --- -#
- a) Click on `Create a New project`.
diff --git a/docs/vendors/railway/new_user_b.md b/docs/vendors/railway/new_user_b.md index 029c9b3d..436ffa6e 100644 --- a/docs/vendors/railway/new_user_b.md +++ b/docs/vendors/railway/new_user_b.md @@ -119,14 +119,14 @@ You can update the alarms values. See [here](/nightscout/setup_variables.md#alar
-If you want to ensure that ONLY someone with permission to view your site (e.g., a token or the `API_SECRET`) is able to view the data, you should configure the [`AUTH_DEFAULT_ROLES`](/nightscout/setup_variables.md#auth_default_roles) variable in as `denied`. +If you want to ensure that ONLY someone with permission to view your site (e.g., a token or the `API_SECRET`) is able to view the data, you should configure the [`AUTH_DEFAULT_ROLES`](auth_default_roles) variable in as `denied`. If you want your site to be visible to anybody leave it as `readable`.

-A common list of [`enable`](/nightscout/setup_variables.md#enable) variables is predefined, you can change them if you know why. +A common list of [`enable`](enable) variables is predefined, you can change them if you know why. It's recommended that you leave them like this for now. Just remember to add `bridge` at the end if your get your BG values from Dexcom Share.