1<!DOCTYPE html> 2<html lang="en" class="h-full plausible"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta name="description" content="Plausible is a lightweight and open-source web analytics tool. Your website data is 100% yours and the privacy of your visitors is respected."> 8 9 <meta name="robots" content="noindex, nofollow"> 10 <meta name="x-api-version" content="1"> 11 12 <link rel="apple-touch-icon" sizes="180x180" href="/images/ee/apple-touch-icon-4287d8b1ef65809ad73b0e2e0ebd87ea.png?vsn=d"> 13<link rel="icon" sizes="32x32" href="/images/ee/favicon-c8e06fe032709e183d9b362cc1f562be.ico?vsn=d"> 14<link rel="icon" type="image/svg+xml" href="/images/ee/favicon-ce0749c28b7e4a344ee53c9302689590.svg?vsn=d"> 15 16 <title> 17 Plausible · Simple, privacy-friendly alternative to Google Analytics 18 </title> 19 <link rel="stylesheet" href="/css/app-9a9b87e2c1c286c9b819fb9ac1f09109.css?vsn=d"> 20
20<script blocking="rendering"> 21 (function(){ 22 var themePref = 'system'; 23 function reapplyTheme() { 24 var darkMediaPref = window.matchMedia('(prefers-color-scheme: dark)').matches; 25 var htmlRef = document.querySelector('html'); 26 27 var isDark = themePref === 'dark' || (themePref === 'system' && darkMediaPref); 28 29 if (isDark) { 30 htmlRef.classList.add('dark') 31 } else { 32 htmlRef.classList.remove('dark'); 33 } 34 } 35 36 reapplyTheme(); 37 window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', reapplyTheme); 38 })() 39</script>
39 40 41
41<script id="dogfood-script" data-script-params="{"custom_properties":{"logged_in":false},"domain_to_replace":null,"location_override":null,"capture_on_localhost":false,"script_url":"https://plausible.io/js/pa-6_srOGVV9SLMWJ1ZpUAbG.js"}"> 42 var scriptParams = JSON.parse(document.currentScript.dataset.scriptParams) 43 44 window.plausible=window.plausible||function(){(window.plausible.q=window.plausible.q||[]).push(arguments)},window.plausible.init=function(i){window.plausible.o=i||{}};var script=document.createElement("script");script.type="text/javascript",script.async=!0,script.src=scriptParams.script_url;var r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(script,r); 45 46 plausible.init({ 47 captureOnLocalhost: scriptParams.capture_on_localhost, 48 customProperties: { 49 ...scriptParams.custom_properties, 50 browser_language: navigator.language || navigator.userLanguage 51 }, 52 transformRequest: function (payload) { 53 if (scriptParams.location_override) { 54 payload.u = scriptParams.location_override 55 } else if (scriptParams.domain_to_replace) { 56 payload.u = payload.u.replace(scriptParams.domain_to_replace, ':dashboard') 57 } 58 return payload 59 } 60 }) 61 </script>
61 62 63 </head> 64 <body class="h-full bg-gray-50 dark:bg-gray-950" style=""> 65 66 <div class="flex flex-col h-full"> 67 68 69 70 71 72 <main class="flex-1 flex flex-col"> 73 74 <div class="min-h-screen w-full bg-white dark:bg-gray-900"> 75 <div class="flex justify-center pt-12 sm:pt-20"> 76 <a href="/"> 77 <img src="/images/ee/logo_dark-4ce532ac105c4615d6a2e51307c8fc28.svg?vsn=d" class="w-24 sm:w-28 hidden dark:inline" alt="Plausible logo" loading="lazy"> 78<img src="/images/ee/logo_light-38aed73a70daced020b53243966ed15e.svg?vsn=d" class="w-24 sm:w-28 inline dark:hidden" alt="Plausible logo" loading="lazy"> 79 </a> 80 </div> 81 82 <div class="max-w-md mx-auto mt-10 sm:mt-16 px-4 flex flex-col gap-y-2 text-center dark:text-gray-300"> 83 <h1 class="text-lg sm:text-xl font-semibold"> 84 Sign in to your account 85 </h1> 86 87 </div> 88 89 <div class="w-full max-w-md mx-auto mt-10 pb-16 px-4 "> 90 91 <form action="/login" method="post" class="flex flex-col gap-y-6"> 92 93 <input name="_csrf_token" type="hidden" hidden value="OFMHWRsxB1M7HCweX2sSISIHNSURBAQLO1WjADHdMLFhr2XXLHYVGVvz"> 94 95 <div class="flex flex-col gap-y-2"> 96 <label for="email" class="text-sm font-semibold text-gray-800 dark:text-gray-200"> 97 Email 98 </label> 99 <div> 100 <div class=""> 101 102 <div class="relative"> 103 <input type="email" name="email" id="email" class="text-sm text-gray-900 dark:text-white dark:bg-gray-750 block pl-3.5 py-2.5 border-gray-300 dark:border-gray-800 transition-all duration-150 focus:outline-none focus:ring-3 focus:ring-indigo-500/20 dark:focus:ring-indigo-500/25 focus:border-indigo-500 rounded-md selection:bg-gray-200 dark:selection:bg-gray-700 disabled:bg-gray-100 disabled:dark:bg-gray-800 disabled:border-gray-200 disabled:dark:border-gray-800 disabled:text-gray-900/40 disabled:dark:text-white/30 disabled:cursor-not-allowed [&[readonly]]:bg-gray-100 [&[readonly]]:border-transparent [&[readonly]]:dark:border-transparent [&[readonly]]:dark:bg-gray-750 [&[readonly]]:focus:ring-0 [&[readonly]]:focus:border-transparent [&[readonly]]:dark:focus:border-transparent [&[readonly]]:cursor-default w-full" placeholder="[email protected]" autocomplete="username" autofocus="autofocus"> 104 105 </div> 106 107 108 109</div> 110 </div> 111 </div> 112 113 <div class="relative flex flex-col gap-y-2"> 114 <label for="current-password" class="text-sm font-semibold text-gray-800 dark:text-gray-200"> 115 Password 116 </label> 117 <div x-data="{ showPassword: false }"> 118 <div class=""> 119 120 <div class="relative"> 121 <input type="password" name="password" id="current-password" class="text-sm text-gray-900 dark:text-white dark:bg-gray-750 block pl-3.5 py-2.5 border-gray-300 dark:border-gray-800 transition-all duration-150 focus:outline-none focus:ring-3 focus:ring-indigo-500/20 dark:focus:ring-indigo-500/25 focus:border-indigo-500 rounded-md selection:bg-gray-200 dark:selection:bg-gray-700 disabled:bg-gray-100 disabled:dark:bg-gray-800 disabled:border-gray-200 disabled:dark:border-gray-800 disabled:text-gray-900/40 disabled:dark:text-white/30 disabled:cursor-not-allowed [&[readonly]]:bg-gray-100 [&[readonly]]:border-transparent [&[readonly]]:dark:border-transparent [&[readonly]]:dark:bg-gray-750 [&[readonly]]:focus:ring-0 [&[readonly]]:focus:border-transparent [&[readonly]]:dark:focus:border-transparent [&[readonly]]:cursor-default pr-10 w-full" autocomplete="current-password" x-bind:type="showPassword ? 'text' : 'password'"> 122 123 <button type="button" @click="showPassword = !showPassword" tabindex="-1" aria-label="Toggle password visibility" class="absolute inset-y-0 right-2 flex items-center text-gray-500 hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300 transition-colors duration-150"> 124 <span x-show="!showPassword"> 125 <svg xmlns="http://www.w3.org/2000/svg" class="size-4" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" fill="none" stroke-width="1.5"> 126 <path stroke-linecap="round" stroke-linejoin="round" d="M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"/><path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"/> 127</svg> 128 </span>
129 <span x-show="showPassword" x-cloak> 130 <svg xmlns="http://www.w3.org/2000/svg" class="size-4" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" fill="none" stroke-width="1.5"> 131 <path stroke-linecap="round" stroke-linejoin="round" d="M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88"/> 132</svg> 133 </span> 134 </button> 135 136 </div> 137 138 139 140 141 142</div> 143</div> 144 <a href="/password/request-reset" class="text-indigo-600 hover:text-indigo-700 dark:text-indigo-500 dark:hover:text-indigo-400 transition-colors duration-150 text-sm absolute top-0 right-0"> 145 146 Forgot password? 147 148</a> 149 150 </div> 151 152 <input type="hidden" name="return_to"> 153 154 <div class="flex flex-col gap-y-6"> 155 <button type="submit" class="mt-6 btn-base btn-md btn-theme-primary w-full"> 156 Sign in 157</button> 158 159 <div class="flex flex-col gap-y-2"> 160 <p class="text-sm text-center text-gray-500 dark:text-gray-400"> 161 New here? <a href="/register" class="text-indigo-600 hover:text-indigo-700 dark:text-indigo-500 dark:hover:text-indigo-400 transition-colors duration-150 "> 162 Create your account 163</a> 164 </p> 165 166 <div class="flex items-center justify-center gap-x-1 text-sm text-gray-500 dark:text-gray-400"> 167 <svg xmlns="http://www.w3.org/2000/svg" class="size-3.5" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" fill="none" stroke-width="1.5"> 168 <path stroke-linecap="round" stroke-linejoin="round" d="M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z"/> 169</svg> 170 <span> 171 Continue with 172 <a href="/sso/login?return_to=&prefer=manual" class="text-indigo-600 hover:text-indigo-700 dark:text-indigo-500 dark:hover:text-indigo-400 transition-colors duration-150 "> 173 174 SSO 175 176</a> 177 </span> 178 </div> 179 180 </div> 181 </div> 182 183</form> 184 185</div> 186 187 </div> 188 189 </main> 190 191 192 193
193<script type="text/javascript" src="/js/app-4ce51b0a1d5f65ecff208239a1a75617.js?vsn=d"> 194 </script>
194 195 196</div> 197 198 </body> 199</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.