add pubkeys + captive portal check service

This commit is contained in:
toufic ar 2026-01-26 03:02:33 +02:00
parent 54fc6e5689
commit 25c43355d0
Signed by: toufic ar
SSH key fingerprint: SHA256:/NaO5I1nG3gYKzrzSiTYIdRyaIYxDWfr1U+d+yfJ/4k
2 changed files with 153 additions and 24 deletions

View file

@ -106,12 +106,20 @@
registration is restricted, but all project repositories are registration is restricted, but all project repositories are
accessible and available under free licenses.</p accessible and available under free licenses.</p
> >
<div class="sd-grid-actions-row">
<a <a
class="sd-grid-card-action" class="sd-grid-card-action"
href="https://git.toufy.me" href="https://git.toufy.me"
target="_blank" target="_blank"
>check<i class="fa-solid fa-arrow-up-right-from-square"></i >check<i class="fa-solid fa-arrow-up-right-from-square"></i
></a> ></a>
<a
class="sd-grid-card-action"
href="https://git.toufy.me/toufy/adonis/src/branch/main/config/devops"
target="_blank"
>source<i class="fa-solid fa-arrow-up-right-from-square"></i
></a>
</div>
</div> </div>
<div class="sd-grid-card"> <div class="sd-grid-card">
<h3 class="sd-grid-card-title" <h3 class="sd-grid-card-title"
@ -122,14 +130,84 @@
>my public <a href="https://searxng.org">searxng</a> instance. no >my public <a href="https://searxng.org">searxng</a> instance. no
usage metrics. most probably will add TOR proxy in the future.</p usage metrics. most probably will add TOR proxy in the future.</p
> >
<div class="sd-grid-actions-row">
<a <a
class="sd-grid-card-action" class="sd-grid-card-action"
href="https://search.toufy.me" href="https://search.toufy.me"
target="_blank" target="_blank"
>check<i class="fa-solid fa-arrow-up-right-from-square"></i >check<i class="fa-solid fa-arrow-up-right-from-square"></i
></a> ></a>
<a
class="sd-grid-card-action"
href="https://git.toufy.me/toufy/adonis/src/branch/main/config/search"
target="_blank"
>source<i class="fa-solid fa-arrow-up-right-from-square"></i
></a>
</div> </div>
</div> </div>
<div class="sd-grid-card">
<h3 class="sd-grid-card-title"
><i class="fa-solid fa-wifi"></i><span>captive portal</span></h3
>
<p class="sd-grid-card-description"
>a telemetry-free
<a
href="https://developer.android.com/about/versions/11/features/captive-portal#detection"
target="_blank"
>captive portal check</a
>
as an alternative to android's default
<code>connectivitycheck.gstatic.com</code>
by google</p
>
<div class="sd-grid-actions-row">
<a
class="sd-grid-card-action"
href="https://cpcheck.toufy.me"
target="_blank"
>check<i class="fa-solid fa-arrow-up-right-from-square"></i
></a>
<a
class="sd-grid-card-action"
href="https://git.toufy.me/toufy/adonis/src/branch/main/config/http/captiveportal.nix"
target="_blank"
>source<i class="fa-solid fa-arrow-up-right-from-square"></i
></a>
</div>
</div>
</div>
</div>
<hr />
<div id="pubkeys">
<h1>pubkeys</h1>
<h3
>SSH
<button onclick="navigator.clipboard.writeText(sshkey.textContent)"
><i class="fa-regular fa-copy"></i></button
></h3>
<pre><code id="sshkey"
>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN8CKkq7m/FPTqjAO3yGWhH7y+9flDjyNC9hQFenvbKs toufy</code
></pre>
<h3
>GPG
<button onclick="navigator.clipboard.writeText(gpgkey.textContent)"
><i class="fa-regular fa-copy"></i></button
></h3>
<pre><code id="gpgkey">-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaXaizxYJKwYBBAHaRw8BAQdARrftn56656s3XyW15b3DBMTcrvCvcRjOs53P
tVsrsGC0EXRvdWZpYyBhciAodG91ZnkpiJAEExYKADgWIQRKDkdYNWjksRtcJVm7
ozAX4p50+wUCaXaizwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRC7ozAX
4p50+2gTAP9pFdyrNoOsOkdkcaBzIs9CZfkf38ZQsdi8vZsdXtquSAEAyaqVsXCN
tpMn3/ax/034uY0wAVa9WluqWcvGK+jb7we4OARpdqLPEgorBgEEAZdVAQUBAQdA
YQqEaD8/QXfS9rU471nhxbB1bHANd/NAG8TG1mJeLFkDAQgHiHgEGBYKACAWIQRK
DkdYNWjksRtcJVm7ozAX4p50+wUCaXaizwIbDAAKCRC7ozAX4p50+3PEAP0abVGS
7KLZCqJRjsRfhNP0IrveTuKrW5hckVu4GNgkCQEAtXHhO8Kj6l41m6v36AWddSUz
iv6s3F2Wfm3pjizriQc=
=w8/B
-----END PGP PUBLIC KEY BLOCK-----</code></pre>
</div> </div>
<hr /> <hr />
<div id="credits"> <div id="credits">

View file

@ -4,12 +4,14 @@
--background: #534b4f; --background: #534b4f;
--background-alt: #645452; --background-alt: #645452;
--foreground: #faf0e6; --foreground: #faf0e6;
--support: #444444;
@media (prefers-color-scheme: light) { @media (prefers-color-scheme: light) {
--primary: #ff91a4; --primary: #ff91a4;
--secondary: #dc143c; --secondary: #dc143c;
--foreground: #534b4f; --foreground: #534b4f;
--background: #faf0e6; --background: #faf0e6;
--background-alt: #f0ead6; --background-alt: #f0ead6;
--support: #dddddd;
} }
} }
@ -81,6 +83,22 @@ html {
text-decoration: none; text-decoration: none;
} }
} }
pre,
code {
overflow-x: auto;
max-width: 100%;
font-size: 14px;
color: var(--secondary);
background-color: var(--support);
padding: 0 4px;
border-radius: 4px;
display: inline-block;
-webkit-overflow-scrolling: touch;
}
hr {
margin: 20px 0;
}
body { body {
main { main {
margin: 5% 15%; margin: 5% 15%;
@ -143,7 +161,7 @@ html {
margin: 5px; margin: 5px;
border-radius: 5px; border-radius: 5px;
border: 1px solid var(--primary); border: 1px solid var(--primary);
width: 300px; max-width: 300px;
.sd-grid-card-title { .sd-grid-card-title {
text-align: center; text-align: center;
display: flex; display: flex;
@ -161,17 +179,23 @@ html {
padding: 5px; padding: 5px;
text-align: left; text-align: left;
} }
.sd-grid-card-action { .sd-grid-actions-row {
display: flex;
flex-direction: row;
width: 100%;
padding: 5px; padding: 5px;
width: 90%; .sd-grid-card-action {
border: 4px dotted var(--secondary); width: 100%;
border: 4px dotted var(--primary);
border-radius: 4px; border-radius: 4px;
font-size: 22px; margin: 4px;
font-size: 20px;
font-weight: bolder; font-weight: bolder;
text-decoration: none; text-decoration: none;
color: var(--secondary); color: var(--primary);
&:hover, &:hover,
&:active { &:active {
border: 4px solid var(--secondary);
background-color: var(--secondary); background-color: var(--secondary);
color: var(--primary); color: var(--primary);
} }
@ -179,6 +203,33 @@ html {
} }
} }
} }
}
#pubkeys {
h3 {
display: flex;
flex-direction: row;
text-align: center;
align-items: center;
margin: 10px 0;
button {
margin: 0 10px;
padding: 2px;
background-color: transparent;
border: none;
color: var(--primary);
font-size: 18px;
border-radius: 4px;
&:hover {
color: var(--secondary);
cursor: pointer;
}
&:active {
color: var(--primary);
background-color: var(--secondary);
}
}
}
}
#credits { #credits {
h1 { h1 {
padding: 5px; padding: 5px;