You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

322 lines
20 KiB

  1. <h1>Server Configuration</h1>
  2. <p>Healthchecks prepares its configuration in <code>hc/settings.py</code>. It reads configuration
  3. from environment variables. Below is a list of variables it reads and uses:</p>
  4. <h2 id="ALLOWED_HOSTS"><code>ALLOWED_HOSTS</code></h2>
  5. <p>Default: <code>*</code></p>
  6. <p>A list of strings representing the host/domain names that this site can serve.
  7. You can specify multiple domain names by separating them with commas:</p>
  8. <div class="highlight"><pre><span></span><code><span class="na">ALLOWED_HOSTS</span><span class="o">=</span><span class="s">my-hc.example.org,alternative-name.example.org</span>
  9. </code></pre></div>
  10. <p>Aside from the comma-separated syntax, this is a standard Django setting.
  11. Read more about it in the
  12. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#allowed-hosts">Django documentation</a>.</p>
  13. <h2 id="APPRISE_ENABLED"><code>APPRISE_ENABLED</code></h2>
  14. <p>Default: <code>False</code></p>
  15. <p>A boolean that turns on/off the <a href="https://github.com/caronc/apprise">Apprise</a>
  16. integration.</p>
  17. <p>Before enabling the Apprise integration, make sure the <code>apprise</code> package is installed:</p>
  18. <div class="highlight"><pre><span></span><code>pip install apprise
  19. </code></pre></div>
  20. <h2 id="DEBUG"><code>DEBUG</code></h2>
  21. <p>Default: <code>True</code></p>
  22. <p>A boolean that turns on/off debug mode.</p>
  23. <p><em>Never run a Healthchecks instance in production with the debug mode turned on!</em></p>
  24. <p>This is a standard Django setting, read more in
  25. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#debug">Django documentation</a>.</p>
  26. <h2 id="DEFAULT_FROM_EMAIL"><code>DEFAULT_FROM_EMAIL</code></h2>
  27. <p>Default: <code>[email protected]</code></p>
  28. <p>This is a standard Django setting, read more in
  29. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#default-from-email">Django documentation</a>.</p>
  30. <h2 id="DB"><code>DB</code></h2>
  31. <p>Default: <code>sqlite</code></p>
  32. <p>The database enginge to use. Possible values: <code>sqlite</code>, <code>postgres</code>, <code>mysql</code>.</p>
  33. <h2 id="DB_CONN_MAX_AGE"><code>DB_CONN_MAX_AGE</code></h2>
  34. <p>Default: <code>0</code></p>
  35. <p>This is a standard Django setting, read more in
  36. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#conn-max-age">Django documentation</a>.</p>
  37. <h2 id="DB_HOST"><code>DB_HOST</code></h2>
  38. <p>Default: <code>""</code> (empty string)</p>
  39. <p>This is a standard Django setting, read more in
  40. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#host">Django documentation</a>.</p>
  41. <h2 id="DB_NAME"><code>DB_NAME</code></h2>
  42. <p>Default: <code>hc</code> (PostgreSQL, MySQL) or <code>/path/to/projectdir/hc.sqlite</code> (SQLite)</p>
  43. <p>This is a standard Django setting, read more in
  44. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#name">Django documentation</a>.</p>
  45. <h2 id="DB_PASSWORD"><code>DB_PASSWORD</code></h2>
  46. <p>Default: <code>""</code> (empty string)</p>
  47. <p>This is a standard Django setting, read more in
  48. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#password">Django documentation</a>.</p>
  49. <h2 id="DB_PORT"><code>DB_PORT</code></h2>
  50. <p>Default: <code>""</code> (empty string)</p>
  51. <p>This is a standard Django setting, read more in
  52. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#port">Django documentation</a>.</p>
  53. <h2 id="DB_SSLMODE"><code>DB_SSLMODE</code></h2>
  54. <p>Default: <code>prefer</code></p>
  55. <p>PostgreSQL-specific, <a href="https://www.postgresql.org/docs/10/libpq-connect.html#LIBPQ-CONNECT-SSLMODE">details</a></p>
  56. <h2 id="DB_TARGET_SESSION_ATTRS"><code>DB_TARGET_SESSION_ATTRS</code></h2>
  57. <p>Default: <code>read-write</code></p>
  58. <p>PostgreSQL-specific, <a href="https://www.postgresql.org/docs/10/libpq-connect.html#LIBPQ-CONNECT-TARGET-SESSION-ATTRS">details</a></p>
  59. <h2 id="DB_USER"><code>DB_USER</code></h2>
  60. <p>Default: <code>postgres</code> (PostgreSQL) or <code>root</code> (MySQL)</p>
  61. <p>This is a standard Django setting, read more in
  62. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#user">Django documentation</a>.</p>
  63. <h2 id="DISCORD_CLIENT_ID"><code>DISCORD_CLIENT_ID</code></h2>
  64. <p>Default: <code>None</code></p>
  65. <p>The Discord Client ID, required by the Discord integration.</p>
  66. <p>To set up the Discord integration:</p>
  67. <ul>
  68. <li>Register a new application at
  69. <a href="https://discordapp.com/developers/applications/me">https://discordapp.com/developers/applications/me</a></li>
  70. <li>Add a Redirect URI to your Discord application. The URI format is
  71. <code>SITE_ROOT/integrations/add_discord/</code>. For example, if <code>your SITE_ROOT</code>
  72. is <code>https://my-hc.example.org</code> then the Redirect URI would be
  73. <code>https://my-hc.example.org/integrations/add_discord/</code></li>
  74. <li>Look up your Discord app's <em>Client ID</em> and <em>Client Secret</em>. Put them
  75. in the <code>DISCORD_CLIENT_ID</code> and <code>DISCORD_CLIENT_SECRET</code> environment
  76. variables.</li>
  77. </ul>
  78. <h2 id="DISCORD_CLIENT_SECRET"><code>DISCORD_CLIENT_SECRET</code></h2>
  79. <p>Default: <code>None</code></p>
  80. <p>The Discord Client Secret, required by the Discord integration. Look it up at
  81. <a href="https://discordapp.com/developers/applications/me">https://discordapp.com/developers/applications/me</a>.</p>
  82. <h2 id="EMAIL_HOST"><code>EMAIL_HOST</code></h2>
  83. <p>Default: <code>""</code> (empty string)</p>
  84. <p>This is a standard Django setting, read more in
  85. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#email-host">Django documentation</a>.</p>
  86. <h2 id="EMAIL_HOST_PASSWORD"><code>EMAIL_HOST_PASSWORD</code></h2>
  87. <p>Default: <code>""</code> (empty string)</p>
  88. <p>This is a standard Django setting, read more in
  89. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#email-host-password">Django documentation</a>.</p>
  90. <h2 id="EMAIL_HOST_USER"><code>EMAIL_HOST_USER</code></h2>
  91. <p>Default: <code>""</code> (empty string)</p>
  92. <p>This is a standard Django setting, read more in
  93. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#email-host-user">Django documentation</a>.</p>
  94. <h2 id="EMAIL_PORT"><code>EMAIL_PORT</code></h2>
  95. <p>Default: <code>587</code></p>
  96. <p>This is a standard Django setting, read more in
  97. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#email-port">Django documentation</a>.</p>
  98. <h2 id="EMAIL_USE_TLS"><code>EMAIL_USE_TLS</code></h2>
  99. <p>Default: <code>True</code></p>
  100. <p>This is a standard Django setting, read more in
  101. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#email-use-tls">Django documentation</a>.</p>
  102. <h2 id="EMAIL_USE_VERIFICATION"><code>EMAIL_USE_VERIFICATION</code></h2>
  103. <p>Default: <code>True</code></p>
  104. <p>A boolean that turns on/off a verification step when adding an email integration.</p>
  105. <p>If enabled, whenever an user adds an email integration, Healthchecks emails a
  106. verification link to the new address. The new integration becomes active only
  107. after user clicks the verification link.</p>
  108. <p>If you are setting up a private healthchecks instance where
  109. you trust your users, you can opt to disable the verification step. In that case,
  110. set <code>EMAIL_USE_VERIFICATION</code> to <code>False</code>.</p>
  111. <h2 id="LINENOTIFY_CLIENT_ID"><code>LINENOTIFY_CLIENT_ID</code></h2>
  112. <p>Default: <code>None</code></p>
  113. <h2 id="LINENOTIFY_CLIENT_SECRET"><code>LINENOTIFY_CLIENT_SECRET</code></h2>
  114. <p>Default: <code>None</code></p>
  115. <h2 id="MASTER_BADGE_URL"><code>MASTER_BADGE_LABEL</code></h2>
  116. <p>Default: same as <code>SITE_NAME</code></p>
  117. <p>The label for the "Overall Status" status badge.</p>
  118. <h2 id="MATRIX_ACCESS_TOKEN"><code>MATRIX_ACCESS_TOKEN</code></h2>
  119. <p>Default: <code>None</code></p>
  120. <p>The <a href="https://matrix.org/">Matrix</a> bot user's access token, required by the Matrix
  121. integration.</p>
  122. <p>To set up the Matrix integration:</p>
  123. <ul>
  124. <li>Register a bot user (for posting notifications) in your preferred Matrix homeserver.</li>
  125. <li>Use the <a href="https://www.matrix.org/docs/guides/client-server-api#login">Login API call</a>
  126. to retrieve bot user's access token. You can run it as shown in the documentation,
  127. using curl in command shell.</li>
  128. <li>Set the <code>MATRIX_</code> environment variables. Example:</li>
  129. </ul>
  130. <div class="highlight"><pre><span></span><code><span class="na">MATRIX_ACCESS_TOKEN</span><span class="o">=</span><span class="s">[a long string of characters returned by the login call]</span>
  131. <span class="na">MATRIX_HOMESERVER</span><span class="o">=</span><span class="s">https://matrix.org</span>
  132. <span class="na">MATRIX_USER_ID</span><span class="o">=</span><span class="s">@mychecks:matrix.org</span>
  133. </code></pre></div>
  134. <h2 id="MATRIX_HOMESERVER"><code>MATRIX_HOMESERVER</code></h2>
  135. <p>Default: <code>None</code></p>
  136. <p>The Matrix bot's homeserver address, required by the Matrix integration.</p>
  137. <h2 id="MATRIX_USER_ID"><code>MATRIX_USER_ID</code></h2>
  138. <p>Default: <code>None</code></p>
  139. <p>The Matrix bot's user identifier, required by the Matrix integration.</p>
  140. <h2 id="PD_VENDOR_KEY"><code>PD_VENDOR_KEY</code></h2>
  141. <p>Default: <code>None</code></p>
  142. <p><a href="https://www.pagerduty.com/">PagerDuty</a> vendor key,
  143. required by the PagerDuty integration.</p>
  144. <h2 id="PING_BODY_LIMIT"><code>PING_BODY_LIMIT</code></h2>
  145. <p>Default: <code>10000</code></p>
  146. <p>The upper size limit in bytes for logged ping request bodies.
  147. The default value is 10000 (10 kilobytes). You can adjust the limit or you can remove
  148. the it altogether by setting this value to <code>None</code>.</p>
  149. <h2 id="PING_EMAIL_DOMAIN"><code>PING_EMAIL_DOMAIN</code></h2>
  150. <p>Default: <code>localhost</code></p>
  151. <p>The domain to use for generating ping email addresses. Example:</p>
  152. <div class="highlight"><pre><span></span><code><span class="na">PING_EMAIL_DOMAIN</span><span class="o">=</span><span class="s">ping.my-hc.example.org</span>
  153. </code></pre></div>
  154. <p>In this example, Healthchecks would generate ping email addresses similar
  155. to <code>[email protected]</code>.</p>
  156. <h2 id="PING_ENDPOINT"><code>PING_ENDPOINT</code></h2>
  157. <p>Default: <code>SITE_ROOT</code> + <code>/ping/</code></p>
  158. <p>The base URL to use for generating ping URLs. Example:</p>
  159. <div class="highlight"><pre><span></span><code><span class="na">PING_ENDPOINT</span><span class="o">=</span><span class="s">https://ping.my-hc.example.org</span>
  160. </code></pre></div>
  161. <p>In this example, Healthchecks would generate ping URLs similar
  162. to <code>https://ping.my-hc.example.org/3f1a7317-8e96-437c-a17d-b0d550b51e86</code>.</p>
  163. <h2 id="PUSHBULLET_CLIENT_ID"><code>PUSHBULLET_CLIENT_ID</code></h2>
  164. <p>Default: <code>None</code></p>
  165. <h2 id="PUSHBULLET_CLIENT_SECRET"><code>PUSHBULLET_CLIENT_SECRET</code></h2>
  166. <p>Default: <code>None</code></p>
  167. <h2 id="PUSHOVER_API_TOKEN"><code>PUSHOVER_API_TOKEN</code></h2>
  168. <p>Default: <code>None</code></p>
  169. <p>The <a href="https://pushover.net/">Pushover</a> API token, required by the Pushover integration.</p>
  170. <p>To enable the Pushover integration:</p>
  171. <ul>
  172. <li>Register a new Pushover application at
  173. <a href="https://pushover.net/apps/build">https://pushover.net/apps/build</a>.</li>
  174. <li>Within the Pushover application configuration, enable subscriptions.
  175. Make sure the subscription type is set to "URL". Also make sure the redirect
  176. URL is configured to point back to the root of the Healthchecks instance
  177. (e.g., <code>https://my-hc.example.org/</code>).</li>
  178. <li>Put the Pushover application's <em>API Token</em> and the <em>Subscription URL</em> in
  179. <code>PUSHOVER_API_TOKEN</code> and <code>PUSHOVER_SUBSCRIPTION_URL</code> environment
  180. variables. The Pushover subscription URL should look similar to
  181. <code>https://pushover.net/subscribe/yourAppName-randomAlphaNumericData</code>.</li>
  182. </ul>
  183. <h2 id="PUSHOVER_EMERGENCY_EXPIRATION"><code>PUSHOVER_EMERGENCY_EXPIRATION</code></h2>
  184. <p>Default: <code>86400</code> (24 hours)</p>
  185. <p>Specifies how many seconds an emergency Pushoover notification
  186. will continue to be retried for.</p>
  187. <p>More information in <a href="https://pushover.net/api#priority">Pushover API documentation</a>.</p>
  188. <h2 id="PUSHOVER_EMERGENCY_RETRY_DELAY"><code>PUSHOVER_EMERGENCY_RETRY_DELAY</code></h2>
  189. <p>Default: <code>300</code> (5 minutes)</p>
  190. <p>Specifies how often (in seconds) the Pushover servers will send the same notification
  191. to the user.</p>
  192. <p>More information in <a href="https://pushover.net/api#priority">Pushover API documentation</a>.</p>
  193. <h2 id="PUSHOVER_SUBSCRIPTION_URL"><code>PUSHOVER_SUBSCRIPTION_URL</code></h2>
  194. <p>Default: <code>None</code></p>
  195. <p>The Pushover Subscription URL, required by the Pushover integration.</p>
  196. <h2 id="REGISTRATION_OPEN"><code>REGISTRATION_OPEN</code></h2>
  197. <p>Default: <code>True</code></p>
  198. <p>A boolean that controls whether site visitors can create new accounts.
  199. Set it to <code>False</code> if you are setting up a private Healthchecks instance, but
  200. it needs to be publicly accessible (so, for example, your cloud services
  201. can send pings to it).</p>
  202. <p>If you close new user registration, you can still selectively invite users
  203. to your team account.</p>
  204. <h2 id="REMOTE_USER_HEADER"><code>REMOTE_USER_HEADER</code></h2>
  205. <p>Default: <code>None</code></p>
  206. <p>Specifies the request header to use for external authentication.</p>
  207. <p>Healthchecks supports external authentication by means of HTTP headers set by
  208. reverse proxies or the WSGI server. This allows you to integrate it into your
  209. existing authentication system (e.g., LDAP or OAuth) via an authenticating proxy. When this option is enabled, <strong>Healtchecks will trust the header's value implicitly</strong>, so it is <strong>very important</strong> to ensure that attackers cannot set the value themselves (and thus impersonate any user). How to do this varies by your chosen proxy, but generally involves configuring it to strip out headers that normalize to the same name as the chosen identity header.</p>
  210. <p>To enable this feature, set the <code>REMOTE_USER_HEADER</code> value to a header you wish to authenticate with. HTTP headers will be prefixed with <code>HTTP_</code> and have any dashes converted to underscores. Headers without that prefix can be set by the WSGI server itself only, which is more secure.</p>
  211. <p>When <code>REMOTE_USER_HEADER</code> is set, Healthchecks will:
  212. - assume the header contains user's email address
  213. - look up and automatically log in the user with a matching email address
  214. - automatically create an user account if it does not exist
  215. - disable the default authentication methods (login link to email, password)</p>
  216. <h2 id="RP_ID"><code>RP_ID</code></h2>
  217. <p>Default: <code>None</code></p>
  218. <p>The <a href="https://www.w3.org/TR/webauthn-2/#relying-party-identifier">Relying Party identifier</a>,
  219. required by the WebAuthn second-factor authentication feature.</p>
  220. <p>Healthchecks optionally supports two-factor authentication using the WebAuthn
  221. standard. To enable WebAuthn support, set the <code>RP_ID</code> setting to a non-null value.
  222. Set its value to your site's domain without scheme and without port. For example,
  223. if your site runs on <code>https://my-hc.example.org</code>, set <code>RP_ID</code> to <code>my-hc.example.org</code>.</p>
  224. <p>Note that WebAuthn requires HTTPS, even if running on localhost. To test WebAuthn
  225. locally with a self-signed certificate, you can use the <code>runsslserver</code> command
  226. from the <code>django-sslserver</code> package.</p>
  227. <h2 id="SECRET_KEY"><code>SECRET_KEY</code></h2>
  228. <p>Default: <code>""</code> (empty string)</p>
  229. <p>A secret key used for cryptographic signing.</p>
  230. <p>This is a standard Django setting, read more in
  231. <a href="https://docs.djangoproject.com/en/3.1/ref/settings/#secret-key">Django documentation</a>.</p>
  232. <h2 id="SHELL_ENABLED"><code>SHELL_ENABLED</code></h2>
  233. <p>Default: <code>False</code></p>
  234. <p>A boolean that turns on/off the "Shell Commands" integration.</p>
  235. <p>The "Shell Commands" integration runs user-defined local shell commands when checks
  236. go up or down. This integration is disabled by default, and can be enabled by setting
  237. the <code>SHELL_ENABLED</code> environment variable to <code>True</code>.</p>
  238. <p>Note: be careful when using "Shell Commands" integration, and only enable it when
  239. you fully trust the users of your Healthchecks instance. The commands will be executed
  240. by the <code>manage.py sendalerts</code> process, and will run with its system permissions.</p>
  241. <h2 id="SIGNAL_CLI_ENABLED"><code>SIGNAL_CLI_ENABLED</code></h2>
  242. <p>Default: <code>False</code></p>
  243. <p>A boolean that turns on/off the <a href="https://signal.org/">Signal</a> integration.</p>
  244. <p>Healthchecks uses <a href="https://github.com/AsamK/signal-cli">signal-cli</a> to send Signal
  245. notifications. Healthcecks interacts with signal-cli over DBus.</p>
  246. <p>To enable the Signal integration:</p>
  247. <ul>
  248. <li>Set up and configure signal-cli to listen on DBus system bus
  249. (<a href="https://github.com/AsamK/signal-cli/wiki/DBus-service">instructions</a>).
  250. Make sure you can send test messages from command line, using the <code>dbus-send</code>
  251. example given in the signal-cli instructions.</li>
  252. <li>Set the <code>SIGNAL_CLI_ENABLED</code> environment variable to <code>True</code>.</li>
  253. </ul>
  254. <h2 id="SITE_ROOT"><code>SITE_ROOT</code></h2>
  255. <p>Default: <code>http://localhost:8000</code></p>
  256. <p>The base URL of this Healthchecks instance. Healthchecks uses <code>SITE_ROOT</code> whenever
  257. it needs to construct absolute URLs.</p>
  258. <h2 id="SITE_NAME"><code>SITE_NAME</code></h2>
  259. <p>Default: <code>Mychecks</code></p>
  260. <p>The display name of this Healthchecks instance. Healthchecks uses it throughout
  261. its web UI and documentation.</p>
  262. <h2 id="SLACK_CLIENT_ID"><code>SLACK_CLIENT_ID</code></h2>
  263. <p>Default: <code>None</code></p>
  264. <p>The Slack Client ID, required by the Slack integration.</p>
  265. <p>Go to <a href="https://api.slack.com/apps/">https://api.slack.com/apps/</a>
  266. to create a <em>Slack app</em>, and look up its <em>Client ID</em> and <em>Client Secret</em>.</p>
  267. <p>When setting up the Slack app, make sure to:</p>
  268. <ul>
  269. <li>Add the <a href="https://api.slack.com/scopes/incoming-webhook">incoming-webhook</a>
  270. scope to the Bot Token Scopes.</li>
  271. <li>Add a <em>Redirect URL</em> in the format <code>SITE_ROOT/integrations/add_slack_btn/</code>.
  272. For example, if your <code>SITE_ROOT</code> is <code>https://my-hc.example.org</code> then the
  273. Redirect URL would be <code>https://my-hc.example.org/integrations/add_slack_btn/</code>.</li>
  274. </ul>
  275. <h2 id="SLACK_CLIENT_SECRET"><code>SLACK_CLIENT_SECRET</code></h2>
  276. <p>Default: <code>None</code></p>
  277. <p>The Slack Client Secret, required by the Slack integration.
  278. Look it up at <a href="https://api.slack.com/apps/">https://api.slack.com/apps/</a>.</p>
  279. <h2 id="TELEGRAM_BOT_NAME"><code>TELEGRAM_BOT_NAME</code></h2>
  280. <p>Default: <code>ExampleBot</code></p>
  281. <p>The <a href="https://telegram.org/">Telegram</a> bot name, required by the Telegram integration.</p>
  282. <p>To set up the Telegram integration:</p>
  283. <ul>
  284. <li>Create a Telegram bot by talking to the
  285. <a href="https://core.telegram.org/bots#6-botfather">BotFather</a>. Set the bot's name,
  286. description, user picture, and add a "/start" command.</li>
  287. <li>After creating the bot you will have the bot's name and token. Put them
  288. in <code>TELEGRAM_BOT_NAME</code> and <code>TELEGRAM_TOKEN</code> environment variables.</li>
  289. <li>Run the <code>settelegramwebhook</code> management command. This command tells Telegram
  290. where to forward channel messages by invoking Telegram's
  291. <a href="https://core.telegram.org/bots/api#setwebhook">setWebhook</a> API call:</li>
  292. </ul>
  293. <div class="highlight"><pre><span></span><code>$ ./manage.py settelegramwebhook
  294. Done, Telegram<span class="err">&#39;</span>s webhook <span class="nb">set</span> to: https://my-monitoring-project.com/integrations/telegram/bot/
  295. </code></pre></div>
  296. <p>For this to work, your <code>SITE_ROOT</code> must be publicy accessible and use the "https://"
  297. scheme.</p>
  298. <h2 id="TELEGRAM_TOKEN"><code>TELEGRAM_TOKEN</code></h2>
  299. <p>Default: <code>None</code></p>
  300. <p>The Telegram bot user's authentication token, required by the Telegram integration.</p>
  301. <h2 id="TRELLO_APP_KEY"><code>TRELLO_APP_KEY</code></h2>
  302. <p>Default: <code>None</code></p>
  303. <p>The <a href="https://trello.com/">Trello</a> app key, required by the Trello integration.</p>
  304. <p>To set up the Trello integration, get a developer API key from
  305. <a href="https://trello.com/app-key">https://trello.com/app-key</a> and put it in the
  306. <code>TRELLO_APP_KEY</code> environment variable.</p>
  307. <h2 id="TWILIO_ACCOUNT"><code>TWILIO_ACCOUNT</code></h2>
  308. <p>Default: <code>None</code></p>
  309. <h2 id="TWILIO_AUTH"><code>TWILIO_AUTH</code></h2>
  310. <p>Default: <code>None</code></p>
  311. <h2 id="TWILIO_FROM"><code>TWILIO_FROM</code></h2>
  312. <p>Default: <code>None</code></p>
  313. <h2 id="TWILIO_USE_WHATSAPP"><code>TWILIO_USE_WHATSAPP</code></h2>
  314. <p>Default: <code>False</code></p>
  315. <h2 id="USE_PAYMENTS"><code>USE_PAYMENTS</code></h2>
  316. <p>Default: <code>False</code></p>
  317. <p>A boolean that turns on/off billing features.</p>