From ed8764d0c687ac5ddff6d563de2ef049518fd40b Mon Sep 17 00:00:00 2001
From: realaravinth <realaravinth@users.noreply.github.com>
Date: Mon, 1 Aug 2022 17:39:10 +0000
Subject: [PATCH] deploy: d4fcc312f9cec5239a714b95058a3324a3979209

---
 404.html                                                      | 2 +-
 about/index.html                                              | 2 +-
 blog/december-2021-monthly-report/index.html                  | 2 +-
 blog/index.html                                               | 2 +-
 blog/june-2022-monthly-report/index.html                      | 2 +-
 blog/may-2022-monthly-report/index.html                       | 2 +-
 blog/pow-performance/index.html                               | 2 +-
 blog/say-hello-to-mcaptcha/index.html                         | 2 +-
 blog/survey/index.html                                        | 2 +-
 community/index.html                                          | 2 +-
 contact/index.html                                            | 2 +-
 contributors/aravinth-manivannan/index.html                   | 2 +-
 contributors/index.html                                       | 2 +-
 docs/api/browser/index.html                                   | 2 +-
 docs/api/index.html                                           | 2 +-
 docs/api/mcaptcha-system/index.html                           | 2 +-
 docs/api/pow-sha256/index.html                                | 2 +-
 docs/help/faq/index.html                                      | 2 +-
 docs/help/index.html                                          | 2 +-
 docs/help/troubleshooting/index.html                          | 2 +-
 docs/index.html                                               | 2 +-
 docs/introduction/configuring-difficulty-factor/index.html    | 2 +-
 docs/introduction/index.html                                  | 2 +-
 docs/introduction/installing-captcha/index.html               | 4 ++--
 docs/self-hosted/bare-metal/index.html                        | 2 +-
 docs/self-hosted/dependencies/index.html                      | 2 +-
 docs/self-hosted/docker/index.html                            | 2 +-
 docs/self-hosted/getting-started/index.html                   | 2 +-
 docs/self-hosted/index.html                                   | 2 +-
 docs/terminology/access-token/index.html                      | 2 +-
 docs/terminology/cooldown-period/index.html                   | 2 +-
 docs/terminology/difficulty-factor/index.html                 | 2 +-
 docs/terminology/index.html                                   | 2 +-
 docs/terminology/sitekey/index.html                           | 2 +-
 docs/terminology/visitor-threshold/index.html                 | 2 +-
 donate/index.html                                             | 2 +-
 index.html                                                    | 2 +-
 ...912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js | 2 +-
 privacy-policy/index.html                                     | 2 +-
 security/index.html                                           | 2 +-
 thanks/index.html                                             | 2 +-
 41 files changed, 42 insertions(+), 42 deletions(-)
 rename index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js => index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js (99%)

diff --git a/404.html b/404.html
index 0d71c46..dd6ccac 100644
--- a/404.html
+++ b/404.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="noindex, follow"><title>404 Page not found - mCaptcha</title><meta name=description content="mCaptcha - PoW based DoS protection"><link rel=canonical href=/404.html><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="404 Page not found"><meta name=twitter:description content="mCaptcha - PoW based DoS protection"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="404 Page not found"><meta property="og:description" content="mCaptcha - PoW based DoS protection"><meta property="og:type" content="website"><meta property="og:url" content="/404.html"><meta property="og:image" content="/icon.png"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"404.Html","item":"\/404.html\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class=error404><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Page not found :(</h1><p class=text-center>The page you are looking for doesn't exist or has been moved.</p></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Page not found :(</h1><p class=text-center>The page you are looking for doesn't exist or has been moved.</p></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/about/index.html b/about/index.html
index 1fe14c0..6d481cf 100644
--- a/about/index.html
+++ b/about/index.html
@@ -15,4 +15,4 @@ is alien to us. For this reason, all of our source code is freely
 available(both as in freedom and beers) at our <a href=https://github.com/mCaptcha>GitHub</a>.</p><h2 id=people>People<a href=#people class=anchor aria-hidden=true>#</a></h2><ul><li><p><strong><a href=https://batsense.net>Aravinth Mavniannan</a>:</strong>
 Author</p></li><li><p><strong><a href=https://sibichakkaravarthy.github.io/>Prof. Sibi Chakkaravarthy
 Sethuraman</a>:</strong> Mentor and
-Security Advisor</p></li></ul><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/about/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+Security Advisor</p></li></ul><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/about/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/blog/december-2021-monthly-report/index.html b/blog/december-2021-monthly-report/index.html
index 98e8326..0f37f30 100644
--- a/blog/december-2021-monthly-report/index.html
+++ b/blog/december-2021-monthly-report/index.html
@@ -19,4 +19,4 @@ hCaptcha.</p><ul><li>Source code: <a href=https://github.com/mCaptcha/glue>mCapt
 task for folks that are justgetting started with mCaptcha.</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_20x0_resize_q75_box.jpg data-srcset="/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_500x0_resize_q75_box.jpg 500w" width=819 height=741 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with advance configuration options"><noscript><img class=img-fluid sizes=100vw srcset="/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-advanced-config_hu83b247380bbc427ee7cad0c8f4eadaf3_44711_500x0_resize_q75_box.jpg 500w" src=/blog/december-2021-monthly-report/captcha-advanced-config.jpg width=819 height=741 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with advance configuration options"></noscript><figcaption class=figure-caption>CAPTCHA creation with advance configuration options</figcaption></figure><p>A new CAPTCHA creation format is rolled out which generates a
 configuration from familiar metrics like average, peak and traffic that
 took the user&rsquo;s website down.</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_20x0_resize_q75_box.jpg data-srcset="/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_500x0_resize_q75_box.jpg 500w" width=776 height=556 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with easy configuration options"><noscript><img class=img-fluid sizes=100vw srcset="/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_900x0_resize_q75_box.jpg 900w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_800x0_resize_q75_box.jpg 800w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_700x0_resize_q75_box.jpg 700w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_600x0_resize_q75_box.jpg 600w,/blog/december-2021-monthly-report/captcha-easy-config_hue77a6c4a0bac5cb1e9727416c4edcb91_41711_500x0_resize_q75_box.jpg 500w" src=/blog/december-2021-monthly-report/captcha-easy-config.jpg width=776 height=556 alt="Screenshot of mCaptcha admin dashboard CAPTCHA creation form with easy configuration options"></noscript><figcaption class=figure-caption>CAPTCHA creation with easy configuration options</figcaption></figure><p>Of course, the advance option is available and can always be swished to
-at any moment!</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/may-2022-monthly-report/><div class="card my-1"><div class="card-body py-2">&larr; May, 2022: Monthly Report</div></div></a><a class=ms-auto href=/blog/survey/><div class="card my-1"><div class="card-body py-2">Survey &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/12-21-monthly-report/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+at any moment!</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/may-2022-monthly-report/><div class="card my-1"><div class="card-body py-2">&larr; May, 2022: Monthly Report</div></div></a><a class=ms-auto href=/blog/survey/><div class="card my-1"><div class="card-body py-2">Survey &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/12-21-monthly-report/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 6d82f81..53f2301 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Blog - mCaptcha</title><meta name=description content="mCaptcha Blog."><link rel=canonical href=/blog/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Blog"><meta name=twitter:description content="mCaptcha Blog."><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Blog"><meta property="og:description" content="mCaptcha Blog."><meta property="og:type" content="website"><meta property="og:url" content="/blog/"><meta property="og:image" content="/icon.png"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/blog/index.xml><link rel=sitemap type=application/xml href=/blog/sitemap.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"\/blog\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="blog list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class="nav-item active"><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Blog</h1><div class=text-center></div><div class=card-list><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/june-2022-monthly-report/>June, 2022: Monthly Report</a></h2><p>mCaptcha is successfully incorporated in India and ideas for mCaptcha commercial operations</p><p><small>Posted July 7, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited July 7, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/may-2022-monthly-report/>May, 2022: Monthly Report</a></h2><p>Python bindings to mCaptcha PoW, DDoS effectiveness measurement, major refactoring to prepare for support for other databases, We also tried to test its DoS defence effectiveness, and some exciting news regarding managed hosting!</p><p><small>Posted June 10, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>4&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/december-2021-monthly-report/>December, 2021: Monthly Report</a></h2><p>New features, improved accessibility and software integrations</p><p><small>Posted December 23, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/survey/>Survey</a></h2><p>We are conducting a survey to benchmark and gather performance metrics of our system on various devices</p><p><small>Posted October 28, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>1&nbsp;min read</strong></small><p><p><small>Last Edited December 23, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/pow-performance/>PoW performance</a></h2><p>PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?</p><p><small>Posted September 1, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited September 1, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/say-hello-to-mcaptcha/>Say hello to mCaptcha</a></h2><p>Introducing mCaptcha, a kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. Oh and UX is great too!</p><p><small>Posted May 26, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited December 2, 2021</small><p></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class="nav-item active"><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Blog</h1><div class=text-center></div><div class=card-list><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/june-2022-monthly-report/>June, 2022: Monthly Report</a></h2><p>mCaptcha is successfully incorporated in India and ideas for mCaptcha commercial operations</p><p><small>Posted July 7, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited July 7, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/may-2022-monthly-report/>May, 2022: Monthly Report</a></h2><p>Python bindings to mCaptcha PoW, DDoS effectiveness measurement, major refactoring to prepare for support for other databases, We also tried to test its DoS defence effectiveness, and some exciting news regarding managed hosting!</p><p><small>Posted June 10, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>4&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/december-2021-monthly-report/>December, 2021: Monthly Report</a></h2><p>New features, improved accessibility and software integrations</p><p><small>Posted December 23, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/survey/>Survey</a></h2><p>We are conducting a survey to benchmark and gather performance metrics of our system on various devices</p><p><small>Posted October 28, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>1&nbsp;min read</strong></small><p><p><small>Last Edited December 23, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/pow-performance/>PoW performance</a></h2><p>PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?</p><p><small>Posted September 1, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited September 1, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/say-hello-to-mcaptcha/>Say hello to mCaptcha</a></h2><p>Introducing mCaptcha, a kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. Oh and UX is great too!</p><p><small>Posted May 26, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited December 2, 2021</small><p></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/blog/june-2022-monthly-report/index.html b/blog/june-2022-monthly-report/index.html
index 4548de8..3097b18 100644
--- a/blog/june-2022-monthly-report/index.html
+++ b/blog/june-2022-monthly-report/index.html
@@ -22,4 +22,4 @@ to device mechanisms to prevent me or any future party with influence in
 mCaptcha development from hurting the project by it non-free.</p><p>Hostea is also an experiment in Free Software commercial operations, so
 naturally I&rsquo;m highly impressed by the ideas that are being discussed
 there. mCaptcha, too, will borrow ideas from that project to make its
-development economically sustainable.</p></article><div class="docs-navigation d-flex justify-content-between"><a class=ms-auto href=/blog/may-2022-monthly-report/><div class="card my-1"><div class="card-body py-2">May, 2022: Monthly Report &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/06-22-monthly-report/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+development economically sustainable.</p></article><div class="docs-navigation d-flex justify-content-between"><a class=ms-auto href=/blog/may-2022-monthly-report/><div class="card my-1"><div class="card-body py-2">May, 2022: Monthly Report &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/06-22-monthly-report/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/blog/may-2022-monthly-report/index.html b/blog/may-2022-monthly-report/index.html
index 6e59865..c2f6033 100644
--- a/blog/may-2022-monthly-report/index.html
+++ b/blog/may-2022-monthly-report/index.html
@@ -113,4 +113,4 @@ publicly made, funding and expenses publicly documented, and all
 collaborations, too, publicly documented. This of course doesn&rsquo;t imply
 that private, personally identifiable information(addresses and phone
 numbers, for instance) will be publicly disclosed. Such information will
-be redacted and published.</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/june-2022-monthly-report/><div class="card my-1"><div class="card-body py-2">&larr; June, 2022: Monthly Report</div></div></a><a class=ms-auto href=/blog/december-2021-monthly-report/><div class="card my-1"><div class="card-body py-2">December, 2021: Monthly Report &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/05-22-monthly-report/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+be redacted and published.</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/june-2022-monthly-report/><div class="card my-1"><div class="card-body py-2">&larr; June, 2022: Monthly Report</div></div></a><a class=ms-auto href=/blog/december-2021-monthly-report/><div class="card my-1"><div class="card-body py-2">December, 2021: Monthly Report &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/05-22-monthly-report/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/blog/pow-performance/index.html b/blog/pow-performance/index.html
index f1eb3ea..0e7336f 100644
--- a/blog/pow-performance/index.html
+++ b/blog/pow-performance/index.html
@@ -22,4 +22,4 @@ much.</p><hr><p>P.S Work is underway to benchmark multiple platforms. A detailed
 will be published when that data is available.</p><p>For this post, I asked some of my friends to run the tests on their
 computers. The results slightly varied but even the slowest case
 generated proof for 4500000 difficulty(the highest in this test), in under
-15 seconds!</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/survey/><div class="card my-1"><div class="card-body py-2">&larr; Survey</div></div></a><a class=ms-auto href=/blog/say-hello-to-mcaptcha/><div class="card my-1"><div class="card-body py-2">Say hello to mCaptcha &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/pow-performance/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+15 seconds!</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/survey/><div class="card my-1"><div class="card-body py-2">&larr; Survey</div></div></a><a class=ms-auto href=/blog/say-hello-to-mcaptcha/><div class="card my-1"><div class="card-body py-2">Say hello to mCaptcha &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/pow-performance/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/blog/say-hello-to-mcaptcha/index.html b/blog/say-hello-to-mcaptcha/index.html
index 7fdf7f5..89f17b6 100644
--- a/blog/say-hello-to-mcaptcha/index.html
+++ b/blog/say-hello-to-mcaptcha/index.html
@@ -22,4 +22,4 @@ share their knowledge with others. If everything was labeled
 intellectual property, we might still be stuck in Stone Age. The idea of
 intellectual property is alien to us. For this reason, all of our source
 code is freely available(both as in freedom and beers) at <a href=https://github.com/mCaptcha/>our
-GitHub</a>.</p><h2 id=resources>Resources</h2><ul><li><a href=https://github.com/mCaptcha/guard>guard</a> - mCaptcha backend <code>AGPL</code></li><li><a href=https://github.com/mCaptcha/browser>frontend library</a> - mCaptcha frontend library. <code>MIT/APACHE</code></li></ul></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/pow-performance/><div class="card my-1"><div class="card-body py-2">&larr; PoW performance</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/say-hello-to-mcaptcha/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+GitHub</a>.</p><h2 id=resources>Resources</h2><ul><li><a href=https://github.com/mCaptcha/guard>guard</a> - mCaptcha backend <code>AGPL</code></li><li><a href=https://github.com/mCaptcha/browser>frontend library</a> - mCaptcha frontend library. <code>MIT/APACHE</code></li></ul></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/pow-performance/><div class="card my-1"><div class="card-body py-2">&larr; PoW performance</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/say-hello-to-mcaptcha/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/blog/survey/index.html b/blog/survey/index.html
index 2915d32..bc191bb 100644
--- a/blog/survey/index.html
+++ b/blog/survey/index.html
@@ -12,4 +12,4 @@ various devices and browsers. The data collected from the survey will be made
 public, we believe it will guide sysadmins configure difficulty factor
 properly.</p><p>If you are interested in the lucky draw, please save the <code>submission ID</code> and the <code>proof</code> will be presented
 to you at the end of the survey.</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_20x0_resize_q75_box.jpg data-srcset="/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_900x0_resize_q75_box.jpg 900w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_800x0_resize_q75_box.jpg 800w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_700x0_resize_q75_box.jpg 700w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_600x0_resize_q75_box.jpg 600w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_500x0_resize_q75_box.jpg 500w" width=1129 height=325 alt="survey lucky draw identifier credentials"><noscript><img class=img-fluid sizes=100vw srcset="/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_900x0_resize_q75_box.jpg 900w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_800x0_resize_q75_box.jpg 800w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_700x0_resize_q75_box.jpg 700w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_600x0_resize_q75_box.jpg 600w,/blog/survey/survey-id_huff9ec74d3d162f9d0221fc73fa41d293_43947_500x0_resize_q75_box.jpg 500w" src=/blog/survey/survey-id.jpg width=1129 height=325 alt="survey lucky draw identifier credentials"></noscript><figcaption class=figure-caption>Lucky draw credentials</figcaption></figure><h2 id=winners>Winners</h2><p>This blog post will be updated with the winning submission IDs and the
-winners should provide the matching <code>proof</code> to claim their rewards.</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/december-2021-monthly-report/><div class="card my-1"><div class="card-body py-2">&larr; December, 2021: Monthly Report</div></div></a><a class=ms-auto href=/blog/pow-performance/><div class="card my-1"><div class="card-body py-2">PoW performance &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/survey/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+winners should provide the matching <code>proof</code> to claim their rewards.</p></article><div class="docs-navigation d-flex justify-content-between"><a href=/blog/december-2021-monthly-report/><div class="card my-1"><div class="card-body py-2">&larr; December, 2021: Monthly Report</div></div></a><a class=ms-auto href=/blog/pow-performance/><div class="card my-1"><div class="card-body py-2">PoW performance &rarr;</div></div></a></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/survey/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
index ad44796..1d3b538 100644
--- a/community/index.html
+++ b/community/index.html
@@ -5,4 +5,4 @@
 <a href=https://gts.batsense.net/@mcaptcha>@mCapthca@batsense.net</a>, toot at
 us for queries and whatnot :)</p><h2 id=official-twitter-handle>Official Twitter handle<a href=#official-twitter-handle class=anchor aria-hidden=true>#</a></h2><p>The project also has a twitter twitter presence at <a href=https://twitter.com/m_captcha/>@m_captcha(Nitter
 hyperlink)</a>. This space is used in
-addition to the blog to post short updates.</p><h2 id=lead-developer-email>Lead developer email<a href=#lead-developer-email class=anchor aria-hidden=true>#</a></h2><p>Write to me at <a href=mailto:realaravinth@batsense.net>realaravinth@batsense.net</a>!</p><h2 id=bug-reports>Bug reports<a href=#bug-reports class=anchor aria-hidden=true>#</a></h2><p>We use GitHub for managing tickets</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/community/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+addition to the blog to post short updates.</p><h2 id=lead-developer-email>Lead developer email<a href=#lead-developer-email class=anchor aria-hidden=true>#</a></h2><p>Write to me at <a href=mailto:realaravinth@batsense.net>realaravinth@batsense.net</a>!</p><h2 id=bug-reports>Bug reports<a href=#bug-reports class=anchor aria-hidden=true>#</a></h2><p>We use GitHub for managing tickets</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/community/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/contact/index.html b/contact/index.html
index 2fb7797..c22d8c6 100644
--- a/contact/index.html
+++ b/contact/index.html
@@ -6,4 +6,4 @@ community</a>, come say
 hi!.</p><h2 id=lead-developer>Lead developer<a href=#lead-developer class=anchor aria-hidden=true>#</a></h2><p>You can find me(<a href=/contributors/aravinth-manivannan/>@realaravinth</a>) on
 the <a href=https://matrix.to/#/@realaravinth:matrix.batsense.net>Matrix</a>, on
 <a href=https://github.com/realaravinth>GitHub</a> or email me at
-<a href=mailto:realaravinth@batsense.net>realaravinth@batense.net</a>.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/contact/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<a href=mailto:realaravinth@batsense.net>realaravinth@batense.net</a>.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/contact/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/contributors/aravinth-manivannan/index.html b/contributors/aravinth-manivannan/index.html
index 3c9de3a..51e228f 100644
--- a/contributors/aravinth-manivannan/index.html
+++ b/contributors/aravinth-manivannan/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Aravinth Manivannan - mCaptcha</title><meta name=description content="Creator of mCaptcha."><link rel=canonical href=/contributors/aravinth-manivannan/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Aravinth Manivannan"><meta name=twitter:description content="Creator of mCaptcha."><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Aravinth Manivannan"><meta property="og:description" content="Creator of mCaptcha."><meta property="og:type" content="website"><meta property="og:url" content="/contributors/aravinth-manivannan/"><meta property="og:image" content="/icon.png"><meta property="og:updated_time" content="2021-05-26T14:18:41+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/contributors/aravinth-manivannan/index.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Contributorsaravinth Manivannan","item":"\/contributorsaravinth-manivannan\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="contributors list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Aravinth Manivannan</h1><div class=text-center><p>Creator of mCaptcha.</p><p><a href=https://batsense.net>@realaravinth</a></p></div><div class=card-list><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/june-2022-monthly-report/>June, 2022: Monthly Report</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted July 7, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited July 7, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/may-2022-monthly-report/>May, 2022: Monthly Report</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted June 10, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>4&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/december-2021-monthly-report/>December, 2021: Monthly Report</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted December 23, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/survey/>Survey</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted October 28, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>1&nbsp;min read</strong></small><p><p><small>Last Edited December 23, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/pow-performance/>PoW performance</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted September 1, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited September 1, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/say-hello-to-mcaptcha/>Say hello to mCaptcha</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted May 26, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited December 2, 2021</small><p></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Aravinth Manivannan</h1><div class=text-center><p>Creator of mCaptcha.</p><p><a href=https://batsense.net>@realaravinth</a></p></div><div class=card-list><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/june-2022-monthly-report/>June, 2022: Monthly Report</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted July 7, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited July 7, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/may-2022-monthly-report/>May, 2022: Monthly Report</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted June 10, 2022 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>4&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/december-2021-monthly-report/>December, 2021: Monthly Report</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted December 23, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited June 14, 2022</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/survey/>Survey</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted October 28, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>1&nbsp;min read</strong></small><p><p><small>Last Edited December 23, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/pow-performance/>PoW performance</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted September 1, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited September 1, 2021</small><p></div></div><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/blog/say-hello-to-mcaptcha/>Say hello to mCaptcha</a></h2><p>We are mCaptcha. We build kickass CAPTCHA systems that give (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p><small>Posted May 26, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited December 2, 2021</small><p></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/contributors/index.html b/contributors/index.html
index ee7aaef..9e79b56 100644
--- a/contributors/index.html
+++ b/contributors/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Contributors - mCaptcha</title><meta name=description content="The mCaptcha contributors."><link rel=canonical href=/contributors/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Contributors"><meta name=twitter:description content="The mCaptcha contributors."><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Contributors"><meta property="og:description" content="The mCaptcha contributors."><meta property="og:type" content="website"><meta property="og:url" content="/contributors/"><meta property="og:image" content="/icon.png"><meta property="og:updated_time" content="2021-05-26T14:18:41+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/contributors/index.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Contributors","item":"\/contributors\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="contributors list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Contributors</h1><div class=text-center><p>The mCaptcha contributors.</p></div><div class=card-list><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a></h2></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Contributors</h1><div class=text-center><p>The mCaptcha contributors.</p></div><div class=card-list><div class=card><div class=card-body><h2 class=h3><a class="stretched-link text-body" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a></h2></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/api/browser/index.html b/docs/api/browser/index.html
index 2ec8979..41728f0 100644
--- a/docs/api/browser/index.html
+++ b/docs/api/browser/index.html
@@ -13,4 +13,4 @@ verification proof token to the parent window, assuming it&rsquo;s loaded as
 an <code>iframe</code>.</p><ul><li>Source code:
 <a href=https://github.com/mCaptcha/mCaptcha/tree/master/templates/widget><code>mCaptcha/mCaptcha/templates/widget</code></a></li></ul><p>WebAssembly library which generates Proofs of Work for mCaptcha systems.</p><h2 id=proof-of-workpow-library>Proof-of-Work(PoW) library<a href=#proof-of-workpow-library class=anchor aria-hidden=true>#</a></h2><p>WebAssembly bindings(<a href=https://github.com/mCaptcha/pow_wasm><code>mCaptcha/pow_wasm</code></a>) are available for the main rust library(<a href=https://github.com/mCaptcha/pow_sha256><code>mCaptcha/pow_sha256</code></a>).</p><p>For browsers without support WebAssembly, a
 polyfill(<a href=https://github.com/mCaptcha/pow_sha256-polyfill><code>pow_sha256-polyfill</code></a>)
-is available.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/API/browser.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/help/troubleshooting/><div class="card my-1"><div class="card-body py-2">&larr; Troubleshooting</div></div></a><a class=ms-auto href=/docs/api/mcaptcha-system/><div class="card my-1"><div class="card-body py-2">mCaptcha System Library &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+is available.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/API/browser.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/help/troubleshooting/><div class="card my-1"><div class="card-body py-2">&larr; Troubleshooting</div></div></a><a class=ms-auto href=/docs/api/mcaptcha-system/><div class="card my-1"><div class="card-body py-2">mCaptcha System Library &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/api/index.html b/docs/api/index.html
index 4005683..6ea87ef 100644
--- a/docs/api/index.html
+++ b/docs/api/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>API - mCaptcha</title><meta name=description content="Documentation for libraries used in mCaptcha"><link rel=canonical href=/docs/api/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="API"><meta name=twitter:description content="Documentation for libraries used in mCaptcha"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="API"><meta property="og:description" content="Documentation for libraries used in mCaptcha"><meta property="og:type" content="website"><meta property="og:url" content="/docs/api/"><meta property="og:image" content="/icon.png"><meta property="og:updated_time" content="2022-08-01T22:24:03+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/docs/api/index.xml><link rel=sitemap type=application/xml href=/docs/api/sitemap.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docsapi","item":"\/docsapi\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>API</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/browser/>Browser Libraries &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/mcaptcha-system/>MCaptcha System Library &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/pow-sha256/>Pow_sha256 &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>API</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/browser/>Browser Libraries &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/mcaptcha-system/>MCaptcha System Library &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/pow-sha256/>Pow_sha256 &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/api/mcaptcha-system/index.html b/docs/api/mcaptcha-system/index.html
index 85d1bf5..2b3b864 100644
--- a/docs/api/mcaptcha-system/index.html
+++ b/docs/api/mcaptcha-system/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>mCaptcha System Library - mCaptcha</title><meta name=description content="API documenttion for the core Library used in mCaptcha"><link rel=canonical href=/docs/api/mcaptcha-system/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="mCaptcha System Library"><meta name=twitter:description content="API documenttion for the core Library used in mCaptcha"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="mCaptcha System Library"><meta property="og:description" content="API documenttion for the core Library used in mCaptcha"><meta property="og:type" content="article"><meta property="og:url" content="/docs/api/mcaptcha-system/"><meta property="og:image" content="/icon.png"><meta property="article:published_time" content="2021-03-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-08-01T20:24:18+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docsapimcaptcha System","item":"\/docsapimcaptcha-system\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Introduction</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/introduction/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li></ul><h3>Terminology</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/terminology/access-token/>Access token</a></li><li><a class=docs-link href=/docs/terminology/cooldown-period/>Cooldown Period</a></li><li><a class=docs-link href=/docs/terminology/difficulty-factor/>Difficulty Factor</a></li><li><a class=docs-link href=/docs/terminology/sitekey/>Site key</a></li><li><a class=docs-link href=/docs/terminology/visitor-threshold/>Visitor Threshold</a></li></ul><h3>Self-Hosted</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/self-hosted/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosted/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosted/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosted/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class="docs-link active" href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class=docs-link href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#versions>Versions</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9"><h1>mCaptcha System Library</h1><p class=lead></p><p>Documentation for the library used in mCaptcha core.</p><h2 id=versions>Versions<a href=#versions class=anchor aria-hidden=true>#</a></h2><ul><li><a href=https://mcaptcha.github.io/mCaptcha/m_captcha/index.html>master-branch</a></li><li><a href=/api-docs/m_captcha/0.1.3/m_captcha/index.html>0.1.3</a></li><li><a href=/api-docs/m_captcha/0.1.2/m_captcha/index.html>0.1.2</a></li><li><a href=/api-docs/m_captcha/0.1.1/m_captcha/index.html>0.1.1</a></li><li><a href=/api-docs/m_captcha/0.1.0/m_captcha/index.html>0.1.0</a></li></ul><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/API/mCaptcha-system.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/api/browser/><div class="card my-1"><div class="card-body py-2">&larr; Browser libraries</div></div></a><a class=ms-auto href=/docs/api/pow-sha256/><div class="card my-1"><div class="card-body py-2">pow_sha256 &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Introduction</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/introduction/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li></ul><h3>Terminology</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/terminology/access-token/>Access token</a></li><li><a class=docs-link href=/docs/terminology/cooldown-period/>Cooldown Period</a></li><li><a class=docs-link href=/docs/terminology/difficulty-factor/>Difficulty Factor</a></li><li><a class=docs-link href=/docs/terminology/sitekey/>Site key</a></li><li><a class=docs-link href=/docs/terminology/visitor-threshold/>Visitor Threshold</a></li></ul><h3>Self-Hosted</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/self-hosted/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosted/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosted/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosted/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class="docs-link active" href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class=docs-link href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#versions>Versions</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9"><h1>mCaptcha System Library</h1><p class=lead></p><p>Documentation for the library used in mCaptcha core.</p><h2 id=versions>Versions<a href=#versions class=anchor aria-hidden=true>#</a></h2><ul><li><a href=https://mcaptcha.github.io/mCaptcha/m_captcha/index.html>master-branch</a></li><li><a href=/api-docs/m_captcha/0.1.3/m_captcha/index.html>0.1.3</a></li><li><a href=/api-docs/m_captcha/0.1.2/m_captcha/index.html>0.1.2</a></li><li><a href=/api-docs/m_captcha/0.1.1/m_captcha/index.html>0.1.1</a></li><li><a href=/api-docs/m_captcha/0.1.0/m_captcha/index.html>0.1.0</a></li></ul><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/API/mCaptcha-system.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/api/browser/><div class="card my-1"><div class="card-body py-2">&larr; Browser libraries</div></div></a><a class=ms-auto href=/docs/api/pow-sha256/><div class="card my-1"><div class="card-body py-2">pow_sha256 &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/api/pow-sha256/index.html b/docs/api/pow-sha256/index.html
index f01c747..a1ba2cf 100644
--- a/docs/api/pow-sha256/index.html
+++ b/docs/api/pow-sha256/index.html
@@ -6,4 +6,4 @@
 additions. Primary of these being:</p><ul><li>PoW datatype now offers a constructor</li><li>Salt is no longer hard coded into the library, users can provide
 unique salts.</li></ul><p>Other small changes have also been included of various importance but
 mostly just stylistic/ease of use improvements.</p><h2 id=versions>Versions<a href=#versions class=anchor aria-hidden=true>#</a></h2><ul><li><a href=https://mcaptcha.github.io/pow_sha256/pow_sha256/index.html>master-branch</a></li><li><a href=/api-docs/pow_sha256/0.2.1/pow_sha256/index.html>0.2.1</a></li><li><a href=/api-docs/pow_sha256/0.2.0/pow_sha256/index.html>0.2.0</a></li><li><a href=/api-docs/pow_sha256/0.1.0/pow_sha256/index.html>0.1.0</a></li></ul><h2 id=changelog>Changelog<a href=#changelog class=anchor aria-hidden=true>#</a></h2><p>Changelog is available at the project&rsquo;s
-<a href=https://github.com/mCaptcha/pow_sha256/blob/master/CHANGELOG.md>repository</a></p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/API/pow-sha256.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/api/mcaptcha-system/><div class="card my-1"><div class="card-body py-2">&larr; mCaptcha System Library</div></div></a><a class=ms-auto href=/docs/help/faq/><div class="card my-1"><div class="card-body py-2">FAQ &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<a href=https://github.com/mCaptcha/pow_sha256/blob/master/CHANGELOG.md>repository</a></p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/API/pow-sha256.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/api/mcaptcha-system/><div class="card my-1"><div class="card-body py-2">&larr; mCaptcha System Library</div></div></a><a class=ms-auto href=/docs/help/faq/><div class="card my-1"><div class="card-body py-2">FAQ &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/help/faq/index.html b/docs/help/faq/index.html
index 1c73d8f..e2cea28 100644
--- a/docs/help/faq/index.html
+++ b/docs/help/faq/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>FAQ - mCaptcha</title><meta name=description content="Answers to frequently asked questions."><link rel=canonical href=/docs/help/faq/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="FAQ"><meta name=twitter:description content="Answers to frequently asked questions."><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="FAQ"><meta property="og:description" content="Answers to frequently asked questions."><meta property="og:type" content="article"><meta property="og:url" content="/docs/help/faq/"><meta property="og:image" content="/icon.png"><meta property="article:modified_time" content="2022-08-01T19:16:21+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docshelpfaq","item":"\/docshelpfaq\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Introduction</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/introduction/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li></ul><h3>Terminology</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/terminology/access-token/>Access token</a></li><li><a class=docs-link href=/docs/terminology/cooldown-period/>Cooldown Period</a></li><li><a class=docs-link href=/docs/terminology/difficulty-factor/>Difficulty Factor</a></li><li><a class=docs-link href=/docs/terminology/sitekey/>Site key</a></li><li><a class=docs-link href=/docs/terminology/visitor-threshold/>Visitor Threshold</a></li></ul><h3>Self-Hosted</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/self-hosted/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosted/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosted/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosted/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class=docs-link href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class="docs-link active" href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents></nav></div></nav><main class="docs-content col-lg-11 col-xl-9"><h1>FAQ</h1><p class=lead>Answers to frequently asked questions.</p><p>Coming soon</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/help/faq.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/api/pow-sha256/><div class="card my-1"><div class="card-body py-2">&larr; pow_sha256</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Introduction</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/introduction/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li></ul><h3>Terminology</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/terminology/access-token/>Access token</a></li><li><a class=docs-link href=/docs/terminology/cooldown-period/>Cooldown Period</a></li><li><a class=docs-link href=/docs/terminology/difficulty-factor/>Difficulty Factor</a></li><li><a class=docs-link href=/docs/terminology/sitekey/>Site key</a></li><li><a class=docs-link href=/docs/terminology/visitor-threshold/>Visitor Threshold</a></li></ul><h3>Self-Hosted</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/self-hosted/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosted/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosted/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosted/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class=docs-link href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class="docs-link active" href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents></nav></div></nav><main class="docs-content col-lg-11 col-xl-9"><h1>FAQ</h1><p class=lead>Answers to frequently asked questions.</p><p>Coming soon</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/help/faq.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/api/pow-sha256/><div class="card my-1"><div class="card-body py-2">&larr; pow_sha256</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/help/index.html b/docs/help/index.html
index 81380f3..935d7ab 100644
--- a/docs/help/index.html
+++ b/docs/help/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Help - mCaptcha</title><meta name=description content="Help mCaptcha."><link rel=canonical href=/docs/help/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Help"><meta name=twitter:description content="Help mCaptcha."><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Help"><meta property="og:description" content="Help mCaptcha."><meta property="og:type" content="website"><meta property="og:url" content="/docs/help/"><meta property="og:image" content="/icon.png"><meta property="og:updated_time" content="2021-07-21T15:49:53+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/docs/help/index.xml><link rel=sitemap type=application/xml href=/docs/help/sitemap.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docshelp","item":"\/docshelp\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Help</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/faq/>FAQ &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/troubleshooting/>Troubleshooting &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Help</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/faq/>FAQ &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/troubleshooting/>Troubleshooting &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/help/troubleshooting/index.html b/docs/help/troubleshooting/index.html
index 8164ad7..51d5e51 100644
--- a/docs/help/troubleshooting/index.html
+++ b/docs/help/troubleshooting/index.html
@@ -6,4 +6,4 @@ the instance is deployed at another hostname, please try setting
 <code>MCAPTCHA_SERVER_DOMAIN</code> environment variable to the hostname at which
 your instance is deployed or setting the equivalent in config.toml:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>[server]
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>domain=mydomain
-</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/help/troubleshooting.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/dependencies/><div class="card my-1"><div class="card-body py-2">&larr; Database and cache</div></div></a><a class=ms-auto href=/docs/api/browser/><div class="card my-1"><div class="card-body py-2">Browser libraries &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/help/troubleshooting.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/dependencies/><div class="card my-1"><div class="card-body py-2">&larr; Database and cache</div></div></a><a class=ms-auto href=/docs/api/browser/><div class="card my-1"><div class="card-body py-2">Browser libraries &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index ee07608..ec3b63a 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>mCaptcha - mCaptcha</title><meta name=description content="Docs mCaptcha"><link rel=canonical href=/docs/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="mCaptcha"><meta name=twitter:description content="Docs mCaptcha"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="mCaptcha"><meta property="og:description" content="Docs mCaptcha"><meta property="og:type" content="website"><meta property="og:url" content="/docs/"><meta property="og:image" content="/icon.png"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/docs/index.xml><link rel=sitemap type=application/xml href=/docs/sitemap.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docs","item":"\/docs\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>mCaptcha</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/access-token/>Access Token &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/browser/>Browser Libraries &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/cooldown-period/>Cooldown Period &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/dependencies/>Database and Cache &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/bare-metal/>Deploy Bare Metal &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/difficulty-factor/>Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/faq/>FAQ &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/getting-started/>Getting Started &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/installing-captcha/>Installing MCaptcha on Your Website &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/mcaptcha-system/>MCaptcha System Library &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/pow-sha256/>Pow_sha256 &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/sitekey/>Site Key &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/troubleshooting/>Troubleshooting &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/docker/>Using Docker &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/visitor-threshold/>Visitor Threshold &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>mCaptcha</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/access-token/>Access Token &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/browser/>Browser Libraries &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/cooldown-period/>Cooldown Period &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/dependencies/>Database and Cache &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/bare-metal/>Deploy Bare Metal &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/difficulty-factor/>Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/faq/>FAQ &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/getting-started/>Getting Started &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/installing-captcha/>Installing MCaptcha on Your Website &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/mcaptcha-system/>MCaptcha System Library &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/api/pow-sha256/>Pow_sha256 &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/sitekey/>Site Key &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/help/troubleshooting/>Troubleshooting &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/docker/>Using Docker &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/visitor-threshold/>Visitor Threshold &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/introduction/configuring-difficulty-factor/index.html b/docs/introduction/configuring-difficulty-factor/index.html
index 83cab52..f483afa 100644
--- a/docs/introduction/configuring-difficulty-factor/index.html
+++ b/docs/introduction/configuring-difficulty-factor/index.html
@@ -23,4 +23,4 @@ users to pass through without waiting on the CAPTCHA. But if 1000
 requests over 30 seconds will bring down the service, then the admin can
 configure increasing levels of difficulty factor of increasing traffic
 levels, effectively rate limiting its users and protecting the
-underlying website.</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_20x0_resize_box_2.png data-srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" width=720 height=407 alt="new sitekey form in advance mode"><noscript><img class=img-fluid sizes=100vw srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" src=/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode.png width=720 height=407 alt="new sitekey form in advance mode"></noscript></figure><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/introduction/configuring-difficulty-factor/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/introduction/installing-captcha/><div class="card my-1"><div class="card-body py-2">&larr; Installing mCaptcha on your website</div></div></a><a class=ms-auto href=/docs/terminology/access-token/><div class="card my-1"><div class="card-body py-2">Access token &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+underlying website.</p><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_20x0_resize_box_2.png data-srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" width=720 height=407 alt="new sitekey form in advance mode"><noscript><img class=img-fluid sizes=100vw srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" src=/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode.png width=720 height=407 alt="new sitekey form in advance mode"></noscript></figure><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/introduction/configuring-difficulty-factor/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/introduction/installing-captcha/><div class="card my-1"><div class="card-body py-2">&larr; Installing mCaptcha on your website</div></div></a><a class=ms-auto href=/docs/terminology/access-token/><div class="card my-1"><div class="card-body py-2">Access token &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/introduction/index.html b/docs/introduction/index.html
index f0f5b31..e18e492 100644
--- a/docs/introduction/index.html
+++ b/docs/introduction/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Introduction - mCaptcha</title><meta name=description content="Introduction to mCaptcha."><link rel=canonical href=/docs/introduction/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Introduction"><meta name=twitter:description content="Introduction to mCaptcha."><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Introduction"><meta property="og:description" content="Introduction to mCaptcha."><meta property="og:type" content="website"><meta property="og:url" content="/docs/introduction/"><meta property="og:image" content="/icon.png"><meta property="og:updated_time" content="2022-08-01T22:25:46+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/docs/introduction/index.xml><link rel=sitemap type=application/xml href=/docs/introduction/sitemap.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docsintroduction","item":"\/docsintroduction\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Introduction</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/installing-captcha/>Installing MCaptcha on Your Website &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Introduction</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/introduction/installing-captcha/>Installing MCaptcha on Your Website &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/introduction/installing-captcha/index.html b/docs/introduction/installing-captcha/index.html
index 7648048..97e72d7 100644
--- a/docs/introduction/installing-captcha/index.html
+++ b/docs/introduction/installing-captcha/index.html
@@ -33,7 +33,7 @@ the previous step.</p><div class=highlight><pre style=color:#f8f8f2;background-c
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f"> 9</span>  <span style=color:#ff79c6>new</span> mcaptchaGlue.<span style=color:#ff79c6>default</span>(config);
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">10</span>&lt;/<span style=color:#ff79c6>script</span>&gt;
 </code></pre></div><p>A full example is available
-<a href=https://github.com/mCaptcha/glue/blob/ea576d875457de54d82bed3edfc4ee68302fa4d8/packages/vanilla/static/embeded.html>here</a>.</p><h2 id=5-configure-backend-to-authenticate-captcha-tokens>5. Configure backend to authenticate CAPTCHA tokens<a href=#5-configure-backend-to-authenticate-captcha-tokens class=anchor aria-hidden=true>#</a></h2><ol><li><p>Get <a href=../../terminology/access-token>access token</a> from the user&rsquo;s
+<a href=https://github.com/mCaptcha/glue/blob/ea576d875457de54d82bed3edfc4ee68302fa4d8/packages/vanilla/static/embeded.html>here</a>.</p><h2 id=5-configure-backend-to-authenticate-captcha-tokens>5. Configure backend to authenticate CAPTCHA tokens<a href=#5-configure-backend-to-authenticate-captcha-tokens class=anchor aria-hidden=true>#</a></h2><ol><li><p>Get <a href=/docs/terminology/access-token>access token</a> from the user&rsquo;s
 form submission payload. The access token will be associated with a
 parameter called <code>mcaptcha__token</code>.</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span> mcaptcha_token <span style=color:#ff79c6>=</span> request<span style=color:#ff79c6>.</span>form[<span style=color:#f1fa8c>&#34;mcaptcha__token&#34;</span>]
 </code></pre></div></li><li><p>Validate access token with mCaptcha instance</p></li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-python data-lang=python><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f"> 1</span>payload <span style=color:#ff79c6>=</span> {
@@ -52,4 +52,4 @@ access.</li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">3</span> <span style=color:#ff79c6>else</span>:
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">4</span>     <span style=color:#ff79c6>return</span> allow_access_to_protected_resource(request<span style=color:#ff79c6>.</span>form)
 </code></pre></div><p>Please see here for a complete <a href=https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/server>Flask example</a> and here for an <a href=https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/rust-server/demo-server>Actix
-Web example</a>.</p><p>Congratulations, mCaptcha is now integrated with your website!</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/introduction/installing-captcha/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a class=ms-auto href=/docs/introduction/configuring-difficulty-factor/><div class="card my-1"><div class="card-body py-2">Configuring Difficulty Factor &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+Web example</a>.</p><p>Congratulations, mCaptcha is now integrated with your website!</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/introduction/installing-captcha/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a class=ms-auto href=/docs/introduction/configuring-difficulty-factor/><div class="card my-1"><div class="card-body py-2">Configuring Difficulty Factor &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/self-hosted/bare-metal/index.html b/docs/self-hosted/bare-metal/index.html
index a678677..1dfcbcb 100644
--- a/docs/self-hosted/bare-metal/index.html
+++ b/docs/self-hosted/bare-metal/index.html
@@ -43,4 +43,4 @@ details.</p><h3 id=4-build-mcaptcha>4. Build <code>mcaptcha</code><a href=#4-bui
 </span><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span><span style=color:#f1fa8c></span>	sudo systemctl <span style=color:#8be9fd;font-style:italic>enable</span> mcaptcha <span style=color:#ff79c6>&amp;&amp;</span> <span style=color:#f1fa8c>\ </span><span style=color:#6272a4># Auto startup during boot</span>
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">3</span>	sudo systemctl start mcaptcha
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">4</span><span style=color:#f1fa8c>``</span>
-</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/bare-metal.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/getting-started/><div class="card my-1"><div class="card-body py-2">&larr; Getting started</div></div></a><a class=ms-auto href=/docs/self-hosted/docker/><div class="card my-1"><div class="card-body py-2">Using Docker &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/bare-metal.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/getting-started/><div class="card my-1"><div class="card-body py-2">&larr; Getting started</div></div></a><a class=ms-auto href=/docs/self-hosted/docker/><div class="card my-1"><div class="card-body py-2">Using Docker &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/self-hosted/dependencies/index.html b/docs/self-hosted/dependencies/index.html
index ef5737c..edfbc70 100644
--- a/docs/self-hosted/dependencies/index.html
+++ b/docs/self-hosted/dependencies/index.html
@@ -27,4 +27,4 @@ details.</p><h3 id=1-install-postgres-if-you-dont-have-it-already>1. Install Pos
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">3</span><span style=color:#8be9fd;font-style:italic>postgres</span><span style=color:#ff79c6>=</span><span style=color:#6272a4>#  CREATE USER mcaptcha WITH PASSWORD &#39;my super long password and yes you need single quote&#39;;</span>
 <span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">4</span>$  createdb -O mcaptcha mcaptcha <span style=color:#6272a4># create db &#39;mcaptcha&#39; with &#39;mcaptcha&#39; as owner</span>
 </code></pre></div><h3 id=4-install-mcaptchacachehttpsgithubcommcaptchacache>4. Install <a href=https://github.com/mCaptcha/cache><code>mCaptcha/cache</code></a><a href=#4-install-mcaptchacachehttpsgithubcommcaptchacache class=anchor aria-hidden=true>#</a></h3><p>See <a href=https://github.com/mCaptcha/cache><code>mCaptcha/cache</code></a> for more
-details.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/dependencies.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/docker/><div class="card my-1"><div class="card-body py-2">&larr; Using Docker</div></div></a><a class=ms-auto href=/docs/help/troubleshooting/><div class="card my-1"><div class="card-body py-2">Troubleshooting &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+details.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/dependencies.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/docker/><div class="card my-1"><div class="card-body py-2">&larr; Using Docker</div></div></a><a class=ms-auto href=/docs/help/troubleshooting/><div class="card my-1"><div class="card-body py-2">Troubleshooting &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/self-hosted/docker/index.html b/docs/self-hosted/docker/index.html
index acb86a0..84f195b 100644
--- a/docs/self-hosted/docker/index.html
+++ b/docs/self-hosted/docker/index.html
@@ -12,4 +12,4 @@ for configurable options.</p><h3 id=2-run-image>2. Run image<a href=#2-run-image
 one using a package manager or launch one with docker. A <a href="'../docker-compose.yml">docker-compose
 configuration</a> is available that will launch both
 a database instance mcaptcha instance.</p><h2 id=with-docker-compose>With docker-compose<a href=#with-docker-compose class=anchor aria-hidden=true>#</a></h2><ol><li><p>Follow steps above to build docker image.</p></li><li><p>Set database password <a href="'../docker-compose.yml">docker-compose configuration</a>.</p></li><li><p>Launch network</p></li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>docker-compose up -d
-</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/docker.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/bare-metal/><div class="card my-1"><div class="card-body py-2">&larr; Deploy bare metal</div></div></a><a class=ms-auto href=/docs/self-hosted/dependencies/><div class="card my-1"><div class="card-body py-2">Database and cache &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/docker.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/self-hosted/bare-metal/><div class="card my-1"><div class="card-body py-2">&larr; Deploy bare metal</div></div></a><a class=ms-auto href=/docs/self-hosted/dependencies/><div class="card my-1"><div class="card-body py-2">Database and cache &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/self-hosted/getting-started/index.html b/docs/self-hosted/getting-started/index.html
index b901b9c..0e8a947 100644
--- a/docs/self-hosted/getting-started/index.html
+++ b/docs/self-hosted/getting-started/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Getting started - mCaptcha</title><meta name=description content="Get started with self-hosting mCaptcha"><link rel=canonical href=/docs/self-hosted/getting-started/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Getting started"><meta name=twitter:description content="Get started with self-hosting mCaptcha"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Getting started"><meta property="og:description" content="Get started with self-hosting mCaptcha"><meta property="og:type" content="article"><meta property="og:url" content="/docs/self-hosted/getting-started/"><meta property="og:image" content="/icon.png"><meta property="article:modified_time" content="2022-08-01T20:24:18+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docsself Hostedgetting Started","item":"\/docsself-hostedgetting-started\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Introduction</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/introduction/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li></ul><h3>Terminology</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/terminology/access-token/>Access token</a></li><li><a class=docs-link href=/docs/terminology/cooldown-period/>Cooldown Period</a></li><li><a class=docs-link href=/docs/terminology/difficulty-factor/>Difficulty Factor</a></li><li><a class=docs-link href=/docs/terminology/sitekey/>Site key</a></li><li><a class=docs-link href=/docs/terminology/visitor-threshold/>Visitor Threshold</a></li></ul><h3>Self-Hosted</h3><ul class=list-unstyled><li><a class="docs-link active" href=/docs/self-hosted/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosted/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosted/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosted/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class=docs-link href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class=docs-link href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#get-started>Get started</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9"><h1>Getting started</h1><p class=lead>Get started with self-hosting mCaptcha</p><h2 id=get-started>Get started<a href=#get-started class=anchor aria-hidden=true>#</a></h2><p>There are two main ways to self-host mCaptcha:</p><ol><li><a href=./bare-metal.md>Bare metal</a></li><li><a href=./docker.md>With Docker</a></li></ol><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/getting-started.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/visitor-threshold/><div class="card my-1"><div class="card-body py-2">&larr; Visitor Threshold</div></div></a><a class=ms-auto href=/docs/self-hosted/bare-metal/><div class="card my-1"><div class="card-body py-2">Deploy bare metal &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Introduction</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/introduction/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li></ul><h3>Terminology</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/terminology/access-token/>Access token</a></li><li><a class=docs-link href=/docs/terminology/cooldown-period/>Cooldown Period</a></li><li><a class=docs-link href=/docs/terminology/difficulty-factor/>Difficulty Factor</a></li><li><a class=docs-link href=/docs/terminology/sitekey/>Site key</a></li><li><a class=docs-link href=/docs/terminology/visitor-threshold/>Visitor Threshold</a></li></ul><h3>Self-Hosted</h3><ul class=list-unstyled><li><a class="docs-link active" href=/docs/self-hosted/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosted/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosted/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosted/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class=docs-link href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class=docs-link href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#get-started>Get started</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9"><h1>Getting started</h1><p class=lead>Get started with self-hosting mCaptcha</p><h2 id=get-started>Get started<a href=#get-started class=anchor aria-hidden=true>#</a></h2><p>There are two main ways to self-host mCaptcha:</p><ol><li><a href=./bare-metal.md>Bare metal</a></li><li><a href=./docker.md>With Docker</a></li></ol><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/self-hosted/getting-started.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/visitor-threshold/><div class="card my-1"><div class="card-body py-2">&larr; Visitor Threshold</div></div></a><a class=ms-auto href=/docs/self-hosted/bare-metal/><div class="card my-1"><div class="card-body py-2">Deploy bare metal &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/self-hosted/index.html b/docs/self-hosted/index.html
index 4a97821..2ec9092 100644
--- a/docs/self-hosted/index.html
+++ b/docs/self-hosted/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Self-Hosted - mCaptcha</title><meta name=description content="Instructions to self-host mCaptcha"><link rel=canonical href=/docs/self-hosted/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Self-Hosted"><meta name=twitter:description content="Instructions to self-host mCaptcha"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Self-Hosted"><meta property="og:description" content="Instructions to self-host mCaptcha"><meta property="og:type" content="website"><meta property="og:url" content="/docs/self-hosted/"><meta property="og:image" content="/icon.png"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/docs/self-hosted/index.xml><link rel=sitemap type=application/xml href=/docs/self-hosted/sitemap.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docsself Hosted","item":"\/docsself-hosted\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Self-Hosted</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/dependencies/>Database and Cache &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/bare-metal/>Deploy Bare Metal &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/getting-started/>Getting Started &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/docker/>Using Docker &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Self-Hosted</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/dependencies/>Database and Cache &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/bare-metal/>Deploy Bare Metal &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/getting-started/>Getting Started &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/self-hosted/docker/>Using Docker &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/terminology/access-token/index.html b/docs/terminology/access-token/index.html
index 5178868..0254065 100644
--- a/docs/terminology/access-token/index.html
+++ b/docs/terminology/access-token/index.html
@@ -13,4 +13,4 @@ protected resource if the access token is valid.</p><h2 id=validate-access-token
 </span><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">5</span><span style=color:#f1fa8c>    &#34;key&#34;: &#34;replace this with the sitekey associated with the CAPTCHA&#34;
 </span><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">6</span><span style=color:#f1fa8c>    &#34;secret&#34;: &#34;replace this with mCaptcha account secret, available in settings&#34;
 </span><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">7</span><span style=color:#f1fa8c>  }&#39;</span>
-</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/access-token.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/introduction/configuring-difficulty-factor/><div class="card my-1"><div class="card-body py-2">&larr; Configuring Difficulty Factor</div></div></a><a class=ms-auto href=/docs/terminology/cooldown-period/><div class="card my-1"><div class="card-body py-2">Cooldown Period &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+</code></pre></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/access-token.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/introduction/configuring-difficulty-factor/><div class="card my-1"><div class="card-body py-2">&larr; Configuring Difficulty Factor</div></div></a><a class=ms-auto href=/docs/terminology/cooldown-period/><div class="card my-1"><div class="card-body py-2">Cooldown Period &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/terminology/cooldown-period/index.html b/docs/terminology/cooldown-period/index.html
index b8f54e9..7aef447 100644
--- a/docs/terminology/cooldown-period/index.html
+++ b/docs/terminology/cooldown-period/index.html
@@ -9,4 +9,4 @@ cooldown period is set to 30 seconds, the traffic level will be
 decremented after 30 seconds. So after 30 seconds, the traffic level will
 go from 1 to 0.</p><h2 id=easy-mode-default-cooldown>Easy Mode: Default cooldown<a href=#easy-mode-default-cooldown class=anchor aria-hidden=true>#</a></h2><p>When configuring mCaptcha in <a href=/docs/terminology/difficulty-factor#easy-option>easy
 mode</a>, the default cooldown period is
-set to 30 seconds.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/cooldown-period.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/access-token/><div class="card my-1"><div class="card-body py-2">&larr; Access token</div></div></a><a class=ms-auto href=/docs/terminology/difficulty-factor/><div class="card my-1"><div class="card-body py-2">Difficulty Factor &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+set to 30 seconds.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/cooldown-period.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/access-token/><div class="card my-1"><div class="card-body py-2">&larr; Access token</div></div></a><a class=ms-auto href=/docs/terminology/difficulty-factor/><div class="card my-1"><div class="card-body py-2">Difficulty Factor &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/terminology/difficulty-factor/index.html b/docs/terminology/difficulty-factor/index.html
index 1e7c64b..d6f3a09 100644
--- a/docs/terminology/difficulty-factor/index.html
+++ b/docs/terminology/difficulty-factor/index.html
@@ -6,4 +6,4 @@ higher the difficulty factor, the longer it will take to generate a
 proof of work for it to solve the CAPTCHA.</p><p>mCaptcha&rsquo;s proof of work based mechanism makes it highly accessible to
 people with special needs but it is important to choose the difficulty factor
 with care as very high difficulty factors will make the CAPTCHA
-inaccessible to users on slow devices.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/difficulty-factor/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/cooldown-period/><div class="card my-1"><div class="card-body py-2">&larr; Cooldown Period</div></div></a><a class=ms-auto href=/docs/terminology/sitekey/><div class="card my-1"><div class="card-body py-2">Site key &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+inaccessible to users on slow devices.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/difficulty-factor/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/cooldown-period/><div class="card my-1"><div class="card-body py-2">&larr; Cooldown Period</div></div></a><a class=ms-auto href=/docs/terminology/sitekey/><div class="card my-1"><div class="card-body py-2">Site key &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/terminology/index.html b/docs/terminology/index.html
index a5b48c3..92226de 100644
--- a/docs/terminology/index.html
+++ b/docs/terminology/index.html
@@ -1,4 +1,4 @@
 <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f4e82f75f039986a07346a99687f11e3218d588abe9b9daa7d0673b1a7aaee5b689ec69619c26a2962d5a124bed33807d58bd84180c249bbb8eddc33c5ef5baa.css integrity="sha512-9OgvdfA5mGoHNGqZaH8R4yGNWIq+m52qfQZzsaeq7ltonsaWGcJqKWLVoSS+0zgH1YvYQYDCSbu47dwzxe9bqg==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Terminology - mCaptcha</title><meta name=description content="Information about terminology used in mCaptcha, some of which unique to the project"><link rel=canonical href=/docs/terminology/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="Terminology"><meta name=twitter:description content="Information about terminology used in mCaptcha, some of which unique to the project"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Terminology"><meta property="og:description" content="Information about terminology used in mCaptcha, some of which unique to the project"><meta property="og:type" content="website"><meta property="og:url" content="/docs/terminology/"><meta property="og:image" content="/icon.png"><meta property="og:updated_time" content="2022-08-01T22:27:01+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><link rel=alternate type=application/rss+xml href=/docs/terminology/index.xml><link rel=sitemap type=application/xml href=/docs/terminology/sitemap.xml><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docsterminology","item":"\/docsterminology\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs list"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
 <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
-<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Terminology</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/access-token/>Access Token &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/cooldown-period/>Cooldown Period &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/difficulty-factor/>Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/sitekey/>Site Key &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/visitor-threshold/>Visitor Threshold &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row justify-content-center"><div class="col-md-12 col-lg-10 col-xl-8"><article><h1 class=text-center>Terminology</h1><div class=text-center></div><div class=card-list><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/access-token/>Access Token &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/cooldown-period/>Cooldown Period &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/difficulty-factor/>Difficulty Factor &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/sitekey/>Site Key &rarr;</a></div></div><div class="card my-3"><div class=card-body><a class=stretched-link href=/docs/terminology/visitor-threshold/>Visitor Threshold &rarr;</a></div></div></div></article></div></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/terminology/sitekey/index.html b/docs/terminology/sitekey/index.html
index 065c7cd..1c19635 100644
--- a/docs/terminology/sitekey/index.html
+++ b/docs/terminology/sitekey/index.html
@@ -4,4 +4,4 @@
 <span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Introduction</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/introduction/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/introduction/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li></ul><h3>Terminology</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/terminology/access-token/>Access token</a></li><li><a class=docs-link href=/docs/terminology/cooldown-period/>Cooldown Period</a></li><li><a class=docs-link href=/docs/terminology/difficulty-factor/>Difficulty Factor</a></li><li><a class="docs-link active" href=/docs/terminology/sitekey/>Site key</a></li><li><a class=docs-link href=/docs/terminology/visitor-threshold/>Visitor Threshold</a></li></ul><h3>Self-Hosted</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/self-hosted/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosted/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosted/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosted/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class=docs-link href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class=docs-link href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#how-to-get-site-key>How to get site key?</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9"><h1>Site key</h1><p class=lead></p><p>Site key is a unique identifier associated with CAPTCHA configurations
 created on mCaptcha. It is required to integrate a CAPTCHA with your
 website.</p><h2 id=how-to-get-site-key>How to get site key?<a href=#how-to-get-site-key class=anchor aria-hidden=true>#</a></h2><ol><li>Go to &ldquo;Site keys&rdquo; on the side panel in the dashboard</li></ol><div align=center><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_20x0_resize_box_2.png data-srcset="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_2.png 500w" width=222 height=496 alt="Site key menu option on the dashboard, encircled in red."><noscript><img class=img-fluid sizes=100vw srcset="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_2.png 500w" src=/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel.png width=222 height=496 alt="Site key menu option on the dashboard, encircled in red."></noscript></figure></div><ol start=2><li>click on the clipboard button to copy the site key to your
-clipboard.</li></ol><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_20x0_resize_box_2.png data-srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" width=1825 height=831 alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"><noscript><img class=img-fluid sizes=100vw srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" src=/docs/terminology/sitekey/copy-sitekey.png width=1825 height=831 alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"></noscript></figure><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/sitekey/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/difficulty-factor/><div class="card my-1"><div class="card-body py-2">&larr; Difficulty Factor</div></div></a><a class=ms-auto href=/docs/terminology/visitor-threshold/><div class="card my-1"><div class="card-body py-2">Visitor Threshold &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+clipboard.</li></ol><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_20x0_resize_box_2.png data-srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" width=1825 height=831 alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"><noscript><img class=img-fluid sizes=100vw srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" src=/docs/terminology/sitekey/copy-sitekey.png width=1825 height=831 alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"></noscript></figure><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/sitekey/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/difficulty-factor/><div class="card my-1"><div class="card-body py-2">&larr; Difficulty Factor</div></div></a><a class=ms-auto href=/docs/terminology/visitor-threshold/><div class="card my-1"><div class="card-body py-2">Visitor Threshold &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/docs/terminology/visitor-threshold/index.html b/docs/terminology/visitor-threshold/index.html
index a298e3e..04b6fbb 100644
--- a/docs/terminology/visitor-threshold/index.html
+++ b/docs/terminology/visitor-threshold/index.html
@@ -15,4 +15,4 @@ seconds will result in difficulty factor being upgraded to 500,000 and
 level to deploy. mCaptcha uses leaky bucket algorithm to keep the
 visitor threshold constantly updated within the configured cool down
 period. So, at any given moment the, the current visitor level will be
-the amount of traffic that was served in the cool down period specified.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/visitor-threshold.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/sitekey/><div class="card my-1"><div class="card-body py-2">&larr; Site key</div></div></a><a class=ms-auto href=/docs/self-hosted/getting-started/><div class="card my-1"><div class="card-body py-2">Getting started &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+the amount of traffic that was served in the cool down period specified.</p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/docs/terminology/visitor-threshold.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/terminology/sitekey/><div class="card my-1"><div class="card-body py-2">&larr; Site key</div></div></a><a class=ms-auto href=/docs/self-hosted/getting-started/><div class="card my-1"><div class="card-body py-2">Getting started &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/donate/index.html b/donate/index.html
index d0f2b5b..9daf50b 100644
--- a/donate/index.html
+++ b/donate/index.html
@@ -8,4 +8,4 @@ way in supporting us.</p><p>Some of the payment options are anonymous. You can o
 me(<a href=/contributors/aravinth-manivannan/>@realaravinth</a>) an email so that
 I can thank you :)</p><h2 id=xmr>XMR<a href=#xmr class=anchor aria-hidden=true>#</a></h2><pre><code>85QAHsHqg4WfA6G7ycXc7U4LmrSLCQARv6H9p3AYjf8o8YP
 WH3ngC8Zi7bUYGUifdXb54Xuz41kcu2pqgGFuAYp3VSh5JsR
-</code></pre><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_20x0_resize_box_2.png data-srcset="/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_900x0_resize_box_2.png 900w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_800x0_resize_box_2.png 800w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_700x0_resize_box_2.png 700w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_600x0_resize_box_2.png 600w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_500x0_resize_box_2.png 500w" width=240 height=240 alt="Monero address QR code"><noscript><img class=img-fluid sizes=100vw srcset="/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_900x0_resize_box_2.png 900w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_800x0_resize_box_2.png 800w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_700x0_resize_box_2.png 700w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_600x0_resize_box_2.png 600w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_500x0_resize_box_2.png 500w" src=/donate/mcptcha-donations-monero-address-qr.png width=240 height=240 alt="Monero address QR code"></noscript><figcaption class=figure-caption><em>Monero address QR code</em></figcaption></figure><h2 id=liberapay>Liberapay<a href=#liberapay class=anchor aria-hidden=true>#</a></h2><script src=https://liberapay.com/realaravinth/widgets/button.js></script><p><noscript><a href=https://liberapay.com/realaravinth/donate><img alt="Donate using Liberapay" src=https://liberapay.com/assets/widgets/donate.svg></a></noscript></p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/donate/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+</code></pre><figure><img class="img-fluid lazyload blur-up" data-sizes=auto src=/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_20x0_resize_box_2.png data-srcset="/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_900x0_resize_box_2.png 900w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_800x0_resize_box_2.png 800w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_700x0_resize_box_2.png 700w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_600x0_resize_box_2.png 600w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_500x0_resize_box_2.png 500w" width=240 height=240 alt="Monero address QR code"><noscript><img class=img-fluid sizes=100vw srcset="/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_900x0_resize_box_2.png 900w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_800x0_resize_box_2.png 800w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_700x0_resize_box_2.png 700w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_600x0_resize_box_2.png 600w,/donate/mcptcha-donations-monero-address-qr_huda75cb0a97a0728b33b2d59d7a34dd33_7547_500x0_resize_box_2.png 500w" src=/donate/mcptcha-donations-monero-address-qr.png width=240 height=240 alt="Monero address QR code"></noscript><figcaption class=figure-caption><em>Monero address QR code</em></figcaption></figure><h2 id=liberapay>Liberapay<a href=#liberapay class=anchor aria-hidden=true>#</a></h2><script src=https://liberapay.com/realaravinth/widgets/button.js></script><p><noscript><a href=https://liberapay.com/realaravinth/donate><img alt="Donate using Liberapay" src=https://liberapay.com/assets/widgets/donate.svg></a></noscript></p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/donate/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/index.html b/index.html
index c8b979e..f5bf83d 100644
--- a/index.html
+++ b/index.html
@@ -3,4 +3,4 @@
 <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
 <span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class=nav-item><a class=nav-link href=/docs/introduction/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><section class="section container-fluid mt-n3 pb-3"><div class="row justify-content-center"><div class="col-lg-12 text-center"><h1 class=mt-0>Defend Like Castles</h1></div><div class="col-lg-9 col-xl-8 text-center"><p class=lead>mCaptcha is proof-of-work based captcha system that is privacy focused and fully automated.</p><a class="btn btn-primary btn-lg px-4 mb-2" href=https://demo.mcaptcha.org/ role=button>Try mCaptcha</a>
 &nbsp &nbsp &nbsp
-      <a class="btn btn-primary btn-lg px-4 mb-2" href=/docs/prologue/introduction/ role=button>Get started</a><p class=meta>Libre software <a href=https://github.com/mCaptcha>GitHub</a></p></div></div></section></div></div><section class="section section-sm"><div class=container><div class="row justify-content-center text-center"><div class=col-lg-5><h2 class=h4>Privacy focused</h2><p>Doesn't track, doesn't profile your users.</p></div><div class=col-lg-5><h2 class=h4>Robust and Accurate</h2><p>Got users behind <a href=https://en.wikipedia.org/wiki/Network_address_translation>NATs</a>? No issues. We don't use IP address for rate-liming. NAT or not you get the mCaptcha experience.</div><div class=col-lg-5><h2 class=h4>Best-in-class UX</h2><p>mCaptcha is silent, so silent that your users won't even feel it. No more annoying images, no more helping for Big Brothers with their ML stuff</p></div></div><div class="row justify-content-center text-center"><div class=col-lg-5><h2 class=h4>Defend like castles</h2><p>Our <a href=https://en.wikipedia.org/wiki/Proof_of_work>PoW</a>-based solution defends fiersly. mCaptcha makes attacking your site more experience than what it will take for you to respond to the attacker's requests</p></div><div class=col-lg-5><h2 class=h4>Libre Software</h2><p>Client libraries are licensed using properiatary-friendly free software licenses but the core is <a href=http://www.gnu.org/licenses/agpl-3.0>AGPL'd</a>. We believe this is a tech that can change the way the web works so mCaptcha will always be free</p></div><div class=col-lg-5><h2 class=h4>xCaptcha drop-in replacement</h2><p>Already using a captcha solution? No worries, our APIs are compatible with reCaptcha and hCaptcha!</p></div></div></div></section><section class="section section-sm container-fluid"><div class="row justify-content-center text-center"><div class=col-lg-9></div></div></section><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+      <a class="btn btn-primary btn-lg px-4 mb-2" href=/docs/prologue/introduction/ role=button>Get started</a><p class=meta>Libre software <a href=https://github.com/mCaptcha>GitHub</a></p></div></div></section></div></div><section class="section section-sm"><div class=container><div class="row justify-content-center text-center"><div class=col-lg-5><h2 class=h4>Privacy focused</h2><p>Doesn't track, doesn't profile your users.</p></div><div class=col-lg-5><h2 class=h4>Robust and Accurate</h2><p>Got users behind <a href=https://en.wikipedia.org/wiki/Network_address_translation>NATs</a>? No issues. We don't use IP address for rate-liming. NAT or not you get the mCaptcha experience.</div><div class=col-lg-5><h2 class=h4>Best-in-class UX</h2><p>mCaptcha is silent, so silent that your users won't even feel it. No more annoying images, no more helping for Big Brothers with their ML stuff</p></div></div><div class="row justify-content-center text-center"><div class=col-lg-5><h2 class=h4>Defend like castles</h2><p>Our <a href=https://en.wikipedia.org/wiki/Proof_of_work>PoW</a>-based solution defends fiersly. mCaptcha makes attacking your site more experience than what it will take for you to respond to the attacker's requests</p></div><div class=col-lg-5><h2 class=h4>Libre Software</h2><p>Client libraries are licensed using properiatary-friendly free software licenses but the core is <a href=http://www.gnu.org/licenses/agpl-3.0>AGPL'd</a>. We believe this is a tech that can change the way the web works so mCaptcha will always be free</p></div><div class=col-lg-5><h2 class=h4>xCaptcha drop-in replacement</h2><p>Already using a captcha solution? No worries, our APIs are compatible with reCaptcha and hCaptcha!</p></div></div></div></section><section class="section section-sm container-fluid"><div class="row justify-content-center text-center"><div class=col-lg-9></div></div></section><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js b/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js
similarity index 99%
rename from index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js
rename to index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js
index 263963a..18cb591 100644
--- a/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js
+++ b/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js
@@ -1 +1 @@
-var suggestions=document.getElementById('suggestions'),userinput=document.getElementById('userinput');document.addEventListener('keydown',inputFocus);function inputFocus(a){a.keyCode===191&&(a.preventDefault(),userinput.focus()),a.keyCode===27&&(userinput.blur(),suggestions.classList.add('d-none'))}document.addEventListener('click',function(a){var b=suggestions.contains(a.target);b||suggestions.classList.add('d-none')}),document.addEventListener('keydown',suggestionFocus);function suggestionFocus(b){const d=suggestions.querySelectorAll('a'),e=[...d],a=e.indexOf(document.activeElement);let c=0;b.keyCode===38?(b.preventDefault(),c=a>0?a-1:0,d[c].focus()):b.keyCode===40&&(b.preventDefault(),c=a+1<e.length?a+1:a,d[c].focus())}(function(){var b=new FlexSearch({preset:'score',cache:!0,doc:{id:'id',field:['title','description','content'],store:['href','title','description']}}),c=[{id:0,href:"/docs/introduction/installing-captcha/",title:"Installing mCaptcha on your website",description:"Interested in deploying mCpatcha? From deploying a self-hosted instance to installing the CAPTCHA on your website, this guide will have you covered!",content:'\u003cp\u003emCaptcha can protect your website from DDoS attacks. In this guide we\u0026rsquo;ll\nexplore how to install mCaptcha on your website. The end result will be\nsomething like this, on your website:\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_20x0_resize_box_2.png" data-srcset="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_500x0_resize_box_2.png 500w" width="618" height="669" alt="A registration form with mCaptcha widget installed"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_500x0_resize_box_2.png 500w" src="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result.png" width="618" height="669" alt="A registration form with mCaptcha widget installed"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003cp\u003eFor the purpose of this demo, we will be using\n\u003ca href="https://demo.mcaptcha.org"\u003edemo.mcaptcha.org\u003c/a\u003e, a demo instance running\nin @realaravinth\u0026rsquo;s bedroom(for this same reason, it shouldn\u0026rsquo;t be used\nfor anything serious)\u003c/p\u003e\n\u003ch2 id="1-create-an-account-and-sign-into-the-mcaptcha-dashboard"\u003e1. Create an account and sign into the mCaptcha dashboard\u003c/h2\u003e\n\u003cp\u003eHead over to \u003ca href="https://demo.mcaptcha.org/join"\u003edemo.mcaptcha.org\u003c/a\u003e and\ncreate an account. When ready, sign in.\u003c/p\u003e\n\u003ch2 id="2-create-new-site-key"\u003e2. Create new site key\u003c/h2\u003e\n\u003cp\u003eA \u003ca href="/docs/terminology/sitekey/"\u003esite key\u003c/a\u003e is how a new CAPTCHA is configured within mCaptcha. To create\na new site key, click on \u0026ldquo;New Site\u0026rdquo; button in the dashboard.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_20x0_resize_box_2.png" data-srcset="/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_500x0_resize_box_2.png 500w" width="1825" height="857" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; button highlighted"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_500x0_resize_box_2.png 500w" src="/docs/introduction/installing-captcha/new-sitekey-btn.png" width="1825" height="857" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; button highlighted"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003cp\u003eThere are two options to create a new site key, easy and advanced. \u003cstrong\u003eWe\nare going to use the easy mode in this tutorial.\u003c/strong\u003e If you are interested\nin learning more about the advance mode, please see \u003ca href="/docs/introduction/configuring-difficulty-factor/#advance-option"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3 id="easy-modedocsintroductionconfiguring-difficulty-factoreasy-option"\u003e\u003ca href="/docs/introduction/configuring-difficulty-factor/#easy-option"\u003eEasy Mode\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eEasy mode asks a few basic statistics about your website and generates a\nconfiguration that should work for your website. Currently, easy mode is\nguided by assumptions on suitable difficulty factors to protect a\nwebsite but it will be fine-tuned as mCaptcha sees more deployment.\u003c/p\u003e\n\u003cp\u003eConfiguration generated by easy mode can be tweaked later using the\nadvance mode, as you become more familiar with how mCaptcha works.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eFill the form and submit it.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_20x0_resize_box_2.png" data-srcset="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_500x0_resize_box_2.png 500w" width="720" height="452" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; form in easy mode, with details filled in"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_500x0_resize_box_2.png 500w" src="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled.png" width="720" height="452" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; form in easy mode, with details filled in"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003ch2 id="3-copy-widget-link"\u003e3. Copy widget link\u003c/h2\u003e\n\u003cp\u003eSubmitting the form will take you to a page where site key configuration\ncan be viewed. \u0026ldquo;View deployment\u0026rdquo; link will display CAPTCHA widget with\nthe supplied configuration. Click on it and grab the widget link.\u003c/p\u003e\n\u003ch2 id="4-install-mcaptcha-on-your-website"\u003e4. Install mCaptcha on your website\u003c/h2\u003e\n\u003cp\u003eIntegration support is available for some frontend JavaScript\nframeworks. To see full list of supported frameworks, please see\n\u003ca href="https://github.com/mCaptcha/glue#framework-support"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThere are two options to use the integration library to integrate\nmCaptcha on your website:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eServe the integration library yourself\u003c/li\u003e\n\u003cli\u003eUse a CDN like unpkg.com\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eIn this tutorial, we\u0026rsquo;ll be using the CDN.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePasting the following snippet on the page, within the form\u003c/strong\u003e that requires to be protected\nwill load the mCaptcha widget with the configuration supplied. Be sure\nto replace \u003ccode\u003eYour {{paste your widget link}}\u003c/code\u003e with the link obtained from\nthe previous step.\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-html" data-lang="html"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 1\u003c/span\u003e\u0026lt;\u003cspan style="color:#ff79c6"\u003ediv\u003c/span\u003e \u003cspan style="color:#50fa7b"\u003eid\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;mcaptcha__widget-container\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style="color:#ff79c6"\u003ediv\u003c/span\u003e\u0026gt;\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 2\u003c/span\u003e\u0026lt;\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e \u003cspan style="color:#50fa7b"\u003esrc\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-alpha-2/dist/index.js\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e\u0026gt;\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 3\u003c/span\u003e\u0026lt;\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e \u003cspan style="color:#50fa7b"\u003echarset\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u0026gt;\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 4\u003c/span\u003e  \u003cspan style="color:#8be9fd;font-style:italic"\u003elet\u003c/span\u003e config \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e {\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 5\u003c/span\u003e    widgetLink\u003cspan style="color:#ff79c6"\u003e:\u003c/span\u003e \u003cspan style="color:#ff79c6"\u003enew\u003c/span\u003e URL(\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 6\u003c/span\u003e      {{paste yout widget link}}\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 7\u003c/span\u003e    ),\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 8\u003c/span\u003e  };\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 9\u003c/span\u003e  \u003cspan style="color:#ff79c6"\u003enew\u003c/span\u003e mcaptchaGlue.\u003cspan style="color:#ff79c6"\u003edefault\u003c/span\u003e(config);\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e10\u003c/span\u003e\u0026lt;/\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eA full example is available\n\u003ca href="https://github.com/mCaptcha/glue/blob/ea576d875457de54d82bed3edfc4ee68302fa4d8/packages/vanilla/static/embeded.html"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id="5-configure-backend-to-authenticate-captcha-tokens"\u003e5. Configure backend to authenticate CAPTCHA tokens\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eGet \u003ca href="../../terminology/access-token"\u003eaccess token\u003c/a\u003e from the user\u0026rsquo;s\nform submission payload. The access token will be associated with a\nparameter called \u003ccode\u003emcaptcha__token\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-python" data-lang="python"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e mcaptcha_token \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e request\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003eform[\u003cspan style="color:#f1fa8c"\u003e\u0026#34;mcaptcha__token\u0026#34;\u003c/span\u003e]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eValidate access token with mCaptcha instance\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-python" data-lang="python"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 1\u003c/span\u003epayload \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e {\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 2\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;token\u0026#34;\u003c/span\u003e: mcaptcha_token,\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 3\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;key\u0026#34;\u003c/span\u003e: mcaptcha_sitekey, \u003cspan style="color:#6272a4"\u003e# captcha site key\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 4\u003c/span\u003e    \u003cspan style="color:#6272a4"\u003e# mCaptcha account secret; available in settings\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 5\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;secret\u0026#34;\u003c/span\u003e: mcaptcha_account_secret,\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 6\u003c/span\u003e}\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 7\u003c/span\u003eresp \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e requests\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003epost(\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 8\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;https://demo.mcaptha.org/api/v1/pow/siteverify\u0026#34;\u003c/span\u003e, json\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003epayload\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 9\u003c/span\u003e)\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e10\u003c/span\u003eresp \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e resp\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003ejson()\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start="3"\u003e\n\u003cli\u003eIf access token is valid, allow access to protected resource or deny\naccess.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-python" data-lang="python"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e \u003cspan style="color:#ff79c6"\u003eif\u003c/span\u003e resp[\u003cspan style="color:#f1fa8c"\u003e\u0026#34;valid\u0026#34;\u003c/span\u003e] \u003cspan style="color:#ff79c6"\u003e==\u003c/span\u003e False:\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e     \u003cspan style="color:#ff79c6"\u003ereturn\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\u0026#34;invalid captcha\u0026#34;\u003c/span\u003e, \u003cspan style="color:#bd93f9"\u003e400\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e \u003cspan style="color:#ff79c6"\u003eelse\u003c/span\u003e:\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e     \u003cspan style="color:#ff79c6"\u003ereturn\u003c/span\u003e allow_access_to_protected_resource(request\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003eform)\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ePlease see here for a complete \u003ca href="https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/server"\u003eFlask example\u003c/a\u003e and here for an \u003ca href="https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/rust-server/demo-server"\u003eActix\nWeb example\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCongratulations, mCaptcha is now integrated with your website!\u003c/p\u003e\n'},{id:1,href:"/docs/introduction/configuring-difficulty-factor/",title:"Configuring Difficulty Factor",description:"mCaptcha has options to configure its proof of work engine behavior, this page explains how to determine difficulty facotrs that work best for your website!",content:'\u003cp\u003emCaptcha is highly responsive to detecting DDoS attacks. Admins are\nadvised to take advantage of it by setting low \u003ca href="/docs/terminology/difficulty-factor/"\u003edifficulty\nfactors\u003c/a\u003e for normal traffic levels\nfor their website.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLowest advisable difficulty factor is 5000.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eFor instance, if it is normal for my website to get 2000 requests for\nevery 30 seconds, I will set a \u003ca href="/docs/terminology/cooldown-period.md"\u003ecool\ndown\u003c/a\u003e period of 30 seconds and the\nfirst level of difficulty configuration will have a \u003ca href="/docs/terminology/visitor-threshold.md"\u003evisitor threshold\u003c/a\u003e of 2000 with a\ndifficulty factor of 5000.\u003c/p\u003e\n\u003cp\u003eThere are two modes to setting difficulty factor for your website on\nmCaptcha:\u003c/p\u003e\n\u003ch3 id="easy-option"\u003eEasy option\u003c/h3\u003e\n\u003cp\u003eEasy mode asks a few basic statistics about your website and generates a\nconfiguration that should work for your website. Currently, easy mode is\nguided by assumptions on suitable difficulty factors to protect a\nwebsite but it will be fine-tuned as mCaptcha sees more deployment.\u003c/p\u003e\n\u003cp\u003eConfiguration generated by easy mode can be tweaked later using the\nadvance mode, as you become more familiar with how mCaptcha works.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_20x0_resize_box_2.png" data-srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_500x0_resize_box_2.png 500w" width="720" height="452" alt="new sitekey form in easy mode"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_500x0_resize_box_2.png 500w" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode.png" width="720" height="452" alt="new sitekey form in easy mode"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003ch3 id="advance-option"\u003eAdvance option\u003c/h3\u003e\n\u003cp\u003eAdvance mode gives the admin granular control over how mCaptcha behaves\non their website. It has options to set the difficulty factor for each\nlevel of traffic(or visitor threshold, in mCaptcha speak), fully taking\nadvantage of mCaptcha\u0026rsquo;s variable difficulty factor feature.\u003c/p\u003e\n\u003cp\u003eFor instance, if it is normal for a website to get 200 requests over 30\nseconds, then setting a very low difficulty factor for a visitor\nthreshold of 200 and a cool down period of 30 seconds will allow the\nusers to pass through without waiting on the CAPTCHA. But if 1000\nrequests over 30 seconds will bring down the service, then the admin can\nconfigure increasing levels of difficulty factor of increasing traffic\nlevels, effectively rate limiting its users and protecting the\nunderlying website.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_20x0_resize_box_2.png" data-srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" width="720" height="407" alt="new sitekey form in advance mode"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode.png" width="720" height="407" alt="new sitekey form in advance mode"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n'},{id:2,href:"/docs/terminology/access-token/",title:"Access token",description:"mCaptcha implements leaky bucket algorithm to measure current traffic levels. Cooldown period specifies the leak or the time after which a visitor addition is decremented.",content:'\u003cp\u003eWhen a visitor solves the CAPTCHA and sends their solution to an\nmCaptcha instance, the solution will be verified for correctness. If the\nsolution is correct, mCaptcha will return a single use access token.\u003c/p\u003e\n\u003cp\u003eThis access token should be attached to the visitor\u0026rsquo;s requited to the\nprotected service and the protected service should validity of the\naccess token with the mCaptcha instance and only allow access to\nprotected resource if the access token is valid.\u003c/p\u003e\n\u003ch2 id="validate-access-token"\u003eValidate access token:\u003c/h2\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003ecurl --location --request POST \u003cspan style="color:#f1fa8c"\u003e\u0026#39;https://mcaptcha.example.net/api/v1/pow/siteverify\u0026#39;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  --header \u003cspan style="color:#f1fa8c"\u003e\u0026#39;Content-Type: application/json\u0026#39;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  --data-raw \u003cspan style="color:#f1fa8c"\u003e\u0026#39;{\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e    \u0026#34;token\u0026#34;: \u0026#34;replace this with the access token presented by visitor\u0026#34;,\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e5\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e    \u0026#34;key\u0026#34;: \u0026#34;replace this with the sitekey associated with the CAPTCHA\u0026#34;\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e6\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e    \u0026#34;secret\u0026#34;: \u0026#34;replace this with mCaptcha account secret, available in settings\u0026#34;\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e7\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e  }\u0026#39;\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:3,href:"/docs/terminology/cooldown-period/",title:"Cooldown Period",description:"mCaptcha implements leaky bucket algorithm to measure current traffic levels. Cooldown period specifies the leak or the time after which a visitor addition is decremented.",content:'\u003cp\u003emCaptcha implements leaky bucket algorithm to measure\ncurrent traffic levels. Cooldown period specifies the leak or the time\nafter which a visitor addition is decremented.\u003c/p\u003e\n\u003cp\u003eFor instance, if initial traffic level is 0 and a user visits one\nsecond later, the traffic level will be incremented to 1. Now, if the\ncooldown period is set to 30 seconds, the traffic level will be\ndecremented after 30 seconds. So after 30 seconds, the traffic level will\ngo from 1 to 0.\u003c/p\u003e\n\u003ch2 id="easy-mode-default-cooldown"\u003eEasy Mode: Default cooldown\u003c/h2\u003e\n\u003cp\u003eWhen configuring mCaptcha in \u003ca href="/docs/terminology/difficulty-factor#easy-option"\u003eeasy\nmode\u003c/a\u003e, the default cooldown period is\nset to 30 seconds.\u003c/p\u003e\n'},{id:4,href:"/docs/terminology/difficulty-factor/",title:"Difficulty Factor",description:"Difficulty factor determines the time it takes to solve a CAPTCHA, there are two modes to setting difficulty factor: advance and easy, this page documents both modes.",content:"\u003cp\u003eDifficulty factor determines the time it takes to solve a CAPTCHA. The\nhigher the difficulty factor, the longer it will take to generate a\nproof of work for it to solve the CAPTCHA.\u003c/p\u003e\n\u003cp\u003emCaptcha\u0026rsquo;s proof of work based mechanism makes it highly accessible to\npeople with special needs but it is important to choose the difficulty factor\nwith care as very high difficulty factors will make the CAPTCHA\ninaccessible to users on slow devices.\u003c/p\u003e\n"},{id:5,href:"/docs/terminology/sitekey/",title:"Site key",description:"Site key is the unique identifier associated with a CAPTCHA created on mCaptcha",content:'\u003cp\u003eSite key is a unique identifier associated with CAPTCHA configurations\ncreated on mCaptcha. It is required to integrate a CAPTCHA with your\nwebsite.\u003c/p\u003e\n\u003ch2 id="how-to-get-site-key"\u003eHow to get site key?\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eGo to \u0026ldquo;Site keys\u0026rdquo; on the side panel in the dashboard\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv align=center\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_20x0_resize_box_2.png" data-srcset="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_2.png 500w" width="222" height="496" alt="Site key menu option on the dashboard, encircled in red."\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_2.png 500w" src="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel.png" width="222" height="496" alt="Site key menu option on the dashboard, encircled in red."\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003c/div\u003e\n\u003col start="2"\u003e\n\u003cli\u003eclick on the clipboard button to copy the site key to your\nclipboard.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_20x0_resize_box_2.png" data-srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" src="/docs/terminology/sitekey/copy-sitekey.png" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n'},{id:6,href:"/docs/terminology/visitor-threshold/",title:"Visitor Threshold",description:"Visitor threshold is used to split traffic into levels. If the traffic level supersceedes the configured threshold, then mCaptcha will increase difficulty factor based on the configuration provided.",content:"\u003cp\u003emCaptcha\u0026rsquo;s variable difficulty factor mechanism requires a website\u0026rsquo;s traffic\nstatistics be split into levels, so that it can deploy the right\ndifficulty factor for each level.\u003c/p\u003e\n\u003cp\u003eVisitor threshold is used to traffic into levels and mCaptcha accepts a\ndifficulty configuration for each of these levels. When current traffic\nexceeds a difficulty factor, mCaptcha will increase the difficulty\nfactor to the next configured level.\u003c/p\u003e\n\u003cp\u003eFor instance, consider the configuration given below:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCool down period: 30 seconds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eLevel\u003c/th\u003e\n\u003cth\u003eDifficulty Factor\u003c/th\u003e\n\u003cth\u003eVisitor Threshold\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003e5,000\u003c/td\u003e\n\u003ctd\u003e2,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e2\u003c/td\u003e\n\u003ctd\u003e50,000\u003c/td\u003e\n\u003ctd\u003e5,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e3\u003c/td\u003e\n\u003ctd\u003e500,000\u003c/td\u003e\n\u003ctd\u003e10,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e4\u003c/td\u003e\n\u003ctd\u003e5,000,000\u003c/td\u003e\n\u003ctd\u003e15,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eIf the website sees 2,000 requests in a 30 second window, level 1\ndifficulty factor(5,000) will be deployed. If the traffic increases to\n5,000 requests in a 30 second window, then difficulty factor will be\nupgraded to level 2(50,000). Likewise 10,000 and 15,000 requests over 30\nseconds will result in difficulty factor being upgraded to 500,000 and\n5,000,000 respectively.\u003c/p\u003e\n\u003cp\u003eVisitor threshold is how mCaptcha determines which difficulty factor\nlevel to deploy. mCaptcha uses leaky bucket algorithm to keep the\nvisitor threshold constantly updated within the configured cool down\nperiod. So, at any given moment the, the current visitor level will be\nthe amount of traffic that was served in the cool down period specified.\u003c/p\u003e\n"},{id:7,href:"/docs/self-hosted/getting-started/",title:"Getting started",description:"Get started with self-hosting mCaptcha",content:'\u003ch2 id="get-started"\u003eGet started\u003c/h2\u003e\n\u003cp\u003eThere are two main ways to self-host mCaptcha:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href="./bare-metal.md"\u003eBare metal\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="./docker.md"\u003eWith Docker\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n'},{id:8,href:"/docs/self-hosted/bare-metal/",title:"Deploy bare metal",description:"Bare metal deployment is tedious, most of this will be automated with a script in the future.",content:'\u003ch3 id="2-configure"\u003e2. Configure\u003c/h3\u003e\n\u003cp\u003emcaptcha is highly configurable.\u003c/p\u003e\n\u003cp\u003eConfiguration is applied/merged in the following order:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003epath to configuration file passed in via \u003ccode\u003eMCAPTCHA_CONFIG\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e./config/default.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/etc/mcaptcha/config.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eenvironment variables.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id="1-install-postgres-if-you-dont-have-it-already"\u003e1. Install postgres if you don\u0026rsquo;t have it already.\u003c/h3\u003e\n\u003cp\u003eFor Debian based distributions:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003esudo apt install postgres\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="2-create-new-user-for-running-mcaptcha"\u003e2. Create new user for running \u003ccode\u003emcaptcha\u003c/code\u003e\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo useradd -b /srv -m -s /usr/bin/zsh mcaptcha\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="3-create-new-user-in-postgres"\u003e3. Create new user in Postgres\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo -iu postgres \u003cspan style="color:#6272a4"\u003e# switch to `postgres` user\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e$ psql\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#8be9fd;font-style:italic"\u003epostgres\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#6272a4"\u003e#  CREATE USER mcaptcha WITH PASSWORD \u0026#39;my super long password and yes you need single quote`;\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e$  createdb -O mcaptcha mcaptcha \u003cspan style="color:#6272a4"\u003e# create db \u0026#39;mcaptcha\u0026#39; with \u0026#39;mcaptcha\u0026#39; as owner\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="4-install-and-load-mcaptchacachehttpsgithubcommcaptchacache-module"\u003e4. Install and load \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e module:\u003c/h3\u003e\n\u003cp\u003eSee \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e for more\ndetails.\u003c/p\u003e\n\u003ch3 id="4-build-mcaptcha"\u003e4. Build \u003ccode\u003emcaptcha\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eTo build \u003ccode\u003emcaptcha\u003c/code\u003e, you need the following dependencies:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003erust\u003c/li\u003e\n\u003cli\u003enode(\u003ccode\u003ev14.16.0\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eyarn(JavaScript package manager)\u003c/li\u003e\n\u003cli\u003emake\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id="how-to-build"\u003eHow to build\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eInstall Cargo using \u003ca href="https://rustup.rs/"\u003erustup\u003c/a\u003e with:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ curl --proto \u003cspan style="color:#f1fa8c"\u003e\u0026#39;=https\u0026#39;\u003c/span\u003e --tlsv1.2 -sSf https://sh.rustup.rs | sh\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start="2"\u003e\n\u003cli\u003e\n\u003cp\u003eInstall node(\u003ccode\u003ev14.16.0\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInstall yarn(JavaScript package manager)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuild with make:\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ make dev-env \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	make release\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="5-install-package"\u003e5. Install package:\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo cp ./target/release/mcaptcha /usr/bin/ \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	mkdir sudo /etc/mcaptcha \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	sudo cp config/default.toml /etc/mcaptcha/config.toml\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="6-systemd-service-configuration"\u003e6. Systemd service configuration:\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eCopy the following to \u003ccode\u003e/etc/systemd/system/mcaptcha.service\u003c/code\u003e:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-systemd" data-lang="systemd"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 1\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Unit]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 2\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eDescription\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003emCaptcha: a CAPTCHA system that gives attackers a run for their money\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 3\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 4\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Service]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 5\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eType\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003esimple\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 6\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eUser\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003emcaptcha\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 7\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eExecStart\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e/usr/bin/mcaptcha\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 8\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRestart\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003eon-failure\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 9\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRestartSec\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e1\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e10\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eSuccessExitStatus\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e3 4\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e11\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRestartForceExitStatus\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e3 4\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e12\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eSystemCallArchitectures\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003enative\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e13\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eMemoryDenyWriteExecute\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003etrue\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e14\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eNoNewPrivileges\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003etrue\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e15\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eEnvironment\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;RUST_LOG=info\u0026#34;\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e16\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e17\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Unit]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e18\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eAfter\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003esound.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e19\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eWants\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003enetwork-online.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e20\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eWants\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003enetwork-online.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e21\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRequires\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003epostgresql.service\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e22\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eAfter\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003esyslog.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e23\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e24\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Install]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e25\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eWantedBy\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003emulti-user.target\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start="2"\u003e\n\u003cli\u003eEnable service:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo systemctl daemon-reload \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	sudo systemctl \u003cspan style="color:#8be9fd;font-style:italic"\u003eenable\u003c/span\u003e mcaptcha \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\ \u003c/span\u003e\u003cspan style="color:#6272a4"\u003e# Auto startup during boot\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e	sudo systemctl start mcaptcha\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e``\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:9,href:"/docs/self-hosted/docker/",title:"Using Docker",description:"Deploy mCaptcha using docker",content:'\u003ch2 id="with-docker"\u003eWith Docker\u003c/h2\u003e\n\u003ch3 id="1-configure"\u003e1. Configure\u003c/h3\u003e\n\u003cp\u003emcaptcha is highly configurable.\u003c/p\u003e\n\u003cp\u003eConfiguration is applied/merged in the following order:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003epath to configuration file passed in via \u003ccode\u003eMCAPTCHA_CONFIG\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e./config/default.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/etc/mcaptcha/config.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eenvironment variables.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eSee\n\u003ca href="https://github.com/mCaptcha/mCaptcha/tree/master/docs/CONFIGURATION.md"\u003eCONFIGURATION.md\u003c/a\u003e\nfor configurable options.\u003c/p\u003e\n\u003ch3 id="2-run-image"\u003e2. Run image\u003c/h3\u003e\n\u003cp\u003eIf you have already have a Postgres instance running, then:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker run -p \u0026lt;host-machine-port\u0026gt;:\u0026lt;port-in-configuration-file\u0026gt; \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	--add-host\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003edatabase:\u0026lt;database-ip-addrss\u0026gt; \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	-e \u003cspan style="color:#8be9fd;font-style:italic"\u003eRUST_LOG\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003edebug \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	-e \u003cspan style="color:#8be9fd;font-style:italic"\u003eDATABASE_URL\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;postgres://\u0026lt;db-user\u0026gt;:\u0026lt;db-password\u0026gt;@database:\u0026lt;db-port\u0026gt;/\u0026lt;db-name\u0026gt;\u0026#34;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e5\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	mcaptcha/mcaptcha:latest\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eIf you don\u0026rsquo;t have a Postgres instance running, you can either install\none using a package manager or launch one with docker. A \u003ca href="\'../docker-compose.yml"\u003edocker-compose\nconfiguration\u003c/a\u003e is available that will launch both\na database instance mcaptcha instance.\u003c/p\u003e\n\u003ch2 id="with-docker-compose"\u003eWith docker-compose\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eFollow steps above to build docker image.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet database password \u003ca href="\'../docker-compose.yml"\u003edocker-compose configuration\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLaunch network\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker-compose up -d\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:10,href:"/docs/self-hosted/dependencies/",title:"Database and cache",description:"mCaptcha server requires dependencies like a Postgres database and a Redis cache",content:'\u003ch2 id="notes"\u003eNotes\u003c/h2\u003e\n\u003ch3 id="database"\u003eDatabase\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDatabase migrations are baked into the server binary so don\u0026rsquo;t worry\nabout them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen compiling from source, unset database configuration(comment out\ndatabase configuration/ \u003ccode\u003eunset\u003c/code\u003e relevant environment variables).\n\u003ccode\u003emCaptcha\u003c/code\u003e uses \u003ca href="https://crates.io/crates/sqlx"\u003e\u003ccode\u003esqlx\u003c/code\u003e\u003c/a\u003e database client\nlibrary which checks SQL queries at compile time. So if you are starting\nwith a fresh database without migrations applied, compilation will fail.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id="redis"\u003eRedis\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRedis is an optional dependency. Currently, the non-Redis configuration\ndoesn\u0026rsquo;t persist CAPTCHA heat. So if there\u0026rsquo;s a systems failure, CAPTCHA\nheat will be reset and visitor count will start from 0. For small\ninstallations, this should post a problem as heat is short lived and is\nreset anyways at cool down period.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emCaptcha uses a custom Redis module called\n\u003ca href="https://github.com/mCaptcha/cache"\u003ecache\u003c/a\u003e to overcome some of Redis\'\nlimitations.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id="instructions"\u003eInstructions\u003c/h2\u003e\n\u003cp\u003eOnce again, there are two ways to go about this:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDocker\u003c/li\u003e\n\u003cli\u003eBare metal\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id="docker"\u003eDocker\u003c/h3\u003e\n\u003ch3 id="database-1"\u003eDatabase\u003c/h3\u003e\n\u003cp\u003eDownload and run Postgres\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker create --name mcaptcha-postgres \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  -e \u003cspan style="color:#8be9fd;font-style:italic"\u003ePOSTGRES_PASSWORD\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u0026lt;database-password\u0026gt; \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  -p 5432:5432 \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  postgres \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e docker start mcaptcha-postgres\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="redis-1"\u003eRedis\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker create --name mcaptcha-cache \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  -p 6379:6379 \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  mcaptcha/cache \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e docker start mcaptcha-cache\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eSee \u003ca href="https://github.com/mCaptcha/cache"\u003emCaptcha/cache\u003c/a\u003e for more\ndetails.\u003c/p\u003e\n\u003ch3 id="1-install-postgres-if-you-dont-have-it-already"\u003e1. Install Postgres if you don\u0026rsquo;t have it already.\u003c/h3\u003e\n\u003cp\u003eFor Debian based distributions:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003esudo apt install postgres\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="2-create-new-user-for-running-mcaptcha"\u003e2. Create new user for running \u003ccode\u003emCaptcha\u003c/code\u003e\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo useradd -b /srv -m -s /usr/bin/bash mcaptcha\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="3-create-new-user-in-postgres"\u003e3. Create new user in Postgres\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo -iu postgres \u003cspan style="color:#6272a4"\u003e# switch to `postgres` user\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e$ psql\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#8be9fd;font-style:italic"\u003epostgres\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#6272a4"\u003e#  CREATE USER mcaptcha WITH PASSWORD \u0026#39;my super long password and yes you need single quote\u0026#39;;\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e$  createdb -O mcaptcha mcaptcha \u003cspan style="color:#6272a4"\u003e# create db \u0026#39;mcaptcha\u0026#39; with \u0026#39;mcaptcha\u0026#39; as owner\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="4-install-mcaptchacachehttpsgithubcommcaptchacache"\u003e4. Install \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eSee \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e for more\ndetails.\u003c/p\u003e\n'},{id:11,href:"/docs/help/troubleshooting/",title:"Troubleshooting",description:"Solutions to common problems.",content:'\u003ch2 id="q-i-just-setup-an-instance-but-i-am-unable-to-login"\u003eQ: I just setup an instance but I am unable to login\u003c/h2\u003e\n\u003cp\u003emCaptcha by default is configured to server at \u003ccode\u003elocalhost\u003c/code\u003e hostname. If\nthe instance is deployed at another hostname, please try setting\n\u003ccode\u003eMCAPTCHA_SERVER_DOMAIN\u003c/code\u003e environment variable to the hostname at which\nyour instance is deployed or setting the equivalent in config.toml:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-toml" data-lang="toml"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e[server]\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003edomain=mydomain\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:12,href:"/docs/api/browser/",title:"Browser libraries",description:"API documenttion for mCaptcha WASM library",content:'\u003cp\u003eThe browser part of mCaptcha is divided into three components.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGlue code\u003c/li\u003e\n\u003cli\u003eWidget program\u003c/li\u003e\n\u003cli\u003eProof-of-Work libraries(WebAssembly and JavaScript polyfill)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id="glue-code"\u003eGlue code\u003c/h2\u003e\n\u003cp\u003eThis is the code that links mCaptcha with your website\u0026rsquo;s frontend code.\nIt creates an \u003ccode\u003eiframe\u003c/code\u003e containing the mCaptcha widget and injects the\nreceived verification proof token into a hidden input field.\u003c/p\u003e\n\u003cp\u003eSupport is available for various frameworks, see\n\u003ca href="https://github.com/mCaptcha/glue"\u003e\u003ccode\u003emCaptcha/glue\u003c/code\u003e\u003c/a\u003e for the full list.\u003c/p\u003e\n\u003cp\u003eFor frameworks without official support, a low-level library,\n\u003ca href="https://www.npmjs.com/package/@mcaptcha/core-glue"\u003e\u003ccode\u003e@mcaptcha/core-glue\u003c/code\u003e\u003c/a\u003e,\ncan be used to implement support.\u003c/p\u003e\n\u003ch2 id="widget-program"\u003eWidget Program\u003c/h2\u003e\n\u003cp\u003eThis part is served by the mCaptcha backend. It fetches PoW config from\nthe backend, generates proof and submits it for verification. If\nverification is successful, it sends a message containing the\nverification proof token to the parent window, assuming it\u0026rsquo;s loaded as\nan \u003ccode\u003eiframe\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSource code:\n\u003ca href="https://github.com/mCaptcha/mCaptcha/tree/master/templates/widget"\u003e\u003ccode\u003emCaptcha/mCaptcha/templates/widget\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWebAssembly library which generates Proofs of Work for mCaptcha systems.\u003c/p\u003e\n\u003ch2 id="proof-of-workpow-library"\u003eProof-of-Work(PoW) library\u003c/h2\u003e\n\u003cp\u003eWebAssembly bindings(\u003ca href="https://github.com/mCaptcha/pow_wasm"\u003e\u003ccode\u003emCaptcha/pow_wasm\u003c/code\u003e\u003c/a\u003e) are available for the main rust library(\u003ca href="https://github.com/mCaptcha/pow_sha256"\u003e\u003ccode\u003emCaptcha/pow_sha256\u003c/code\u003e\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eFor browsers without support WebAssembly, a\npolyfill(\u003ca href="https://github.com/mCaptcha/pow_sha256-polyfill"\u003e\u003ccode\u003epow_sha256-polyfill\u003c/code\u003e\u003c/a\u003e)\nis available.\u003c/p\u003e\n'},{id:13,href:"/docs/api/mcaptcha-system/",title:"mCaptcha System Library",description:"API documenttion for the core Library used in mCaptcha",content:'\u003cp\u003eDocumentation for the library used in mCaptcha core.\u003c/p\u003e\n\u003ch2 id="versions"\u003eVersions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href="https://mcaptcha.github.io/mCaptcha/m_captcha/index.html"\u003emaster-branch\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.3/m_captcha/index.html"\u003e0.1.3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.2/m_captcha/index.html"\u003e0.1.2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.1/m_captcha/index.html"\u003e0.1.1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.0/m_captcha/index.html"\u003e0.1.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n'},{id:14,href:"/docs/api/pow-sha256/",title:"pow_sha256",description:"API documenttion for PoW Library used in mCaptcha",content:'\u003cp\u003eRust crate which generates SHA256 Proofs of Work on serializable datatypes.\u003c/p\u003e\n\u003cp\u003eThis is a fork of the \u003ca href="https://github.com/bddap/pow"\u003e\u003ccode\u003epow\u003c/code\u003e library\u003c/a\u003e by\n\u003ca href="https://github.com/robkorn/pow_sha256"\u003e@robkorn\u003c/a\u003e) with some new\nadditions. Primary of these being:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePoW datatype now offers a constructor\u003c/li\u003e\n\u003cli\u003eSalt is no longer hard coded into the library, users can provide\nunique salts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther small changes have also been included of various importance but\nmostly just stylistic/ease of use improvements.\u003c/p\u003e\n\u003ch2 id="versions"\u003eVersions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href="https://mcaptcha.github.io/pow_sha256/pow_sha256/index.html"\u003emaster-branch\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/pow_sha256/0.2.1/pow_sha256/index.html"\u003e0.2.1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/pow_sha256/0.2.0/pow_sha256/index.html"\u003e0.2.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/pow_sha256/0.1.0/pow_sha256/index.html"\u003e0.1.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id="changelog"\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eChangelog is available at the project\u0026rsquo;s\n\u003ca href="https://github.com/mCaptcha/pow_sha256/blob/master/CHANGELOG.md"\u003erepository\u003c/a\u003e\u003c/p\u003e\n'},{id:15,href:"/docs/help/faq/",title:"FAQ",description:"Answers to frequently asked questions.",content:"\u003cp\u003eComing soon\u003c/p\u003e\n"},{id:16,href:"/docs/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:""},{id:17,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:18,href:"/docs/introduction/",title:"Introduction",description:"Introduction to mCaptcha.",content:""},{id:19,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:20,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:21,href:"/docs/self-hosted/",title:"Self-Hosted",description:"Instructions to self-host mCaptcha",content:""}];b.add(c),userinput.addEventListener('input',e,!0),suggestions.addEventListener('click',f,!0);function e(){var g=this.value,e=b.search(g,5),f=suggestions.childNodes,h=0,i=e.length,c;for(suggestions.classList.remove('d-none'),e.forEach(function(b){c=document.createElement('div'),c.innerHTML='<a href><span></span><span></span></a>',a=c.querySelector('a'),t=c.querySelector('span:first-child'),d=c.querySelector('span:nth-child(2)'),a.href=b.href,t.textContent=b.title,d.textContent=b.description,suggestions.appendChild(c)});f.length>i;)suggestions.removeChild(f[h])}function f(){while(suggestions.lastChild)suggestions.removeChild(suggestions.lastChild);return!1}})()
\ No newline at end of file
+var suggestions=document.getElementById('suggestions'),userinput=document.getElementById('userinput');document.addEventListener('keydown',inputFocus);function inputFocus(a){a.keyCode===191&&(a.preventDefault(),userinput.focus()),a.keyCode===27&&(userinput.blur(),suggestions.classList.add('d-none'))}document.addEventListener('click',function(a){var b=suggestions.contains(a.target);b||suggestions.classList.add('d-none')}),document.addEventListener('keydown',suggestionFocus);function suggestionFocus(b){const d=suggestions.querySelectorAll('a'),e=[...d],a=e.indexOf(document.activeElement);let c=0;b.keyCode===38?(b.preventDefault(),c=a>0?a-1:0,d[c].focus()):b.keyCode===40&&(b.preventDefault(),c=a+1<e.length?a+1:a,d[c].focus())}(function(){var b=new FlexSearch({preset:'score',cache:!0,doc:{id:'id',field:['title','description','content'],store:['href','title','description']}}),c=[{id:0,href:"/docs/introduction/installing-captcha/",title:"Installing mCaptcha on your website",description:"Interested in deploying mCpatcha? From deploying a self-hosted instance to installing the CAPTCHA on your website, this guide will have you covered!",content:'\u003cp\u003emCaptcha can protect your website from DDoS attacks. In this guide we\u0026rsquo;ll\nexplore how to install mCaptcha on your website. The end result will be\nsomething like this, on your website:\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_20x0_resize_box_2.png" data-srcset="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_500x0_resize_box_2.png 500w" width="618" height="669" alt="A registration form with mCaptcha widget installed"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_500x0_resize_box_2.png 500w" src="/docs/introduction/installing-captcha/mcaptcha-widget-installation-result.png" width="618" height="669" alt="A registration form with mCaptcha widget installed"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003cp\u003eFor the purpose of this demo, we will be using\n\u003ca href="https://demo.mcaptcha.org"\u003edemo.mcaptcha.org\u003c/a\u003e, a demo instance running\nin @realaravinth\u0026rsquo;s bedroom(for this same reason, it shouldn\u0026rsquo;t be used\nfor anything serious)\u003c/p\u003e\n\u003ch2 id="1-create-an-account-and-sign-into-the-mcaptcha-dashboard"\u003e1. Create an account and sign into the mCaptcha dashboard\u003c/h2\u003e\n\u003cp\u003eHead over to \u003ca href="https://demo.mcaptcha.org/join"\u003edemo.mcaptcha.org\u003c/a\u003e and\ncreate an account. When ready, sign in.\u003c/p\u003e\n\u003ch2 id="2-create-new-site-key"\u003e2. Create new site key\u003c/h2\u003e\n\u003cp\u003eA \u003ca href="/docs/terminology/sitekey/"\u003esite key\u003c/a\u003e is how a new CAPTCHA is configured within mCaptcha. To create\na new site key, click on \u0026ldquo;New Site\u0026rdquo; button in the dashboard.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_20x0_resize_box_2.png" data-srcset="/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_500x0_resize_box_2.png 500w" width="1825" height="857" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; button highlighted"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_500x0_resize_box_2.png 500w" src="/docs/introduction/installing-captcha/new-sitekey-btn.png" width="1825" height="857" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; button highlighted"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003cp\u003eThere are two options to create a new site key, easy and advanced. \u003cstrong\u003eWe\nare going to use the easy mode in this tutorial.\u003c/strong\u003e If you are interested\nin learning more about the advance mode, please see \u003ca href="/docs/introduction/configuring-difficulty-factor/#advance-option"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3 id="easy-modedocsintroductionconfiguring-difficulty-factoreasy-option"\u003e\u003ca href="/docs/introduction/configuring-difficulty-factor/#easy-option"\u003eEasy Mode\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eEasy mode asks a few basic statistics about your website and generates a\nconfiguration that should work for your website. Currently, easy mode is\nguided by assumptions on suitable difficulty factors to protect a\nwebsite but it will be fine-tuned as mCaptcha sees more deployment.\u003c/p\u003e\n\u003cp\u003eConfiguration generated by easy mode can be tweaked later using the\nadvance mode, as you become more familiar with how mCaptcha works.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eFill the form and submit it.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_20x0_resize_box_2.png" data-srcset="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_500x0_resize_box_2.png 500w" width="720" height="452" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; form in easy mode, with details filled in"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_900x0_resize_box_2.png 900w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_800x0_resize_box_2.png 800w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_700x0_resize_box_2.png 700w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_600x0_resize_box_2.png 600w,/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_500x0_resize_box_2.png 500w" src="/docs/introduction/installing-captcha/new-sitekey-easy-mode-filled.png" width="720" height="452" alt="mCaptcha dashboard with the \u0026#39;new site key\u0026#39; form in easy mode, with details filled in"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003ch2 id="3-copy-widget-link"\u003e3. Copy widget link\u003c/h2\u003e\n\u003cp\u003eSubmitting the form will take you to a page where site key configuration\ncan be viewed. \u0026ldquo;View deployment\u0026rdquo; link will display CAPTCHA widget with\nthe supplied configuration. Click on it and grab the widget link.\u003c/p\u003e\n\u003ch2 id="4-install-mcaptcha-on-your-website"\u003e4. Install mCaptcha on your website\u003c/h2\u003e\n\u003cp\u003eIntegration support is available for some frontend JavaScript\nframeworks. To see full list of supported frameworks, please see\n\u003ca href="https://github.com/mCaptcha/glue#framework-support"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThere are two options to use the integration library to integrate\nmCaptcha on your website:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eServe the integration library yourself\u003c/li\u003e\n\u003cli\u003eUse a CDN like unpkg.com\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eIn this tutorial, we\u0026rsquo;ll be using the CDN.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePasting the following snippet on the page, within the form\u003c/strong\u003e that requires to be protected\nwill load the mCaptcha widget with the configuration supplied. Be sure\nto replace \u003ccode\u003eYour {{paste your widget link}}\u003c/code\u003e with the link obtained from\nthe previous step.\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-html" data-lang="html"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 1\u003c/span\u003e\u0026lt;\u003cspan style="color:#ff79c6"\u003ediv\u003c/span\u003e \u003cspan style="color:#50fa7b"\u003eid\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;mcaptcha__widget-container\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style="color:#ff79c6"\u003ediv\u003c/span\u003e\u0026gt;\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 2\u003c/span\u003e\u0026lt;\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e \u003cspan style="color:#50fa7b"\u003esrc\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-alpha-2/dist/index.js\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e\u0026gt;\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 3\u003c/span\u003e\u0026lt;\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e \u003cspan style="color:#50fa7b"\u003echarset\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u0026gt;\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 4\u003c/span\u003e  \u003cspan style="color:#8be9fd;font-style:italic"\u003elet\u003c/span\u003e config \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e {\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 5\u003c/span\u003e    widgetLink\u003cspan style="color:#ff79c6"\u003e:\u003c/span\u003e \u003cspan style="color:#ff79c6"\u003enew\u003c/span\u003e URL(\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 6\u003c/span\u003e      {{paste yout widget link}}\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 7\u003c/span\u003e    ),\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 8\u003c/span\u003e  };\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 9\u003c/span\u003e  \u003cspan style="color:#ff79c6"\u003enew\u003c/span\u003e mcaptchaGlue.\u003cspan style="color:#ff79c6"\u003edefault\u003c/span\u003e(config);\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e10\u003c/span\u003e\u0026lt;/\u003cspan style="color:#ff79c6"\u003escript\u003c/span\u003e\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eA full example is available\n\u003ca href="https://github.com/mCaptcha/glue/blob/ea576d875457de54d82bed3edfc4ee68302fa4d8/packages/vanilla/static/embeded.html"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id="5-configure-backend-to-authenticate-captcha-tokens"\u003e5. Configure backend to authenticate CAPTCHA tokens\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eGet \u003ca href="/docs/terminology/access-token"\u003eaccess token\u003c/a\u003e from the user\u0026rsquo;s\nform submission payload. The access token will be associated with a\nparameter called \u003ccode\u003emcaptcha__token\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-python" data-lang="python"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e mcaptcha_token \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e request\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003eform[\u003cspan style="color:#f1fa8c"\u003e\u0026#34;mcaptcha__token\u0026#34;\u003c/span\u003e]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eValidate access token with mCaptcha instance\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-python" data-lang="python"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 1\u003c/span\u003epayload \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e {\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 2\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;token\u0026#34;\u003c/span\u003e: mcaptcha_token,\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 3\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;key\u0026#34;\u003c/span\u003e: mcaptcha_sitekey, \u003cspan style="color:#6272a4"\u003e# captcha site key\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 4\u003c/span\u003e    \u003cspan style="color:#6272a4"\u003e# mCaptcha account secret; available in settings\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 5\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;secret\u0026#34;\u003c/span\u003e: mcaptcha_account_secret,\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 6\u003c/span\u003e}\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 7\u003c/span\u003eresp \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e requests\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003epost(\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 8\u003c/span\u003e    \u003cspan style="color:#f1fa8c"\u003e\u0026#34;https://demo.mcaptha.org/api/v1/pow/siteverify\u0026#34;\u003c/span\u003e, json\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003epayload\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 9\u003c/span\u003e)\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e10\u003c/span\u003eresp \u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e resp\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003ejson()\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start="3"\u003e\n\u003cli\u003eIf access token is valid, allow access to protected resource or deny\naccess.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-python" data-lang="python"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e \u003cspan style="color:#ff79c6"\u003eif\u003c/span\u003e resp[\u003cspan style="color:#f1fa8c"\u003e\u0026#34;valid\u0026#34;\u003c/span\u003e] \u003cspan style="color:#ff79c6"\u003e==\u003c/span\u003e False:\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e     \u003cspan style="color:#ff79c6"\u003ereturn\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\u0026#34;invalid captcha\u0026#34;\u003c/span\u003e, \u003cspan style="color:#bd93f9"\u003e400\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e \u003cspan style="color:#ff79c6"\u003eelse\u003c/span\u003e:\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e     \u003cspan style="color:#ff79c6"\u003ereturn\u003c/span\u003e allow_access_to_protected_resource(request\u003cspan style="color:#ff79c6"\u003e.\u003c/span\u003eform)\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ePlease see here for a complete \u003ca href="https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/server"\u003eFlask example\u003c/a\u003e and here for an \u003ca href="https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/rust-server/demo-server"\u003eActix\nWeb example\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCongratulations, mCaptcha is now integrated with your website!\u003c/p\u003e\n'},{id:1,href:"/docs/introduction/configuring-difficulty-factor/",title:"Configuring Difficulty Factor",description:"mCaptcha has options to configure its proof of work engine behavior, this page explains how to determine difficulty facotrs that work best for your website!",content:'\u003cp\u003emCaptcha is highly responsive to detecting DDoS attacks. Admins are\nadvised to take advantage of it by setting low \u003ca href="/docs/terminology/difficulty-factor/"\u003edifficulty\nfactors\u003c/a\u003e for normal traffic levels\nfor their website.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLowest advisable difficulty factor is 5000.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eFor instance, if it is normal for my website to get 2000 requests for\nevery 30 seconds, I will set a \u003ca href="/docs/terminology/cooldown-period.md"\u003ecool\ndown\u003c/a\u003e period of 30 seconds and the\nfirst level of difficulty configuration will have a \u003ca href="/docs/terminology/visitor-threshold.md"\u003evisitor threshold\u003c/a\u003e of 2000 with a\ndifficulty factor of 5000.\u003c/p\u003e\n\u003cp\u003eThere are two modes to setting difficulty factor for your website on\nmCaptcha:\u003c/p\u003e\n\u003ch3 id="easy-option"\u003eEasy option\u003c/h3\u003e\n\u003cp\u003eEasy mode asks a few basic statistics about your website and generates a\nconfiguration that should work for your website. Currently, easy mode is\nguided by assumptions on suitable difficulty factors to protect a\nwebsite but it will be fine-tuned as mCaptcha sees more deployment.\u003c/p\u003e\n\u003cp\u003eConfiguration generated by easy mode can be tweaked later using the\nadvance mode, as you become more familiar with how mCaptcha works.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_20x0_resize_box_2.png" data-srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_500x0_resize_box_2.png 500w" width="720" height="452" alt="new sitekey form in easy mode"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_500x0_resize_box_2.png 500w" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-easy-mode.png" width="720" height="452" alt="new sitekey form in easy mode"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003ch3 id="advance-option"\u003eAdvance option\u003c/h3\u003e\n\u003cp\u003eAdvance mode gives the admin granular control over how mCaptcha behaves\non their website. It has options to set the difficulty factor for each\nlevel of traffic(or visitor threshold, in mCaptcha speak), fully taking\nadvantage of mCaptcha\u0026rsquo;s variable difficulty factor feature.\u003c/p\u003e\n\u003cp\u003eFor instance, if it is normal for a website to get 200 requests over 30\nseconds, then setting a very low difficulty factor for a visitor\nthreshold of 200 and a cool down period of 30 seconds will allow the\nusers to pass through without waiting on the CAPTCHA. But if 1000\nrequests over 30 seconds will bring down the service, then the admin can\nconfigure increasing levels of difficulty factor of increasing traffic\nlevels, effectively rate limiting its users and protecting the\nunderlying website.\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_20x0_resize_box_2.png" data-srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" width="720" height="407" alt="new sitekey form in advance mode"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_2.png 900w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_2.png 800w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_2.png 700w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_2.png 600w,/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_2.png 500w" src="/docs/introduction/configuring-difficulty-factor/new-sitekey-adv-mode.png" width="720" height="407" alt="new sitekey form in advance mode"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n'},{id:2,href:"/docs/terminology/access-token/",title:"Access token",description:"mCaptcha implements leaky bucket algorithm to measure current traffic levels. Cooldown period specifies the leak or the time after which a visitor addition is decremented.",content:'\u003cp\u003eWhen a visitor solves the CAPTCHA and sends their solution to an\nmCaptcha instance, the solution will be verified for correctness. If the\nsolution is correct, mCaptcha will return a single use access token.\u003c/p\u003e\n\u003cp\u003eThis access token should be attached to the visitor\u0026rsquo;s requited to the\nprotected service and the protected service should validity of the\naccess token with the mCaptcha instance and only allow access to\nprotected resource if the access token is valid.\u003c/p\u003e\n\u003ch2 id="validate-access-token"\u003eValidate access token:\u003c/h2\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003ecurl --location --request POST \u003cspan style="color:#f1fa8c"\u003e\u0026#39;https://mcaptcha.example.net/api/v1/pow/siteverify\u0026#39;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  --header \u003cspan style="color:#f1fa8c"\u003e\u0026#39;Content-Type: application/json\u0026#39;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  --data-raw \u003cspan style="color:#f1fa8c"\u003e\u0026#39;{\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e    \u0026#34;token\u0026#34;: \u0026#34;replace this with the access token presented by visitor\u0026#34;,\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e5\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e    \u0026#34;key\u0026#34;: \u0026#34;replace this with the sitekey associated with the CAPTCHA\u0026#34;\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e6\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e    \u0026#34;secret\u0026#34;: \u0026#34;replace this with mCaptcha account secret, available in settings\u0026#34;\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e7\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e  }\u0026#39;\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:3,href:"/docs/terminology/cooldown-period/",title:"Cooldown Period",description:"mCaptcha implements leaky bucket algorithm to measure current traffic levels. Cooldown period specifies the leak or the time after which a visitor addition is decremented.",content:'\u003cp\u003emCaptcha implements leaky bucket algorithm to measure\ncurrent traffic levels. Cooldown period specifies the leak or the time\nafter which a visitor addition is decremented.\u003c/p\u003e\n\u003cp\u003eFor instance, if initial traffic level is 0 and a user visits one\nsecond later, the traffic level will be incremented to 1. Now, if the\ncooldown period is set to 30 seconds, the traffic level will be\ndecremented after 30 seconds. So after 30 seconds, the traffic level will\ngo from 1 to 0.\u003c/p\u003e\n\u003ch2 id="easy-mode-default-cooldown"\u003eEasy Mode: Default cooldown\u003c/h2\u003e\n\u003cp\u003eWhen configuring mCaptcha in \u003ca href="/docs/terminology/difficulty-factor#easy-option"\u003eeasy\nmode\u003c/a\u003e, the default cooldown period is\nset to 30 seconds.\u003c/p\u003e\n'},{id:4,href:"/docs/terminology/difficulty-factor/",title:"Difficulty Factor",description:"Difficulty factor determines the time it takes to solve a CAPTCHA, there are two modes to setting difficulty factor: advance and easy, this page documents both modes.",content:"\u003cp\u003eDifficulty factor determines the time it takes to solve a CAPTCHA. The\nhigher the difficulty factor, the longer it will take to generate a\nproof of work for it to solve the CAPTCHA.\u003c/p\u003e\n\u003cp\u003emCaptcha\u0026rsquo;s proof of work based mechanism makes it highly accessible to\npeople with special needs but it is important to choose the difficulty factor\nwith care as very high difficulty factors will make the CAPTCHA\ninaccessible to users on slow devices.\u003c/p\u003e\n"},{id:5,href:"/docs/terminology/sitekey/",title:"Site key",description:"Site key is the unique identifier associated with a CAPTCHA created on mCaptcha",content:'\u003cp\u003eSite key is a unique identifier associated with CAPTCHA configurations\ncreated on mCaptcha. It is required to integrate a CAPTCHA with your\nwebsite.\u003c/p\u003e\n\u003ch2 id="how-to-get-site-key"\u003eHow to get site key?\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eGo to \u0026ldquo;Site keys\u0026rdquo; on the side panel in the dashboard\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv align=center\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_20x0_resize_box_2.png" data-srcset="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_2.png 500w" width="222" height="496" alt="Site key menu option on the dashboard, encircled in red."\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_2.png 500w" src="/docs/terminology/sitekey/sitekey-in-dashboard-sidepanel.png" width="222" height="496" alt="Site key menu option on the dashboard, encircled in red."\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n\u003c/div\u003e\n\u003col start="2"\u003e\n\u003cli\u003eclick on the clipboard button to copy the site key to your\nclipboard.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cfigure\u003e\n  \u003cimg class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_20x0_resize_box_2.png" data-srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"\u003e\n  \u003cnoscript\u003e\u003cimg class="img-fluid" sizes="100vw" srcset="/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_2.png 900w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_2.png 800w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_2.png 700w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_2.png 600w,/docs/terminology/sitekey/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_2.png 500w" src="/docs/terminology/sitekey/copy-sitekey.png" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"\u003e\u003c/noscript\u003e\n\u003c/figure\u003e\n'},{id:6,href:"/docs/terminology/visitor-threshold/",title:"Visitor Threshold",description:"Visitor threshold is used to split traffic into levels. If the traffic level supersceedes the configured threshold, then mCaptcha will increase difficulty factor based on the configuration provided.",content:"\u003cp\u003emCaptcha\u0026rsquo;s variable difficulty factor mechanism requires a website\u0026rsquo;s traffic\nstatistics be split into levels, so that it can deploy the right\ndifficulty factor for each level.\u003c/p\u003e\n\u003cp\u003eVisitor threshold is used to traffic into levels and mCaptcha accepts a\ndifficulty configuration for each of these levels. When current traffic\nexceeds a difficulty factor, mCaptcha will increase the difficulty\nfactor to the next configured level.\u003c/p\u003e\n\u003cp\u003eFor instance, consider the configuration given below:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCool down period: 30 seconds\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eLevel\u003c/th\u003e\n\u003cth\u003eDifficulty Factor\u003c/th\u003e\n\u003cth\u003eVisitor Threshold\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003e5,000\u003c/td\u003e\n\u003ctd\u003e2,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e2\u003c/td\u003e\n\u003ctd\u003e50,000\u003c/td\u003e\n\u003ctd\u003e5,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e3\u003c/td\u003e\n\u003ctd\u003e500,000\u003c/td\u003e\n\u003ctd\u003e10,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e4\u003c/td\u003e\n\u003ctd\u003e5,000,000\u003c/td\u003e\n\u003ctd\u003e15,000\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eIf the website sees 2,000 requests in a 30 second window, level 1\ndifficulty factor(5,000) will be deployed. If the traffic increases to\n5,000 requests in a 30 second window, then difficulty factor will be\nupgraded to level 2(50,000). Likewise 10,000 and 15,000 requests over 30\nseconds will result in difficulty factor being upgraded to 500,000 and\n5,000,000 respectively.\u003c/p\u003e\n\u003cp\u003eVisitor threshold is how mCaptcha determines which difficulty factor\nlevel to deploy. mCaptcha uses leaky bucket algorithm to keep the\nvisitor threshold constantly updated within the configured cool down\nperiod. So, at any given moment the, the current visitor level will be\nthe amount of traffic that was served in the cool down period specified.\u003c/p\u003e\n"},{id:7,href:"/docs/self-hosted/getting-started/",title:"Getting started",description:"Get started with self-hosting mCaptcha",content:'\u003ch2 id="get-started"\u003eGet started\u003c/h2\u003e\n\u003cp\u003eThere are two main ways to self-host mCaptcha:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href="./bare-metal.md"\u003eBare metal\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="./docker.md"\u003eWith Docker\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n'},{id:8,href:"/docs/self-hosted/bare-metal/",title:"Deploy bare metal",description:"Bare metal deployment is tedious, most of this will be automated with a script in the future.",content:'\u003ch3 id="2-configure"\u003e2. Configure\u003c/h3\u003e\n\u003cp\u003emcaptcha is highly configurable.\u003c/p\u003e\n\u003cp\u003eConfiguration is applied/merged in the following order:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003epath to configuration file passed in via \u003ccode\u003eMCAPTCHA_CONFIG\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e./config/default.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/etc/mcaptcha/config.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eenvironment variables.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id="1-install-postgres-if-you-dont-have-it-already"\u003e1. Install postgres if you don\u0026rsquo;t have it already.\u003c/h3\u003e\n\u003cp\u003eFor Debian based distributions:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003esudo apt install postgres\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="2-create-new-user-for-running-mcaptcha"\u003e2. Create new user for running \u003ccode\u003emcaptcha\u003c/code\u003e\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo useradd -b /srv -m -s /usr/bin/zsh mcaptcha\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="3-create-new-user-in-postgres"\u003e3. Create new user in Postgres\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo -iu postgres \u003cspan style="color:#6272a4"\u003e# switch to `postgres` user\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e$ psql\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#8be9fd;font-style:italic"\u003epostgres\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#6272a4"\u003e#  CREATE USER mcaptcha WITH PASSWORD \u0026#39;my super long password and yes you need single quote`;\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e$  createdb -O mcaptcha mcaptcha \u003cspan style="color:#6272a4"\u003e# create db \u0026#39;mcaptcha\u0026#39; with \u0026#39;mcaptcha\u0026#39; as owner\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="4-install-and-load-mcaptchacachehttpsgithubcommcaptchacache-module"\u003e4. Install and load \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e module:\u003c/h3\u003e\n\u003cp\u003eSee \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e for more\ndetails.\u003c/p\u003e\n\u003ch3 id="4-build-mcaptcha"\u003e4. Build \u003ccode\u003emcaptcha\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eTo build \u003ccode\u003emcaptcha\u003c/code\u003e, you need the following dependencies:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003erust\u003c/li\u003e\n\u003cli\u003enode(\u003ccode\u003ev14.16.0\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eyarn(JavaScript package manager)\u003c/li\u003e\n\u003cli\u003emake\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id="how-to-build"\u003eHow to build\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eInstall Cargo using \u003ca href="https://rustup.rs/"\u003erustup\u003c/a\u003e with:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ curl --proto \u003cspan style="color:#f1fa8c"\u003e\u0026#39;=https\u0026#39;\u003c/span\u003e --tlsv1.2 -sSf https://sh.rustup.rs | sh\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start="2"\u003e\n\u003cli\u003e\n\u003cp\u003eInstall node(\u003ccode\u003ev14.16.0\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInstall yarn(JavaScript package manager)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBuild with make:\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ make dev-env \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	make release\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="5-install-package"\u003e5. Install package:\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo cp ./target/release/mcaptcha /usr/bin/ \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	mkdir sudo /etc/mcaptcha \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	sudo cp config/default.toml /etc/mcaptcha/config.toml\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="6-systemd-service-configuration"\u003e6. Systemd service configuration:\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eCopy the following to \u003ccode\u003e/etc/systemd/system/mcaptcha.service\u003c/code\u003e:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-systemd" data-lang="systemd"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 1\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Unit]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 2\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eDescription\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003emCaptcha: a CAPTCHA system that gives attackers a run for their money\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 3\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 4\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Service]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 5\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eType\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003esimple\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 6\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eUser\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003emcaptcha\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 7\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eExecStart\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e/usr/bin/mcaptcha\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 8\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRestart\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003eon-failure\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e 9\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRestartSec\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e1\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e10\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eSuccessExitStatus\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e3 4\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e11\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRestartForceExitStatus\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e3 4\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e12\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eSystemCallArchitectures\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003enative\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e13\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eMemoryDenyWriteExecute\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003etrue\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e14\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eNoNewPrivileges\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003etrue\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e15\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eEnvironment\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;RUST_LOG=info\u0026#34;\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e16\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e17\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Unit]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e18\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eAfter\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003esound.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e19\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eWants\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003enetwork-online.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e20\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eWants\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003enetwork-online.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e21\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eRequires\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003epostgresql.service\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e22\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eAfter\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003esyslog.target\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e23\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e24\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e[Install]\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e25\u003c/span\u003e\u003cspan style="color:#50fa7b"\u003eWantedBy\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003emulti-user.target\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start="2"\u003e\n\u003cli\u003eEnable service:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo systemctl daemon-reload \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	sudo systemctl \u003cspan style="color:#8be9fd;font-style:italic"\u003eenable\u003c/span\u003e mcaptcha \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\ \u003c/span\u003e\u003cspan style="color:#6272a4"\u003e# Auto startup during boot\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e	sudo systemctl start mcaptcha\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e``\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:9,href:"/docs/self-hosted/docker/",title:"Using Docker",description:"Deploy mCaptcha using docker",content:'\u003ch2 id="with-docker"\u003eWith Docker\u003c/h2\u003e\n\u003ch3 id="1-configure"\u003e1. Configure\u003c/h3\u003e\n\u003cp\u003emcaptcha is highly configurable.\u003c/p\u003e\n\u003cp\u003eConfiguration is applied/merged in the following order:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003epath to configuration file passed in via \u003ccode\u003eMCAPTCHA_CONFIG\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e./config/default.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e/etc/mcaptcha/config.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eenvironment variables.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eSee\n\u003ca href="https://github.com/mCaptcha/mCaptcha/tree/master/docs/CONFIGURATION.md"\u003eCONFIGURATION.md\u003c/a\u003e\nfor configurable options.\u003c/p\u003e\n\u003ch3 id="2-run-image"\u003e2. Run image\u003c/h3\u003e\n\u003cp\u003eIf you have already have a Postgres instance running, then:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker run -p \u0026lt;host-machine-port\u0026gt;:\u0026lt;port-in-configuration-file\u0026gt; \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	--add-host\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003edatabase:\u0026lt;database-ip-addrss\u0026gt; \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	-e \u003cspan style="color:#8be9fd;font-style:italic"\u003eRUST_LOG\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003edebug \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	-e \u003cspan style="color:#8be9fd;font-style:italic"\u003eDATABASE_URL\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u0026#34;postgres://\u0026lt;db-user\u0026gt;:\u0026lt;db-password\u0026gt;@database:\u0026lt;db-port\u0026gt;/\u0026lt;db-name\u0026gt;\u0026#34;\u003c/span\u003e \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e5\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e	mcaptcha/mcaptcha:latest\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eIf you don\u0026rsquo;t have a Postgres instance running, you can either install\none using a package manager or launch one with docker. A \u003ca href="\'../docker-compose.yml"\u003edocker-compose\nconfiguration\u003c/a\u003e is available that will launch both\na database instance mcaptcha instance.\u003c/p\u003e\n\u003ch2 id="with-docker-compose"\u003eWith docker-compose\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eFollow steps above to build docker image.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet database password \u003ca href="\'../docker-compose.yml"\u003edocker-compose configuration\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLaunch network\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker-compose up -d\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:10,href:"/docs/self-hosted/dependencies/",title:"Database and cache",description:"mCaptcha server requires dependencies like a Postgres database and a Redis cache",content:'\u003ch2 id="notes"\u003eNotes\u003c/h2\u003e\n\u003ch3 id="database"\u003eDatabase\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDatabase migrations are baked into the server binary so don\u0026rsquo;t worry\nabout them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen compiling from source, unset database configuration(comment out\ndatabase configuration/ \u003ccode\u003eunset\u003c/code\u003e relevant environment variables).\n\u003ccode\u003emCaptcha\u003c/code\u003e uses \u003ca href="https://crates.io/crates/sqlx"\u003e\u003ccode\u003esqlx\u003c/code\u003e\u003c/a\u003e database client\nlibrary which checks SQL queries at compile time. So if you are starting\nwith a fresh database without migrations applied, compilation will fail.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id="redis"\u003eRedis\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRedis is an optional dependency. Currently, the non-Redis configuration\ndoesn\u0026rsquo;t persist CAPTCHA heat. So if there\u0026rsquo;s a systems failure, CAPTCHA\nheat will be reset and visitor count will start from 0. For small\ninstallations, this should post a problem as heat is short lived and is\nreset anyways at cool down period.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emCaptcha uses a custom Redis module called\n\u003ca href="https://github.com/mCaptcha/cache"\u003ecache\u003c/a\u003e to overcome some of Redis\'\nlimitations.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id="instructions"\u003eInstructions\u003c/h2\u003e\n\u003cp\u003eOnce again, there are two ways to go about this:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDocker\u003c/li\u003e\n\u003cli\u003eBare metal\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id="docker"\u003eDocker\u003c/h3\u003e\n\u003ch3 id="database-1"\u003eDatabase\u003c/h3\u003e\n\u003cp\u003eDownload and run Postgres\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker create --name mcaptcha-postgres \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  -e \u003cspan style="color:#8be9fd;font-style:italic"\u003ePOSTGRES_PASSWORD\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u0026lt;database-password\u0026gt; \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  -p 5432:5432 \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  postgres \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e docker start mcaptcha-postgres\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="redis-1"\u003eRedis\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003edocker create --name mcaptcha-cache \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  -p 6379:6379 \u003cspan style="color:#f1fa8c"\u003e\\\n\u003c/span\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#f1fa8c"\u003e\u003c/span\u003e  mcaptcha/cache \u003cspan style="color:#ff79c6"\u003e\u0026amp;\u0026amp;\u003c/span\u003e docker start mcaptcha-cache\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eSee \u003ca href="https://github.com/mCaptcha/cache"\u003emCaptcha/cache\u003c/a\u003e for more\ndetails.\u003c/p\u003e\n\u003ch3 id="1-install-postgres-if-you-dont-have-it-already"\u003e1. Install Postgres if you don\u0026rsquo;t have it already.\u003c/h3\u003e\n\u003cp\u003eFor Debian based distributions:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003esudo apt install postgres\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="2-create-new-user-for-running-mcaptcha"\u003e2. Create new user for running \u003ccode\u003emCaptcha\u003c/code\u003e\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo useradd -b /srv -m -s /usr/bin/bash mcaptcha\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="3-create-new-user-in-postgres"\u003e3. Create new user in Postgres\u003c/h3\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-bash" data-lang="bash"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e$ sudo -iu postgres \u003cspan style="color:#6272a4"\u003e# switch to `postgres` user\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003e$ psql\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e3\u003c/span\u003e\u003cspan style="color:#8be9fd;font-style:italic"\u003epostgres\u003c/span\u003e\u003cspan style="color:#ff79c6"\u003e=\u003c/span\u003e\u003cspan style="color:#6272a4"\u003e#  CREATE USER mcaptcha WITH PASSWORD \u0026#39;my super long password and yes you need single quote\u0026#39;;\u003c/span\u003e\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e4\u003c/span\u003e$  createdb -O mcaptcha mcaptcha \u003cspan style="color:#6272a4"\u003e# create db \u0026#39;mcaptcha\u0026#39; with \u0026#39;mcaptcha\u0026#39; as owner\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id="4-install-mcaptchacachehttpsgithubcommcaptchacache"\u003e4. Install \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eSee \u003ca href="https://github.com/mCaptcha/cache"\u003e\u003ccode\u003emCaptcha/cache\u003c/code\u003e\u003c/a\u003e for more\ndetails.\u003c/p\u003e\n'},{id:11,href:"/docs/help/troubleshooting/",title:"Troubleshooting",description:"Solutions to common problems.",content:'\u003ch2 id="q-i-just-setup-an-instance-but-i-am-unable-to-login"\u003eQ: I just setup an instance but I am unable to login\u003c/h2\u003e\n\u003cp\u003emCaptcha by default is configured to server at \u003ccode\u003elocalhost\u003c/code\u003e hostname. If\nthe instance is deployed at another hostname, please try setting\n\u003ccode\u003eMCAPTCHA_SERVER_DOMAIN\u003c/code\u003e environment variable to the hostname at which\nyour instance is deployed or setting the equivalent in config.toml:\u003c/p\u003e\n\u003cdiv class="highlight"\u003e\u003cpre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4"\u003e\u003ccode class="language-toml" data-lang="toml"\u003e\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e1\u003c/span\u003e[server]\n\u003cspan style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"\u003e2\u003c/span\u003edomain=mydomain\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e'},{id:12,href:"/docs/api/browser/",title:"Browser libraries",description:"API documenttion for mCaptcha WASM library",content:'\u003cp\u003eThe browser part of mCaptcha is divided into three components.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGlue code\u003c/li\u003e\n\u003cli\u003eWidget program\u003c/li\u003e\n\u003cli\u003eProof-of-Work libraries(WebAssembly and JavaScript polyfill)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id="glue-code"\u003eGlue code\u003c/h2\u003e\n\u003cp\u003eThis is the code that links mCaptcha with your website\u0026rsquo;s frontend code.\nIt creates an \u003ccode\u003eiframe\u003c/code\u003e containing the mCaptcha widget and injects the\nreceived verification proof token into a hidden input field.\u003c/p\u003e\n\u003cp\u003eSupport is available for various frameworks, see\n\u003ca href="https://github.com/mCaptcha/glue"\u003e\u003ccode\u003emCaptcha/glue\u003c/code\u003e\u003c/a\u003e for the full list.\u003c/p\u003e\n\u003cp\u003eFor frameworks without official support, a low-level library,\n\u003ca href="https://www.npmjs.com/package/@mcaptcha/core-glue"\u003e\u003ccode\u003e@mcaptcha/core-glue\u003c/code\u003e\u003c/a\u003e,\ncan be used to implement support.\u003c/p\u003e\n\u003ch2 id="widget-program"\u003eWidget Program\u003c/h2\u003e\n\u003cp\u003eThis part is served by the mCaptcha backend. It fetches PoW config from\nthe backend, generates proof and submits it for verification. If\nverification is successful, it sends a message containing the\nverification proof token to the parent window, assuming it\u0026rsquo;s loaded as\nan \u003ccode\u003eiframe\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSource code:\n\u003ca href="https://github.com/mCaptcha/mCaptcha/tree/master/templates/widget"\u003e\u003ccode\u003emCaptcha/mCaptcha/templates/widget\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWebAssembly library which generates Proofs of Work for mCaptcha systems.\u003c/p\u003e\n\u003ch2 id="proof-of-workpow-library"\u003eProof-of-Work(PoW) library\u003c/h2\u003e\n\u003cp\u003eWebAssembly bindings(\u003ca href="https://github.com/mCaptcha/pow_wasm"\u003e\u003ccode\u003emCaptcha/pow_wasm\u003c/code\u003e\u003c/a\u003e) are available for the main rust library(\u003ca href="https://github.com/mCaptcha/pow_sha256"\u003e\u003ccode\u003emCaptcha/pow_sha256\u003c/code\u003e\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eFor browsers without support WebAssembly, a\npolyfill(\u003ca href="https://github.com/mCaptcha/pow_sha256-polyfill"\u003e\u003ccode\u003epow_sha256-polyfill\u003c/code\u003e\u003c/a\u003e)\nis available.\u003c/p\u003e\n'},{id:13,href:"/docs/api/mcaptcha-system/",title:"mCaptcha System Library",description:"API documenttion for the core Library used in mCaptcha",content:'\u003cp\u003eDocumentation for the library used in mCaptcha core.\u003c/p\u003e\n\u003ch2 id="versions"\u003eVersions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href="https://mcaptcha.github.io/mCaptcha/m_captcha/index.html"\u003emaster-branch\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.3/m_captcha/index.html"\u003e0.1.3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.2/m_captcha/index.html"\u003e0.1.2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.1/m_captcha/index.html"\u003e0.1.1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/m_captcha/0.1.0/m_captcha/index.html"\u003e0.1.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n'},{id:14,href:"/docs/api/pow-sha256/",title:"pow_sha256",description:"API documenttion for PoW Library used in mCaptcha",content:'\u003cp\u003eRust crate which generates SHA256 Proofs of Work on serializable datatypes.\u003c/p\u003e\n\u003cp\u003eThis is a fork of the \u003ca href="https://github.com/bddap/pow"\u003e\u003ccode\u003epow\u003c/code\u003e library\u003c/a\u003e by\n\u003ca href="https://github.com/robkorn/pow_sha256"\u003e@robkorn\u003c/a\u003e) with some new\nadditions. Primary of these being:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePoW datatype now offers a constructor\u003c/li\u003e\n\u003cli\u003eSalt is no longer hard coded into the library, users can provide\nunique salts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther small changes have also been included of various importance but\nmostly just stylistic/ease of use improvements.\u003c/p\u003e\n\u003ch2 id="versions"\u003eVersions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href="https://mcaptcha.github.io/pow_sha256/pow_sha256/index.html"\u003emaster-branch\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/pow_sha256/0.2.1/pow_sha256/index.html"\u003e0.2.1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/pow_sha256/0.2.0/pow_sha256/index.html"\u003e0.2.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href="/api-docs/pow_sha256/0.1.0/pow_sha256/index.html"\u003e0.1.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id="changelog"\u003eChangelog\u003c/h2\u003e\n\u003cp\u003eChangelog is available at the project\u0026rsquo;s\n\u003ca href="https://github.com/mCaptcha/pow_sha256/blob/master/CHANGELOG.md"\u003erepository\u003c/a\u003e\u003c/p\u003e\n'},{id:15,href:"/docs/help/faq/",title:"FAQ",description:"Answers to frequently asked questions.",content:"\u003cp\u003eComing soon\u003c/p\u003e\n"},{id:16,href:"/docs/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:""},{id:17,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:18,href:"/docs/introduction/",title:"Introduction",description:"Introduction to mCaptcha.",content:""},{id:19,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:20,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:21,href:"/docs/self-hosted/",title:"Self-Hosted",description:"Instructions to self-host mCaptcha",content:""}];b.add(c),userinput.addEventListener('input',e,!0),suggestions.addEventListener('click',f,!0);function e(){var g=this.value,e=b.search(g,5),f=suggestions.childNodes,h=0,i=e.length,c;for(suggestions.classList.remove('d-none'),e.forEach(function(b){c=document.createElement('div'),c.innerHTML='<a href><span></span><span></span></a>',a=c.querySelector('a'),t=c.querySelector('span:first-child'),d=c.querySelector('span:nth-child(2)'),a.href=b.href,t.textContent=b.title,d.textContent=b.description,suggestions.appendChild(c)});f.length>i;)suggestions.removeChild(f[h])}function f(){while(suggestions.lastChild)suggestions.removeChild(suggestions.lastChild);return!1}})()
\ No newline at end of file
diff --git a/privacy-policy/index.html b/privacy-policy/index.html
index 8f62607..e40ae39 100644
--- a/privacy-policy/index.html
+++ b/privacy-policy/index.html
@@ -6,4 +6,4 @@ logs aren&rsquo;t shared with third-parties.</p><h2 id=website-visitors>Website
 debugging purposes. We don&rsquo;t share this information with anyone nor do
 we run analytics on it.</p><p>The following information is collected:</p><ul><li><strong>Page URL</strong>. the page URL of each page view on this website. For
 example: <em>https://mcaptcha.org/contact</em></li><li><strong>Browser</strong>. We use this to reproduce browser-specific bugs people
-see. This is derived from the User-Agent HTTP header. For example: <em>Chrome</em>.</li></ul><h2 id=contact-us>Contact us<a href=#contact-us class=anchor aria-hidden=true>#</a></h2><p><a href=/contact/>Contact us</a> if you have any questions.</p><p>Effective Date: <em>20th May, 2021</em></p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/privacy-policy/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+see. This is derived from the User-Agent HTTP header. For example: <em>Chrome</em>.</li></ul><h2 id=contact-us>Contact us<a href=#contact-us class=anchor aria-hidden=true>#</a></h2><p><a href=/contact/>Contact us</a> if you have any questions.</p><p>Effective Date: <em>20th May, 2021</em></p><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/privacy-policy/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/security/index.html b/security/index.html
index c814065..b039b09 100644
--- a/security/index.html
+++ b/security/index.html
@@ -211,4 +211,4 @@ NXxBvA5ABkcHzULubZWLB3QoKDP5DgEXB4cA7kMDryFPnN2shSdBsWt69g1E3gVo
 zKdOEDuIPIv4f7HhhCDCylGwfwqar5XJwnHQrBXLpwlTm4neDsnEOvOzyd8=
 =gpUQ
 -----END PGP PUBLIC KEY BLOCK-----
-</code></pre><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/security/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+</code></pre><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/security/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
diff --git a/thanks/index.html b/thanks/index.html
index 10052df..505e546 100644
--- a/thanks/index.html
+++ b/thanks/index.html
@@ -6,4 +6,4 @@ grateful for all maintainers and contributors for their time and effort
 in making them!</p><h2 id=creative-commons-licensed-artwork>Creative Commons licensed artwork<a href=#creative-commons-licensed-artwork class=anchor aria-hidden=true>#</a></h2><p>mCaptcha shied logo is derived from <a href=https://unsplash.com/photos/RovCBKMfK_k>this
 photo</a> captured by <a href=https://unsplash.com/@pawel_czerwinski>Paweł
 Czerwiński</a>. You can check out
-their work at:</p><ul><li><a href=https://unsplash.com/@pawel_czerwinski>Unsplash</a></li><li><a href=www.instagram.com/pmcze>Instagram</a></li></ul><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/thanks/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.f7b2bc5d40e87daf51f924d66d41bf9843edb996ad332f1c49ccf56dc2598e150bd072c15789611fad700a134762b6e5b9907eb51a6e0d722adfb0dace355ad5.js integrity="sha512-97K8XUDofa9R+STWbUG/mEPtuZatMy8cScz1bcJZjhUL0HLBV4lhH61wChNHYrbluZB+tRpuDXIq37DazjVa1Q==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file
+their work at:</p><ul><li><a href=https://unsplash.com/@pawel_czerwinski>Unsplash</a></li><li><a href=www.instagram.com/pmcze>Instagram</a></li></ul><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/thanks/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.2b71c88c2dee4429b10c33507054f08679a72c3f5d3beaaf42c73f800e38ca587548ad9ba912483a07de4ccf08bcfc7e0f2641f6dda0242274879f2e3ff12034.js integrity="sha512-K3HIjC3uRCmxDDNQcFTwhnmnLD9dO+qvQsc/gA44ylh1SK2bqRJIOgfeTM8IvPx+DyZB9t2gJCJ0h58uP/EgNA==" crossorigin=anonymous defer></script></body></html>
\ No newline at end of file