diff options
| -rw-r--r-- | fonts/KawkabMono-Bold.woff2 | bin | 0 -> 102704 bytes | |||
| -rw-r--r-- | fonts/KawkabMono-Regular.woff2 | bin | 0 -> 106884 bytes | |||
| -rw-r--r-- | irc.gumx.cc/index.html | 52 | ||||
| -rw-r--r-- | mail.gumx.cc/index.html | 57 | ||||
| -rw-r--r-- | mail.gumx.cc/list/index.html | 56 | ||||
| -rw-r--r-- | pgp.gumx.cc/index.html | 52 | ||||
| -rw-r--r-- | vpn.gumx.cc/index.html | 65 | ||||
| -rw-r--r-- | wk.fo/index.html | 66 |
8 files changed, 348 insertions, 0 deletions
diff --git a/fonts/KawkabMono-Bold.woff2 b/fonts/KawkabMono-Bold.woff2 Binary files differnew file mode 100644 index 0000000..f8f61f7 --- /dev/null +++ b/fonts/KawkabMono-Bold.woff2 diff --git a/fonts/KawkabMono-Regular.woff2 b/fonts/KawkabMono-Regular.woff2 Binary files differnew file mode 100644 index 0000000..92d4d15 --- /dev/null +++ b/fonts/KawkabMono-Regular.woff2 diff --git a/irc.gumx.cc/index.html b/irc.gumx.cc/index.html new file mode 100644 index 0000000..a18a309 --- /dev/null +++ b/irc.gumx.cc/index.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<title>irc.gumx.cc</title> +<style> +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Regular.woff2); font-weight: normal; } +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Bold.woff2); font-weight: bold; } +* { unicode-bidi: plaintext; box-sizing: border-box; } +html { color: black; background-color: white; } +body { font-family: "Kawkab Mono"; font-size: 16px; line-height: 1.4; margin: 0; padding: 4rem 0; min-height: 100%; overflow-wrap: break-word; } +main, header, footer { max-width: 800px; margin-inline: auto; padding: 0 2rem; } +h1, header, footer { text-align: center; } +main { text-align: justify; } +p, h2, h3, h4 { margin: 1em 0 0 0; } +table { margin: auto; border-collapse: collapse; } +th, td { border: 1px solid; padding: 0.3em 0.8em; } +code { font-size: 85%; } +header { margin-bottom: 1em; } +footer { margin-top: 3em; } +a { color: inherit; } +@media (max-width: 600px) { body { font-size: 0.9em; } h1 { font-size: 1.8em; } } +@media (max-width: 400px) { body { font-size: 0.8em; } h1 { font-size: 1.6em; } } +@media (prefers-color-scheme: dark) { html { filter: invert(1); } img { filter: invert(1); } } +</style> +</head> +<body> +<header> +<h1><a href="https://gumx.cc">gumx</a> / irc</h1> +</header> +<main> +<p>Personal IRC server running <a href="https://ngircd.barton.de/">ngircd</a>, fronted by a <a href="https://soju.im/">Soju</a> bouncer. Access is by invitation.</p> +<h2>connect</h2> +<table> +<tr><th>server</th><td>wk.fo:6697 (TLS)</td></tr> +</table> +<h2>request access</h2> +<p>Send a message to <a href="mailto:hi@gumx.cc">hi@gumx.cc</a> with your nick and preferred IRC client.</p> +</main> +<footer> +<hr> +<a href="https://gumx.cc">gumx.cc</a> / +<a href="https://git.gumx.cc">git</a> / +<a href="https://mail.gumx.cc">mail</a> / +<a href="https://irc.gumx.cc">irc</a> / +<a href="https://vpn.gumx.cc">vpn</a> / +<a href="https://pgp.gumx.cc">pgp</a> / +<a href="https://wk.fo">wk.fo</a> +</footer> +</body> +</html> diff --git a/mail.gumx.cc/index.html b/mail.gumx.cc/index.html new file mode 100644 index 0000000..9e5597c --- /dev/null +++ b/mail.gumx.cc/index.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<title>mail.gumx.cc</title> +<style> +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Regular.woff2); font-weight: normal; } +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Bold.woff2); font-weight: bold; } +* { unicode-bidi: plaintext; box-sizing: border-box; } +html { color: black; background-color: white; } +body { font-family: "Kawkab Mono"; font-size: 16px; line-height: 1.4; margin: 0; padding: 4rem 0; min-height: 100%; overflow-wrap: break-word; } +main, header, footer { max-width: 800px; margin-inline: auto; padding: 0 2rem; } +h1, header, footer { text-align: center; } +main { text-align: justify; } +p, h2, h3, h4 { margin: 1em 0 0 0; } +table { margin: auto; border-collapse: collapse; } +th, td { border: 1px solid; padding: 0.3em 0.8em; } +code { font-size: 85%; } +header { margin-bottom: 1em; } +footer { margin-top: 3em; } +a { color: inherit; } +@media (max-width: 600px) { body { font-size: 0.9em; } h1 { font-size: 1.8em; } } +@media (max-width: 400px) { body { font-size: 0.8em; } h1 { font-size: 1.6em; } } +@media (prefers-color-scheme: dark) { html { filter: invert(1); } img { filter: invert(1); } } +</style> +</head> +<body> +<header> +<h1><a href="https://gumx.cc">gumx</a> / mail</h1> +</header> +<main> +<p>Self-hosted mail running <a href="http://www.postfix.org/">Postfix</a> and <a href="https://www.dovecot.org/">Dovecot</a>.</p> +<h2>contact</h2> +<p><a href="mailto:hi@gumx.cc">hi@gumx.cc</a></p> +<h2>IMAP / SMTP</h2> +<table> +<tr><th>IMAP</th><td>mail.gumx.cc:993 (TLS)</td></tr> +<tr><th>SMTP</th><td>mail.gumx.cc:587 (STARTTLS)</td></tr> +</table> +<h2>CalDAV / CardDAV</h2> +<p>Available at <code><a href="https://mail.gumx.cc/dav/">/dav/</a></code> via <a href="https://www.xandikos.org/">Xandikos</a>. Credentials on request.</p> +<h2>mailing list</h2> +<p>Site updates and discussion: <a href="/list">gumx.cc mailing list</a>.</p> +</main> +<footer> +<hr> +<a href="https://gumx.cc">gumx.cc</a> / +<a href="https://git.gumx.cc">git</a> / +<a href="https://mail.gumx.cc">mail</a> / +<a href="https://irc.gumx.cc">irc</a> / +<a href="https://vpn.gumx.cc">vpn</a> / +<a href="https://pgp.gumx.cc">pgp</a> / +<a href="https://wk.fo">wk.fo</a> +</footer> +</body> +</html> diff --git a/mail.gumx.cc/list/index.html b/mail.gumx.cc/list/index.html new file mode 100644 index 0000000..4bec0e1 --- /dev/null +++ b/mail.gumx.cc/list/index.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<title>mail.gumx.cc / list</title> +<style> +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Regular.woff2); font-weight: normal; } +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Bold.woff2); font-weight: bold; } +* { unicode-bidi: plaintext; box-sizing: border-box; } +html { color: black; background-color: white; } +body { font-family: "Kawkab Mono"; font-size: 16px; line-height: 1.4; margin: 0; padding: 4rem 0; min-height: 100%; overflow-wrap: break-word; } +main, header, footer { max-width: 800px; margin-inline: auto; padding: 0 2rem; } +h1, header, footer { text-align: center; } +main { text-align: justify; } +p, h2, h3, h4 { margin: 1em 0 0 0; } +pre { margin: 1em 0; } +pre code { border: thin solid; padding: 1em; display: block; text-align: start; overflow-x: scroll; } +code { font-size: 85%; } +header { margin-bottom: 1em; } +footer { margin-top: 3em; } +a { color: inherit; } +@media (max-width: 600px) { body { font-size: 0.9em; } h1 { font-size: 1.8em; } } +@media (max-width: 400px) { body { font-size: 0.8em; } h1 { font-size: 1.6em; } } +@media (prefers-color-scheme: dark) { html { filter: invert(1); } img { filter: invert(1); } } +</style> +</head> +<body> +<header> +<h1><a href="https://gumx.cc">gumx</a> / list</h1> +</header> +<main> +<p>Site updates and general discussion. Low volume.</p> +<h2>subscribe</h2> +<p>Send an empty email to:</p> +<pre><code>list+subscribe@gumx.cc</code></pre> +<h2>unsubscribe</h2> +<pre><code>list+unsubscribe@gumx.cc</code></pre> +<h2>post</h2> +<p>Subscribers only:</p> +<pre><code>list@gumx.cc</code></pre> +<h2>archive</h2> +<p>Browse past messages at <a href="/list/archive/">/list/archive/</a>.</p> +</main> +<footer> +<hr> +<a href="https://gumx.cc">gumx.cc</a> / +<a href="https://git.gumx.cc">git</a> / +<a href="https://mail.gumx.cc">mail</a> / +<a href="https://irc.gumx.cc">irc</a> / +<a href="https://vpn.gumx.cc">vpn</a> / +<a href="https://pgp.gumx.cc">pgp</a> / +<a href="https://wk.fo">wk.fo</a> +</footer> +</body> +</html> diff --git a/pgp.gumx.cc/index.html b/pgp.gumx.cc/index.html new file mode 100644 index 0000000..7c3db3b --- /dev/null +++ b/pgp.gumx.cc/index.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<title>pgp.gumx.cc</title> +<style> +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Regular.woff2); font-weight: normal; } +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Bold.woff2); font-weight: bold; } +* { unicode-bidi: plaintext; box-sizing: border-box; } +html { color: black; background-color: white; } +body { font-family: "Kawkab Mono"; font-size: 16px; line-height: 1.4; margin: 0; padding: 4rem 0; min-height: 100%; overflow-wrap: break-word; } +main, header, footer { max-width: 800px; margin-inline: auto; padding: 0 2rem; } +h1, header, footer { text-align: center; } +main { text-align: justify; } +p, h2, h3, h4 { margin: 1em 0 0 0; } +pre { margin: 1em 0; } +pre code { border: thin solid; padding: 1em; display: block; text-align: start; overflow-x: scroll; } +code { font-size: 85%; } +header { margin-bottom: 1em; } +footer { margin-top: 3em; } +a { color: inherit; } +@media (max-width: 600px) { body { font-size: 0.9em; } h1 { font-size: 1.8em; } } +@media (max-width: 400px) { body { font-size: 0.8em; } h1 { font-size: 1.6em; } } +@media (prefers-color-scheme: dark) { html { filter: invert(1); } img { filter: invert(1); } } +</style> +</head> +<body> +<header> +<h1><a href="https://gumx.cc">gumx</a> / pgp</h1> +</header> +<main> +<p>Curated HKP keyserver. Keys are added after in-person verification only.</p> +<h2>lookup</h2> +<pre><code>gpg --keyserver hkps://pgp.gumx.cc --recv-keys <fingerprint></code></pre> +<p>Or via HTTPS:</p> +<pre><code>curl "https://pgp.gumx.cc/pks/lookup?op=get&search=0x<fingerprint>"</code></pre> +<h2>submit</h2> +<p>Keys are not accepted without prior arrangement. Contact <a href="mailto:hi@gumx.cc">hi@gumx.cc</a>.</p> +</main> +<footer> +<hr> +<a href="https://gumx.cc">gumx.cc</a> / +<a href="https://git.gumx.cc">git</a> / +<a href="https://mail.gumx.cc">mail</a> / +<a href="https://irc.gumx.cc">irc</a> / +<a href="https://vpn.gumx.cc">vpn</a> / +<a href="https://pgp.gumx.cc">pgp</a> / +<a href="https://wk.fo">wk.fo</a> +</footer> +</body> +</html> diff --git a/vpn.gumx.cc/index.html b/vpn.gumx.cc/index.html new file mode 100644 index 0000000..c2a3ce3 --- /dev/null +++ b/vpn.gumx.cc/index.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<title>vpn.gumx.cc</title> +<style> +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Regular.woff2); font-weight: normal; } +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Bold.woff2); font-weight: bold; } +* { unicode-bidi: plaintext; box-sizing: border-box; } +html { color: black; background-color: white; } +body { font-family: "Kawkab Mono"; font-size: 16px; line-height: 1.4; margin: 0; padding: 4rem 0; min-height: 100%; overflow-wrap: break-word; } +main, header, footer { max-width: 800px; margin-inline: auto; padding: 0 2rem; } +h1, header, footer { text-align: center; } +main { text-align: justify; } +p, h2, h3, h4 { margin: 1em 0 0 0; } +ol { margin: 0.5em 0 0 0; } +pre { margin: 1em 0; } +pre code { border: thin solid; padding: 1em; display: block; text-align: start; overflow-x: scroll; } +code { font-size: 85%; } +header { margin-bottom: 1em; } +footer { margin-top: 3em; } +a { color: inherit; } +@media (max-width: 600px) { body { font-size: 0.9em; } h1 { font-size: 1.8em; } } +@media (max-width: 400px) { body { font-size: 0.8em; } h1 { font-size: 1.6em; } } +@media (prefers-color-scheme: dark) { html { filter: invert(1); } img { filter: invert(1); } } +</style> +</head> +<body> +<header> +<h1><a href="https://gumx.cc">gumx</a> / vpn</h1> +</header> +<main> +<p><a href="https://www.wireguard.com/">WireGuard</a> VPN. Endpoint: <code>wk.fo:51820</code>. Access is by invitation.</p> +<h2>setup</h2> +<ol> +<li>Generate a keypair: <code>wg genkey | tee private.key | wg pubkey > public.key</code></li> +<li>Send your public key to <a href="mailto:hi@gumx.cc">hi@gumx.cc</a></li> +<li>Receive your assigned IP (<code>10.0.0.x/32</code>) and the server public key</li> +<li>Create <code>/etc/wireguard/wg0.conf</code> and bring it up with <code>wg-quick up wg0</code></li> +</ol> +<h2>example client config</h2> +<pre><code>[Interface] +PrivateKey = <your private key> +Address = 10.0.0.x/32 +DNS = 1.1.1.1 + +[Peer] +PublicKey = <server public key> +Endpoint = wk.fo:51820 +AllowedIPs = 0.0.0.0/0 +PersistentKeepalive = 25</code></pre> +</main> +<footer> +<hr> +<a href="https://gumx.cc">gumx.cc</a> / +<a href="https://git.gumx.cc">git</a> / +<a href="https://mail.gumx.cc">mail</a> / +<a href="https://irc.gumx.cc">irc</a> / +<a href="https://vpn.gumx.cc">vpn</a> / +<a href="https://pgp.gumx.cc">pgp</a> / +<a href="https://wk.fo">wk.fo</a> +</footer> +</body> +</html> diff --git a/wk.fo/index.html b/wk.fo/index.html new file mode 100644 index 0000000..c79d706 --- /dev/null +++ b/wk.fo/index.html @@ -0,0 +1,66 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<title>wk.fo</title> +<style> +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Regular.woff2); font-weight: normal; } +@font-face { font-family: "Kawkab Mono"; src: url(/fonts/KawkabMono-Bold.woff2); font-weight: bold; } +* { unicode-bidi: plaintext; box-sizing: border-box; } +html { color: black; background-color: white; } +body { font-family: "Kawkab Mono"; font-size: 16px; line-height: 1.4; margin: 0; padding: 4rem 0; min-height: 100%; overflow-wrap: break-word; } +main, header, footer { max-width: 800px; margin-inline: auto; padding: 0 2rem; } +h1, header, footer { text-align: center; } +main { text-align: justify; } +p, h2, h3, h4 { margin: 1em 0 0 0; } +pre { margin: 1em 0; } +pre code { border: thin solid; padding: 1em; display: block; text-align: start; overflow-x: scroll; } +table { margin: auto; border-collapse: collapse; } +th, td { border: 1px solid; padding: 0.3em 0.8em; } +code { font-size: 85%; } +header { margin-bottom: 1em; } +footer { margin-top: 3em; } +a { color: inherit; } +@media (max-width: 600px) { body { font-size: 0.9em; } h1 { font-size: 1.8em; } } +@media (max-width: 400px) { body { font-size: 0.8em; } h1 { font-size: 1.6em; } } +@media (prefers-color-scheme: dark) { html { filter: invert(1); } img { filter: invert(1); } } +</style> +</head> +<body> +<header> +<h1>wk.fo</h1> +</header> +<main> +<p>File sharing, IRC bouncer, and VPN for friends. All services require an invitation.</p> +<h2>file sharing</h2> +<p>Upload via HTTPS (token required):</p> +<pre><code>curl -F "file=@photo.jpg" -H "Authorization: YOUR_TOKEN" https://wk.fo/</code></pre> +<p>Files expire after 24 hours by default (max 48h with <code>expires</code> param). Max 256 MB.</p> +<h2>irc</h2> +<table> +<tr><th>server</th><td>wk.fo:6697 (TLS)</td></tr> +<tr><th>type</th><td>Soju bouncer</td></tr> +</table> +<p>Use the credentials provided to you on invite. Works with any IRC client that supports SASL PLAIN.</p> +<h2>vpn</h2> +<table> +<tr><th>server</th><td>wk.fo:51820 (UDP)</td></tr> +<tr><th>type</th><td>WireGuard</td></tr> +</table> +<p>A config file is provided to you on invite. Import it into any WireGuard client.</p> +<h2>access</h2> +<p>Contact <a href="mailto:hi@gumx.cc">hi@gumx.cc</a>.</p> +</main> +<footer> +<hr> +<a href="https://gumx.cc">gumx.cc</a> / +<a href="https://git.gumx.cc">git</a> / +<a href="https://mail.gumx.cc">mail</a> / +<a href="https://irc.gumx.cc">irc</a> / +<a href="https://vpn.gumx.cc">vpn</a> / +<a href="https://pgp.gumx.cc">pgp</a> / +<a href="https://wk.fo">wk.fo</a> +</footer> +</body> +</html> |
