Compare commits

..

No commits in common. "main" and "main" have entirely different histories.
main ... main

79 changed files with 890 additions and 1305 deletions

6
.gitignore vendored
View File

@ -1,6 +0,0 @@
public/
shells.toml
users.toml
static/shots/

74
coc/index.html Normal file
View File

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>code of conduct - south london</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='/main.css'>
<script src='/main.js'></script>
</head>
<body class="orange">
<div class="header">
<h1 style="white-space: pre-line">code of
conduct</h1>
</div>
<main>
<p style="text-align: center;"><a href="/">🌿 home</a> · <a href="/signup">🌱 signup</a> · <a href="/wetty">🌺 webterm</a> · <a href="/coc">🌷 code of conduct</a> · <a href="/wiki">🌻 wiki</a> · <a href="/faq">💐 faq</a> · <a href="https://tildegit.org/southlondon/">🎋 git</a> · <a href="/more">🍄 more</a> </p>
hi! south london is a public access unix system that people can use to make things & interact with others on the system via irc and email. these are a few rules that you need to keep to when doing that.
<em>(this code of conduct is <strike>stolen</strike> based on the <a href="http://citizencodeofconduct.org/">citizen code of conduct</a> and the <a href="http://tilde.town/wiki/conduct.html">tilde.town code of conduct</a> under the terms of the <a href="https://creativecommons.org/licenses/by-sa/3.0/">creative commons attribution-sharealike license,</a>)</em>
<h3>expected behaviour</h3>
the following behaviours are expected and requested of all members of our community.
<ul>
<li>participate in an authentic and active way. in doing so, you contribute to the health and longevity of this community.</li>
<li>exercise consideration and respect in your speech and actions</li>
<li>attempt collaboration before conflict.</li>
<li>refrain from demeaning, discriminatory, or harassing behavior and speech.</li>
<li>be mindful of your surroundings and of your fellow participants.</li>
<li>teach when people need help. dont do it for them.</li>
</ul>
<h3>unacceptable behavior</h3>
the following behaviors are considered harassment and are unacceptable within our community:
<ul>
<li>violence, threats of violence or violent language directed against another person.</li>
<li>sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.</li>
<li>posting or displaying sexually explicit or violent material.</li>
<li>posting or threatening to post other people's personally identifying information ("doxing").</li>
<li>personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.</li>
<li>unwelcome sexual attention. this includes sexualized comments or jokes.</li>
<li>deliberate intimidation, stalking or following.</li>
</ul>
<h3>resource use</h3>
all users must be respectful of system resources, we are quite a small tilde for the time being. anyone using excessive amounts of storage, ram or cpu will be nicely asked to stop, then sternly asked to stop, see the next section for more details.
<h3>consequences of unacceptable behavior</h3>
unacceptable behavior from any community member, including sponsors and those with decision-making authority (sudo), will not be tolerated.
<br>
<b>anyone asked to stop unacceptable behavior is expected to comply immediately.</b>
<br>
if a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from southlondon.cc without warning (meaning your account will be terminated and all user data deleted).
<h3>reporting guidelines</h3>
<p>if you are subject to or witness unacceptable behavior, or have any other concerns, please contact an admin (see info below).
<br>
additionally, help engaging with law enforcement is available.</p>
<h3>addressing grievances</h3>
<p>if you feel you have been falsely or unfairly accused of violating this code of conduct, use the contact info below to send a concise description of your grievance.</p>
<h3>scope</h3>
we expect all south london members to abide by this code of conduct while:
<ul>
<li>engaging with other members</li>
<li>publishing content on south london</li>
</ul>
<h3>contact info</h3>
<p style="white-space: pre-line">send an email to
benclark006 (at) outlook (dot) com
or send an xmpp message to
cark (at) southlondon (dot) cc
</p>
<hr class="zig">
<hr class="zag">
this document is not all encompassing, we reserve the right to throw your account into the sun for any reason at any time.
<br>
thank you and gosh bless.
</main>
</body>
</html>

View File

@ -1,16 +0,0 @@
# The URL the site will be built for
base_url = "https://southlondon.cc"
# Whether to automatically compile all Sass files in the sass directory
compile_sass = true
# Whether to build a search index to be used later on by a JavaScript library
build_search_index = true
[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
[extra]
# Put all your custom variables here

View File

@ -1,31 +0,0 @@
+++
title = "code of conduct"
description = "some rules you gotta follow"
template = "sections/generic.html"
+++
we used to have a stupidly large document here that i copied and pasted from a
template i found online but i've since used my absurdly high IQ to distill it
into just a few points:
- **be kind and respectful to your peers**
please no racism, homophobia, transphobia, sexism, etc.
think before you speak, and try to avoid conflict with other members whenever possible.
- **try not to abuse the server's resources**
we don't have a whole lot of disk space and ram to go around, so try and avoid
overloading the computer.
- **don't try to exploit security flaws in the server**
if you think you've found something insecure and want to poke at it, let
me know first!
- **don't use south london for commercial purposes**
- **put a big ass warning in front of anything sexually explicit**
- **don't post gore, violent materials, child sexual abuse materials, pirated content or anything that would
be considered illegal in the united kingdom**
if you happen to see anyone break these rules, shoot me an [email](mailto:leah@southlondon.cc)
and i'll deal with it.

View File

@ -1,5 +0,0 @@
+++
title = "sign up"
description = "get an account on south london"
template = "sections/signup.html"
+++

39
faq/index.html Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>faq - south london</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='../main.css'>
<script src='/main.js'></script>
</head>
<body class="blue">
<div class="header ">
<h1 style="white-space: pre-line">"frequently" asked
questions</h1>
</div>
<main>
<p style="text-align: center;"><a href="/">🌿 home</a> · <a href="/signup">🌱 signup</a> · <a href="/wetty">🌺 webterm</a> · <a href="/coc">🌷 code of conduct</a> · <a href="/wiki">🌻 wiki</a> · <a href="/faq">💐 faq</a> · <a href="https://tildegit.org/southlondon/">🎋 git</a> · <a href="/more">🍄 more</a> </p>
<h2>signing up</h2>
<h3>what are these ssh key whatchamacallits that you speak of?</h3>
<p>ssh keys are a method of authentication that the server can use to make sure you're actually you logging in, and not just some guy trying to get into your account. it works using magic and offers security that your bog-standard password simply can't provide. if you need to generate one, <a href="https://tilde.town/wiki/getting-started/ssh.html">check out this handy guide!</a> after you have one generated, you can use <code>cat ~/.ssh/id_rsa.pub</code> to get your public key that you can paste into the signup email. (note: if your keys are stored somewhere else you'll need to change the second part to the path where they're located, but you probably knew that already).</p>
<h3>wait, so why would i want to sign up this again?</h3>
<p>mostly becuase <br>
a) it's fun <br>
b) it's a good practice zone if you're new to *nix operating systems and need somewhere to play around with things<br>
c) we have a good community that can help you out if you're stuck.
</p>
<h2>account deletion etc.</h2>
<h3>how can i delete my account?</h3>
<p>send an email to benclark006@outlook.com using the email that you used to sign up and say you want out, and i'll delete it.</p>
<h3>can i request a copy of my data?</h3>
<p>yes! send an email to benclark006@outlook.com and i'll send you a copy of your data within 14 days.</p>
<h2>other</h2>
<h3>do you do email?</h3>
<p>nope! email is a nightmare to setup and a nightmare to deal with, so i'm keeping it off the server for the foreseeable future.</p>
<h3>how are you?</h3>
<p>depends on when you're reading this</p>
</main>
</body>
</html>

3
favicon.svg Normal file
View File

@ -0,0 +1,3 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M39.9104 11.94C39.8104 9.86 38.1304 8.18 36.0704 8.1C34.6704 8.04 33.3304 8 32.0304 8C21.9704 8 14.9904 9.94 11.1104 13.82C3.75038 21.18 4.81038 31.62 11.2904 37.62C11.3104 37.62 11.3104 37.62 11.3104 37.62C14.3304 29.18 20.3504 23.3 26.6504 20.02C26.2304 20.38 17.2504 27.18 15.6304 40.52C17.7304 41.48 20.0304 42.02 22.3504 42.02C26.4504 42.02 30.6704 40.42 34.1904 36.92C38.5704 32.52 40.4704 24.2 39.9104 11.94Z" fill="#1B6B2D"/>
</svg>

After

Width:  |  Height:  |  Size: 546 B

51
fonts.css Normal file
View File

@ -0,0 +1,51 @@
/* fredoka-one-regular - latin */
@font-face {
font-family: 'Fredoka One';
font-style: normal;
font-weight: 400;
src: url('/fonts/fredoka-one-v8-latin-regular.eot'); /* IE9 Compat Modes */
src: local(''),
url('/fonts/fredoka-one-v8-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/fonts/fredoka-one-v8-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('/fonts/fredoka-one-v8-latin-regular.woff') format('woff'), /* Modern Browsers */
url('/fonts/fredoka-one-v8-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('/fonts/fredoka-one-v8-latin-regular.svg#FredokaOne') format('svg'); /* Legacy iOS */
}
/* manrope-regular - latin */
@font-face {
font-family: 'Manrope';
font-style: normal;
font-weight: 400;
src: url('/fonts/manrope-v4-latin-regular.eot'); /* IE9 Compat Modes */
src: local(''),
url('/fonts/manrope-v4-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/fonts/manrope-v4-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('/fonts/manrope-v4-latin-regular.woff') format('woff'), /* Modern Browsers */
url('/fonts/manrope-v4-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('/fonts/manrope-v4-latin-regular.svg#Manrope') format('svg'); /* Legacy iOS */
}
/* manrope-700 - latin */
@font-face {
font-family: 'Manrope';
font-style: normal;
font-weight: 700;
src: url('/fonts/manrope-v4-latin-700.eot'); /* IE9 Compat Modes */
src: local(''),
url('/fonts/manrope-v4-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/fonts/manrope-v4-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
url('/fonts/manrope-v4-latin-700.woff') format('woff'), /* Modern Browsers */
url('/fonts/manrope-v4-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
url('/fonts/manrope-v4-latin-700.svg#Manrope') format('svg'); /* Legacy iOS */
}
@font-face {
font-family: "Comic Mono";
font-weight: 400;
src: url("/fonts/ComicMono.ttf") format("truetype");
}
@font-face {
font-family: "Comic Mono";
font-weight: 700;
src: url("/fonts/ComicMono-Bold.ttf") format("truetype");
}

BIN
fonts/ComicMono-Bold.ttf Normal file

Binary file not shown.

BIN
fonts/ComicMono.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

48
index.php Executable file
View File

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>south london</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<script src='main.js'></script>
</head>
<body>
<div class="header">
<h1 style="white-space: pre-line">south
london</h1>
</div>
<main>
<p style="text-align: center;"><a href="/">🌿 home</a> · <a href="/signup">🌱 signup</a> · <a href="/wetty">🌺 webterm</a> · <a href="/coc">🌷 code of conduct</a> · <a href="/wiki">🌻 wiki</a> · <a href="/faq">💐 faq</a> · <a href="https://tildegit.org/southlondon/">🎋 git</a> · <a href="/more">🍄 more</a> </p>
south london is a shared computer based in the uk that you can use to make cool things and practice your unix skills. if you're new to *nix, this is a good place to start!
<br>
the main perk of using this server over any other pubnix is that
<ol>
<li>we're based in the uk, so if you're in or near there you'll get much better ping</li>
<li>we have a much better name than most other pubnixes</li>
</ol>
the server is currently in beta, so don't try to put any super-sensitive files on here <i>just in case</i> there's a security hole that hasn't been patched up yet. (if you do spot one, let me know!)
<br>
<p>oh, and maybe come say hi at <code>#southlondon</code> on <a href="https://tilde.chat">tilde.chat</a></p>
<hr class="zig">
<hr class="zag">
<h3>users</h3>
this is a list of every user page on the server.
<ul><?php
$usercount = 0;
foreach (glob("/home/*/public_html", GLOB_ONLYDIR) as $user):
$user = basename(dirname($user));
$usercount++; ?>
<li><a href="/~<?=$user?>/" class="">~<?=$user?></a></li>
<?php endforeach; ?></ul>
<hr class="zig">
<hr class="zag">
enjoy and god save the queen <br>
- ben / lp0 / cark
<em>(this site's code can be found <a href="https://tildegit.org/southlondon/site">over here</a>)</em>
</main>
</body>
</html>

View File

@ -1,3 +1,4 @@
@import url(/fonts.css);
body {
background: #fff;
margin:0;
@ -27,7 +28,7 @@ body {
.header:after {
background: linear-gradient(-45deg, #fff 16px, transparent 0), linear-gradient(45deg, #fff 16px, transparent 0);
background-position: left bottom;
background-position: left-bottom;
background-repeat: repeat-x;
background-size: 32px 32px;
content: " ";
@ -118,7 +119,7 @@ code {
font-weight: 400;
}
/* new colour system (still needs work) */
/* new color system (still needs work) */
/* blue */
.blue a {

13
minetest/fonts.css Normal file
View File

@ -0,0 +1,13 @@
/* prompt-300italic - latin */
@font-face {
font-family: 'Prompt';
font-style: italic;
font-weight: 300;
src: url('./fonts/prompt-v5-latin-300italic.eot'); /* IE9 Compat Modes */
src: local(''),
url('./fonts/prompt-v5-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('./fonts/prompt-v5-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */
url('./fonts/prompt-v5-latin-300italic.woff') format('woff'), /* Modern Browsers */
url('./fonts/prompt-v5-latin-300italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('./fonts/prompt-v5-latin-300italic.svg#Prompt') format('svg'); /* Legacy iOS */
}

Binary file not shown.

View File

@ -0,0 +1 @@
<html lang=en><meta charset=utf-8><meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width"><title>Error 500 (Server Error)!!1</title><style>*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{color:#222;text-align:unset;margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px;}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}pre{white-space:pre-wrap;}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}</style><div id="af-error-container"><a href=//www.google.com><span id=logo aria-label=Google></span></a><p><b>500.</b> <ins>Thats an error.</ins><p>There was an error. Please try again later. <ins>Thats all we know.</ins></div>

Binary file not shown.

Binary file not shown.

Binary file not shown.

13
minetest/index.html Normal file
View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>minetest - south london</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
</head>
<body>
<h1>coming soon!</h1>
</body>
</html>

18
minetest/main.css Normal file
View File

@ -0,0 +1,18 @@
@import url(./fonts.css);
body{
background: rgb(1,23,1);
background: linear-gradient(150deg, rgba(1,23,1,1) 0%, rgba(1,23,19,1) 30%, rgba(12,2,35,1) 100%);
}
h1 {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-family: 'Prompt', sans-serif;
font-weight: 300;
font-style: italic;
color: #E4E4E4;
mix-blend-mode: color-dodge;
font-size: 6vw;
}

23
more/badges.css Normal file
View File

@ -0,0 +1,23 @@
.badges {
display: grid;
grid-template-columns: 50% 50%;
}
.badges a {
width: 100%;
}
.badges img{
width: 100%;
}
.offline {
filter: grayscale(1);
}
@media (max-width: 500px) {
.badges {
grid-template-columns: 100%;
}
.badges a {
width: 100%;
}
}

BIN
more/img/minetest.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

BIN
more/img/sltv.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

27
more/index.html Normal file
View File

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>more - south london</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='/main.css'>
<link rel='stylesheet' type='text/css' media='screen' href='./badges.css'>
<script src='/main.js'></script>
</head>
<body class="orange">
<main>
<p>we have a bunch of services to show off, but keeping them in the top navigation was getting a bit unwieldy, so i've shoved the less important links onto this page</p>
<div class="badges">
<a href="https://southlondon.cc/minetest">
<img src="./img/minetest.png">
</a>
<a href="https://tv.southlondon.cc">
<img src="./img/sltv.png">
</a>
</div>
<br>
<i style="color: grey;">if you have a thing you want to put here, make a pr!</i>
</main>
</body>
</html>

View File

@ -1,8 +0,0 @@
paths = [
{ name = "join", path = "/signup" },
{ name = "code of conduct", path = "/coc" },
{ name = "docs + guides", path = "https://library.southlondon.cc"},
{ name = "code", path = "https://tildegit.org/southlondon"},
{ name = "x", path = "https://x.southlondon.cc"},
]

View File

@ -1,67 +0,0 @@
@font-face {
font-family: 'Recursive';
src: url('/Recursive.woff2') format('woff2-variations');
font-weight: 300 1000;
}
:root {
--bg: white;
--fg: rgb(40, 40, 40);
--highlight: rgb(220, 220, 220);
--border: 1px solid var(--highlight);
--border2: 1px solid var(--fg);
}
html,
body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
body {
font-family:'Recursive', sans-serif;
color: var(--fg);
}
main {
max-width: 700px;
margin: auto;
}
h1.title {
font-weight: 1000;
font-variation-settings: 'MONO'1;
text-align: center;
margin-bottom: 0;
}
p.desc {
font-variation-settings: 'slnt' -15;
text-align: center;
margin-top: 0;
}
header {
border-bottom: var(--border);
padding: 0.5em 1em;
}
footer {
padding: 0.5em 1em;
}
a,
a:visited {
color: black;
text-decoration: underline var(--highlight) dashed 2px;
font-weight: 500;
}
a:hover {
background-color: var(--highlight);
}

View File

@ -1,10 +0,0 @@
#!/usr/bin/fish
# tip! use a systemd timer or cronjob on this one
for user in /home/*/public_html
set user (string replace "/home/" "" $user)
set user (string replace "/public_html" "" $user)
echo shooting $user
SITE_DIR=. wget "https://screens.southlondon.cc/https%3A%2F%2Fsouthlondon.cc%2F~$user%2F" -O $SITE_DIR/static/shots/$user.png
end

View File

@ -1,19 +0,0 @@
MIT License Copyright (c) 2020 breadpunk.club developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next
paragraph) shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,70 +0,0 @@
#!/bin/sh
# hello
# i stole most of this script from https://tildegit.org/breadpunk/scripts
# sorry case
# update-data.sh - update "dynamic" data for zola
# adding functions:
# - write a function that outputs the data you want as toml to
# /bread/site/static/.
# - add that function to the main() function below.
# - comment a LOT!
main() {
# dispatcher function.
# this will run everything else.
# change when deploying
prefix="${SITE_DIR:-/src/site}"
# jobs to run
# command | toml_output > file
update_users > $prefix/users.toml
}
# toml utilities
toml_output() {
# stupid toml outputter.
# outputs lines of stdin as a toml array to stdout.
# adds warning comment and stuff.
toml_header
toml_array data
}
toml_array() { # toml_array ARRAY_NAME
# read lines from stdin, and write a toml array called ARRAY_NAME or
# 'data' if not provided.
cat << END
${1:-data} = [
$(while read item; do printf '"%s", ' "$item"; done)
]
END
}
toml_header() {
cat << END
# THIS FILE IS AUTOGENERATED BY $0
# DO NOT HAND-EDIT
END
}
# updaters
update_users() {
# output a list of all users with ~/public_html directories, sorting by
# newest.
toml_header
# list of all users is in all
find /home/*/public_html -maxdepth 0 -printf '%T@\t%p\n'|
sort -nr |
cut -f2- |
sed 's,/home/\(.*\)/public_html,\1,' |
toml_array all
# list of logged in users is in login
users | tr ' ' '\n'| sort -u | toml_array login
}
# run the thing - DON'T EDIT HERE
main "$@"

25
signup/index.html Normal file
View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>signup - south london</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='/main.css'>
<script src='/main.js'></script>
</head>
<body class="red">
<div class="header">
<h1 style="white-space: pre-line">signup</h1>
</div>
<main>
<p style="text-align: center;"><a href="/">🌿 home</a> · <a href="/signup">🌱 signup</a> · <a href="/wetty">🌺 webterm</a> · <a href="/coc">🌷 code of conduct</a> · <a href="/wiki">🌻 wiki</a> · <a href="/faq">💐 faq</a> · <a href="https://tildegit.org/southlondon/">🎋 git</a> · <a href="/more">🍄 more</a> </p>
<p><b>shoot an email at <a href="mailto:benclark006@outlook.com">benclark006@outlook.com</a>, propel a xmpp message to <a href="xmpp:cark@southlondon.cc">cark@southlondon.cc</a>, or send forth a direct message to <a href="ircs://irc.tilde.chat:6697/lp0,isnick/">lp0</a> on tilde.chat</b></p>
<p>
you'll need to include your desired username, ssh public key (see faq for details) and a note saying you've read the code of conduct and that you're over thirteen so i don't get sued. if you prefer a specific shell over bash, you can include that on the email too.</p>
enjoy the tilde!
<br>
<i style="color: grey;">one day i'll switch away from outlook, i swear.</i>
</main>
</body>
</html>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,804 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg8860"
height="16px"
width="16px"
sodipodi:docname="server.svg"
inkscape:version="0.92.1 r">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1011"
id="namedview151"
showgrid="false"
inkscape:zoom="29.5"
inkscape:cx="8.3527527"
inkscape:cy="10.515088"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="layer3" />
<defs
id="defs8862">
<linearGradient
id="linearGradient5095">
<stop
id="stop5085"
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0" />
<stop
id="stop5089"
style="stop-color:#cdff01;stop-opacity:1"
offset="0.50099206" />
<stop
id="stop5093"
style="stop-color:#1a1a1a;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
y2="8.1721792"
x2="11.350123"
y1="0.66696572"
x1="11.350123"
gradientTransform="matrix(0.89189031,0,0,0.94046961,3.14398,5.346537)"
gradientUnits="userSpaceOnUse"
id="linearGradient10270-0"
xlink:href="#linearGradient3454-2-5-0-3-8" />
<linearGradient
id="linearGradient3454-2-5-0-3-8">
<stop
id="stop3456-4-9-38-1-9"
style="stop-color:#ffffff;stop-opacity:1"
offset="0" />
<stop
id="stop3458-39-80-3-5-6"
style="stop-color:#ffffff;stop-opacity:0.23529412"
offset="0.0097359" />
<stop
id="stop3460-7-0-2-4-4"
style="stop-color:#ffffff;stop-opacity:0.15686275"
offset="0.99001008" />
<stop
id="stop3462-0-9-8-7-8"
style="stop-color:#ffffff;stop-opacity:0.39215687"
offset="1" />
</linearGradient>
<linearGradient
y2="35.430561"
x2="76.041"
y1="49.372032"
x1="76.041"
gradientTransform="matrix(0.38156409,0,0,0.32896952,-18.24159,0.28216731)"
gradientUnits="userSpaceOnUse"
id="linearGradient10268-4"
xlink:href="#linearGradient6129-963-697-142-998-580-273-44-2-2-2" />
<linearGradient
id="linearGradient6129-963-697-142-998-580-273-44-2-2-2">
<stop
offset="0"
style="stop-color:#0a0a0a;stop-opacity:0.498"
id="stop2661-01-6-2-4" />
<stop
offset="1"
style="stop-color:#0a0a0a;stop-opacity:0"
id="stop2663-64-5-5-3" />
</linearGradient>
<linearGradient
y2="42.923553"
x2="84.30883"
y1="16.110577"
x1="84.30883"
gradientTransform="matrix(0.3101469,0,0,0.30591044,-15.362929,0.46943178)"
gradientUnits="userSpaceOnUse"
id="linearGradient10262-3"
xlink:href="#linearGradient4632-0-6-4" />
<linearGradient
id="linearGradient4632-0-6-4-4">
<stop
id="stop4634-4-4-7-5"
offset="0"
style="stop-color:#aacb7d;stop-opacity:1;" />
<stop
id="stop4636-3-1-5-4"
offset="1"
style="stop-color:#709937;stop-opacity:1;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3104-8-8-97-4-6-11-5-5-4-4"
id="linearGradient10473-4-0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.31070043,0,0,0.27489387,20.17717,-0.10316268)"
x1="-51.786404"
y1="53.514328"
x2="-51.786404"
y2="2.0612748" />
<linearGradient
id="linearGradient3104-8-8-97-4-6-11-5-5-4-4">
<stop
id="stop3106-5-4-3-5-0-2-1-0-7-7"
style="stop-color:#000000;stop-opacity:0.32173914"
offset="0" />
<stop
id="stop3108-4-3-7-8-2-0-7-9-0-6"
style="stop-color:#000000;stop-opacity:0.27826086"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient4346">
<stop
offset="0"
style="stop-color:#cecece;stop-opacity:1"
id="stop4348" />
<stop
offset="1"
style="stop-color:#c4c4c4;stop-opacity:1"
id="stop4350" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient4346"
id="linearGradient8858"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.33333327,0,0,0.32971018,-17.44063,-0.64784268)"
x1="62.988873"
y1="11.645091"
x2="62.988873"
y2="15.385052" />
<linearGradient
xlink:href="#linearGradient4632-0-6-4"
id="linearGradient5883"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72580649,0,0,0.74516186,87.157262,-7.159588)"
x1="-91"
y1="43.999817"
x2="-91"
y2="119.05979" />
<linearGradient
id="linearGradient4632-0-6-4">
<stop
style="stop-color:#55a7f3;stop-opacity:1;"
offset="0"
id="stop4634-4-4-7" />
<stop
style="stop-color:#1374cf;stop-opacity:1;"
offset="1"
id="stop4636-3-1-5" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient9235"
id="linearGradient5873"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9348846,0,0,1.9211429,-138.39876,-32.205592)"
x1="97.538795"
y1="8.8103228"
x2="97.538795"
y2="44.260689" />
<linearGradient
id="linearGradient9235">
<stop
id="stop9237"
style="stop-color:#ffffff;stop-opacity:1"
offset="0" />
<stop
id="stop9239"
style="stop-color:#ffffff;stop-opacity:0.23529412"
offset="0.1088333" />
<stop
id="stop9241"
style="stop-color:#ffffff;stop-opacity:0.15686275"
offset="0.97909725" />
<stop
id="stop9243"
style="stop-color:#ffffff;stop-opacity:0.39215687"
offset="1" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.19047617,0,0,0.19047617,8.0435813,41.128334)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient4941"
id="linearGradient8096"
y2="5.9877172"
x2="48"
y1="90"
x1="48" />
<linearGradient
id="linearGradient4941">
<stop
offset="0"
style="stop-color:#0a0a0a;stop-opacity:1"
id="stop4943" />
<stop
offset="1"
style="stop-color:#3c3c3c;stop-opacity:1"
id="stop4945" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.38095235,0,0,0.38095235,6.9007243,23.985477)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3175"
id="linearGradient8186"
y2="48"
x2="23.892857"
y1="70.750648"
x1="23.892857" />
<linearGradient
gradientTransform="scale(1.0058652,0.994169)"
gradientUnits="userSpaceOnUse"
id="linearGradient3175"
y2="7.0165396"
x2="45.447727"
y1="92.539597"
x1="45.447727">
<stop
offset="0"
style="stop-color:#000000;stop-opacity:1"
id="stop3177" />
<stop
offset="1"
style="stop-color:#000000;stop-opacity:0"
id="stop3179" />
</linearGradient>
<radialGradient
gradientTransform="matrix(-0.41896884,0,0,-0.13293303,57.887319,47.46325)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3265"
id="radialGradient8206"
fy="29.289238"
fx="85.651291"
r="21"
cy="29.289238"
cx="85.651291" />
<linearGradient
id="linearGradient3265">
<stop
offset="0"
style="stop-color:#52acf6;stop-opacity:1"
id="stop3267" />
<stop
offset="1"
style="stop-color:#0060ff;stop-opacity:1"
id="stop3269" />
</linearGradient>
<radialGradient
gradientTransform="matrix(0.9608637,-4.7530864e-8,1.9945394e-8,0.4445363,-6.931412,51.245871)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3737"
id="radialGradient8208"
fy="24.191805"
fx="23.865416"
r="27"
cy="24.191805"
cx="23.865416" />
<linearGradient
id="linearGradient3737">
<stop
offset="0"
style="stop-color:#ffffff;stop-opacity:1"
id="stop3739" />
<stop
offset="1"
style="stop-color:#ffffff;stop-opacity:0"
id="stop3741" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.38095235,0,0,0.38095235,6.9007243,23.985477)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3737"
id="linearGradient8178"
y2="74.355659"
x2="22.428572"
y1="48"
x1="22.428572" />
<filter
id="filter6045"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur6047"
stdDeviation="0.1903125" />
</filter>
<linearGradient
gradientTransform="matrix(0.5294087,0,0,0.5263158,0.3530346,43.552631)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5847"
id="linearGradient8664"
y2="82.013863"
x2="38.473213"
y1="72"
x1="38.473213" />
<linearGradient
id="linearGradient5847">
<stop
offset="0"
style="stop-color:#333333;stop-opacity:1"
id="stop5849" />
<stop
offset="0.43065301"
style="stop-color:#333333;stop-opacity:1"
id="stop5857" />
<stop
offset="0.55547994"
style="stop-color:#000000;stop-opacity:1"
id="stop5855" />
<stop
offset="1"
style="stop-color:#000000;stop-opacity:1"
id="stop5851" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.5294087,0,0,0.5263158,0.3530346,43.552631)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5892"
id="linearGradient8666"
y2="83.043022"
x2="39"
y1="73"
x1="39" />
<linearGradient
id="linearGradient5892">
<stop
offset="0"
style="stop-color:#484848;stop-opacity:1"
id="stop5894" />
<stop
offset="1"
style="stop-color:#5d5d5d;stop-opacity:1"
id="stop5896" />
</linearGradient>
<linearGradient
gradientTransform="matrix(1,0,0,0.5263333,-15.000002,42.92621)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3175"
id="linearGradient8668"
y2="76.5"
x2="34"
y1="76.5"
x1="33" />
<linearGradient
gradientTransform="matrix(1,0,0,0.5263158,-57,42.927631)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3175"
id="linearGradient8670"
y2="76.5"
x2="34"
y1="76.5"
x1="33" />
<filter
id="filter6036"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur6038"
stdDeviation="0.285" />
</filter>
<linearGradient
gradientTransform="matrix(0.5294087,0,0,0.5263158,0.3530346,42.927631)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5892"
id="linearGradient8672"
y2="42"
x2="39"
y1="72"
x1="39" />
<linearGradient
gradientTransform="matrix(1,0,0,0.6666667,48.000005,-72)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3175"
id="linearGradient8674"
y2="76.5"
x2="34"
y1="76.5"
x1="33" />
<linearGradient
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient6059"
id="linearGradient8676"
y2="48"
x2="42.850594"
y1="48"
x1="36.925404" />
<linearGradient
id="linearGradient6059">
<stop
offset="0"
style="stop-color:#000000;stop-opacity:0.42629483"
id="stop6061" />
<stop
offset="1"
style="stop-color:#ffffff;stop-opacity:0.31707317"
id="stop6063" />
</linearGradient>
<linearGradient
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient6069"
id="linearGradient8678"
y2="48"
x2="43.64254"
y1="48"
x1="34.139206" />
<linearGradient
id="linearGradient6069">
<stop
offset="0"
style="stop-color:#ffffff;stop-opacity:1"
id="stop6071" />
<stop
offset="1"
style="stop-color:#7c7c7c;stop-opacity:1"
id="stop6073" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.5555555,0,0,0.5,-0.6666667,45.999997)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3303"
id="linearGradient8680"
y2="31"
x2="48"
y1="31"
x1="30" />
<linearGradient
id="linearGradient3303">
<stop
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1"
id="stop3305" />
<stop
offset="0.25049603"
style="stop-color:#1a1a1a;stop-opacity:1"
id="stop3313" />
<stop
offset="0.50099206"
style="stop-color:#cdff01;stop-opacity:1"
id="stop3311" />
<stop
offset="0.75049603"
style="stop-color:#1a1a1a;stop-opacity:1"
id="stop3315" />
<stop
offset="1"
style="stop-color:#1a1a1a;stop-opacity:1"
id="stop3307" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.5555555,0,0,0.5,-0.6666667,45.999997)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient3339"
id="linearGradient8684"
y2="32"
x2="39"
y1="34"
x1="39" />
<linearGradient
id="linearGradient3339">
<stop
offset="0"
style="stop-color:#4f4f4f;stop-opacity:1"
id="stop3341" />
<stop
offset="1"
style="stop-color:#a2a2a2;stop-opacity:1"
id="stop3343" />
</linearGradient>
<filter
id="filter4749"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur4747"
stdDeviation="0.1903125" />
</filter>
<filter
id="filter4789"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur4787"
stdDeviation="0.285" />
</filter>
<filter
id="filter4861"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur4859"
stdDeviation="0.1903125" />
</filter>
<filter
id="filter4901"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur4899"
stdDeviation="0.285" />
</filter>
<filter
id="filter4974"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur4972"
stdDeviation="0.1903125" />
</filter>
<filter
id="filter5014"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur5012"
stdDeviation="0.285" />
</filter>
<filter
id="filter5086"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur5084"
stdDeviation="0.1903125" />
</filter>
<filter
id="filter5126"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
id="feGaussianBlur5124"
stdDeviation="0.285" />
</filter>
<linearGradient
gradientTransform="matrix(0,0.29463346,-0.2946335,0,25.447894,44.693588)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient6151"
id="linearGradient8714"
y2="48"
x2="43.210567"
y1="48"
x1="34.571178" />
<linearGradient
id="linearGradient6151">
<stop
offset="0"
style="stop-color:#5b5b5b;stop-opacity:1"
id="stop6153" />
<stop
offset="1"
style="stop-color:#0a0a0a;stop-opacity:1"
id="stop6155" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0,0.19413168,-0.19413168,0,20.6068,45.190626)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient6151"
id="linearGradient8729"
y2="48"
x2="43.416267"
y1="48"
x1="34.365479" />
<linearGradient
y2="42"
x2="39"
y1="72"
x1="39"
gradientTransform="matrix(0.5294087,0,0,0.72742223,0.3530346,34.481788)"
gradientUnits="userSpaceOnUse"
id="linearGradient5050"
xlink:href="#linearGradient5892" />
<linearGradient
y2="48"
x2="42.850594"
y1="48"
x1="36.925404"
gradientUnits="userSpaceOnUse"
id="linearGradient5052"
xlink:href="#linearGradient6059" />
<linearGradient
y2="48"
x2="43.64254"
y1="48"
x1="34.139206"
gradientUnits="userSpaceOnUse"
id="linearGradient5054"
xlink:href="#linearGradient6069" />
<linearGradient
y2="31"
x2="48"
y1="31"
x1="30"
gradientTransform="matrix(0.5555555,0,0,0.5,-0.6666667,45.999997)"
gradientUnits="userSpaceOnUse"
id="linearGradient5058"
xlink:href="#linearGradient3303" />
<linearGradient
gradientTransform="matrix(0,0.19413168,-0.19413168,0,24.165777,40.246662)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5095"
id="linearGradient8729-3"
y2="48"
x2="43.416267"
y1="48"
x1="34.365479" />
<linearGradient
gradientTransform="matrix(0,0.19413168,-0.19413168,0,28.09798,40.263612)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5095"
id="linearGradient8729-3-3"
y2="48"
x2="43.416267"
y1="48"
x1="34.365479" />
<linearGradient
gradientTransform="matrix(0,0.19413168,-0.19413168,0,31.928488,40.29751)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient5095"
id="linearGradient8729-3-1"
y2="48"
x2="43.416267"
y1="48"
x1="34.365479" />
</defs>
<metadata
id="metadata8865">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
style="display:inline"
id="layer3"
transform="translate(-9.1694896,-42.288138)">
<rect
style="fill:url(#linearGradient8096);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.38095236"
id="rect8039"
y="42.271194"
x="9.1864367"
ry="2.2857141"
rx="2.2857141"
height="15.999998"
width="15.999998" />
<path
style="fill:url(#linearGradient8186);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.38095236"
id="rect8166"
d="m 11.472152,42.27119 c -1.266285,0 -2.2857137,1.019428 -2.2857137,2.285714 v 11.42857 c 0,1.266286 1.0194287,2.285716 2.2857137,2.285714 h 11.428571 c 1.266286,0 2.285714,-1.019427 2.285714,-2.285714 v -11.42857 c 0,-1.266286 -1.019428,-2.285714 -2.285714,-2.285714 z m 0,0.380952 h 11.428571 c 1.058638,0 1.904762,0.846124 1.904762,1.904762 v 11.42857 c 0,1.05864 -0.846124,1.904762 -1.904762,1.904762 H 11.472152 c -1.058636,10e-7 -1.9047613,-0.846124 -1.9047613,-1.904762 v -11.42857 c 0,-1.058638 0.8461243,-1.904762 1.9047613,-1.904762 z" />
<rect
style="fill:url(#radialGradient8206);fill-opacity:1;fill-rule:nonzero;stroke:#2f2485;stroke-width:0.4523606;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect8190"
y="43.582878"
x="14.106758"
height="2.7099602"
width="7.9285913" />
<rect
style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.38095236"
id="rect8480"
y="42.271187"
x="12.995961"
height="6.0952377"
width="0.38095236" />
<path
style="opacity:0.4;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.38095236"
id="rect8482"
d="m 24.04358,42.580714 v 5.785713 h 0.380952 V 42.854523 C 24.307689,42.749922 24.180349,42.659655 24.04358,42.580714 Z" />
<path
style="opacity:0.15;fill:url(#linearGradient8178);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.38095236"
id="rect8160"
d="m 11.472152,42.27119 c -1.266285,0 -2.2857137,1.019428 -2.2857137,2.285714 v 11.42857 c 0,1.13709 0.8201257,2.070428 1.9047617,2.25 C 10.220042,58.059048 9.5673907,57.292735 9.5673907,56.366427 V 44.937856 c 0,-1.058637 0.8461243,-1.904761 1.9047613,-1.904761 h 11.428571 c 1.058638,0 1.904762,0.846124 1.904762,1.904761 v 11.428571 c 0,0.926309 -0.652652,1.69262 -1.52381,1.869047 1.084636,-0.179573 1.904762,-1.112908 1.904762,-2.25 v -11.42857 c 0,-1.266286 -1.019428,-2.285714 -2.285714,-2.285714 z" />
<g
transform="matrix(0.38095235,0,0,0.38095235,6.9007243,23.985477)"
id="g8638">
<path
style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path8490"
d="m 18.336386,69.391447 c -0.04391,0.308622 -0.210923,0.578128 -0.463232,0.740132 v 2.43421 c 0.291983,0.187479 0.479776,0.517136 0.479776,0.888158 1e-6,0.371023 -0.187793,0.70068 -0.479776,0.888158 v 2.434211 c 0.291983,0.187478 0.479776,0.517135 0.479776,0.888158 1e-6,0.371022 -0.187793,0.700679 -0.479776,0.888158 v 2.43421 c 0.291983,0.187479 0.479776,0.517136 0.479776,0.888158 1e-6,0.371023 -0.187793,0.70068 -0.479776,0.888158 v 1.052632 h 0.49632 c 0.07953,-0.502989 0.514104,-0.888158 1.042274,-0.888158 0.52817,0 0.962748,0.385169 1.042273,0.888158 h 2.150723 c 0.07953,-0.502989 0.514104,-0.888158 1.042273,-0.888158 0.275103,0 0.523066,0.10841 0.711393,0.279605 v -2.664474 c -0.188327,0.171195 -0.43629,0.279606 -0.711393,0.279606 -0.584466,0 -1.058817,-0.471579 -1.058817,-1.052632 1e-6,-0.581053 0.47435,-1.052632 1.058817,-1.052632 0.275103,0 0.523066,0.108411 0.711393,0.279606 v -2.664474 c -0.188327,0.171195 -0.43629,0.279605 -0.711393,0.279605 -0.584466,0 -1.058817,-0.471579 -1.058817,-1.052631 1e-6,-0.581053 0.47435,-1.052632 1.058817,-1.052632 0.275103,0 0.523066,0.108411 0.711393,0.279605 v -2.664473 c -0.188327,0.171194 -0.43629,0.279605 -0.711393,0.279605 -0.584466,0 -1.058817,-0.471579 -1.058817,-1.052632 1e-6,-0.581052 0.47435,-1.052631 1.058817,-1.052631 0.275103,0 0.523066,0.10841 0.711393,0.279605 v -1.184211 h -1.786754 c -0.07267,0.5108 -0.508517,0.904606 -1.042273,0.904606 -0.533756,0 -0.969606,-0.393806 -1.042274,-0.904606 z m 1.075362,0.904606 c 0.584468,0 1.058817,0.471579 1.058817,1.052631 1e-6,0.581053 -0.47435,1.052632 -1.058817,1.052632 -0.584467,0 -1.058818,-0.471579 -1.058818,-1.052632 1e-6,-0.581052 0.474351,-1.052631 1.058818,-1.052631 z m 2.117635,2.105263 c 0.584467,0 1.058817,0.471579 1.058817,1.052631 1e-6,0.581053 -0.47435,1.052632 -1.058817,1.052632 -0.584467,0 -1.058818,-0.471579 -1.058818,-1.052632 1e-6,-0.581052 0.47435,-1.052631 1.058818,-1.052631 z m -2.117635,2.105263 c 0.584468,0 1.058817,0.471579 1.058817,1.052632 1e-6,0.581052 -0.47435,1.052631 -1.058817,1.052631 -0.584467,0 -1.058818,-0.471579 -1.058818,-1.052631 1e-6,-0.581053 0.474351,-1.052632 1.058818,-1.052632 z m 2.117635,2.105263 c 0.584467,0 1.058817,0.471579 1.058817,1.052632 1e-6,0.581052 -0.47435,1.052631 -1.058817,1.052631 -0.584467,0 -1.058818,-0.471579 -1.058818,-1.052631 1e-6,-0.581053 0.47435,-1.052632 1.058818,-1.052632 z m -2.117635,2.105263 c 0.584468,0 1.058817,0.471579 1.058817,1.052632 1e-6,0.581053 -0.47435,1.052632 -1.058817,1.052632 -0.584467,0 -1.058818,-0.471579 -1.058818,-1.052632 1e-6,-0.581053 0.474351,-1.052632 1.058818,-1.052632 z m 2.117635,2.105264 c 0.584467,0 1.058817,0.471579 1.058817,1.052631 1e-6,0.581053 -0.47435,1.052632 -1.058817,1.052632 -0.584467,0 -1.058818,-0.471579 -1.058818,-1.052632 1e-6,-0.581052 0.47435,-1.052631 1.058818,-1.052631 z" />
<path
style="fill:none;stroke:#000000;stroke-width:1.89444184;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter6045)"
id="path8504"
transform="matrix(0.5294087,0,0,0.5263158,0.3530346,42.927631)"
d="M 34,68.96875 V 75 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 v -6.03125 z m 4,0 V 75 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 v -6.03125 z m 4,0 V 75 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 v -6.03125 z" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect8506"
y="62"
x="16"
height="26"
width="10" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect8512"
y="81"
x="17"
height="1"
width="1" />
<path
style="fill:none;stroke:#000000;stroke-width:1.89444184;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter6036)"
id="path8530"
transform="matrix(0.5294087,0,0,0.5263158,0.3530346,42.927631)"
d="M 34,51.5 V 67 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 V 53.28125 C 35.212562,52.833764 34.518369,52.238163 34,51.5 Z m 10,0 c -0.518369,0.738163 -1.212562,1.333764 -2,1.78125 V 67 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 z M 38,54 v 13 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 V 54 c -0.327491,0.05456 -0.657101,0.09375 -1,0.09375 -0.342899,0 -0.672508,-0.03919 -1,-0.09375 z" />
<path
style="opacity:0.7;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path8636"
d="M 19,75.84375 V 82.5 c 0,0.277 0.223,0.5 0.5,0.5 0.277,0 0.5,-0.223 0.5,-0.5 v -6.25 c -0.358059,-0.08471 -0.682581,-0.238403 -1,-0.40625 z m 4,0 c -0.317419,0.167847 -0.641941,0.321539 -1,0.40625 v 6.25 c 0,0.277 0.223,0.5 0.5,0.5 0.277,0 0.5,-0.223 0.5,-0.5 z" />
<path
style="fill:url(#linearGradient5050);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.17562842"
id="path8532"
d="m 16.9375,65.03125 v 22.070445 h 8.125 V 65.03125 Z" />
<path
style="fill:url(#linearGradient5052);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path8536"
transform="matrix(0,0.7282863,-0.7325661,0,56.163147,39.867098)"
d="m 42.850595,48 a 3.959722,3.959722 0 1 1 -7.919444,0 3.959722,3.959722 0 1 1 7.919444,0 z" />
<path
style="fill:#c6c6c6;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.14327526;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path8538"
transform="matrix(0.4679446,0,0,0.4652108,2.8011987,45.860671)"
d="m 42.850595,48 a 3.959722,3.959722 0 1 1 -7.919444,0 3.959722,3.959722 0 1 1 7.919444,0 z" />
<path
style="fill:none;stroke:url(#linearGradient5054);stroke-width:3.00058484;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path8542"
transform="matrix(0,0.3322934,-0.3342462,0,37.043788,55.267608)"
d="m 42.850595,48 a 3.959722,3.959722 0 1 1 -7.919444,0 3.959722,3.959722 0 1 1 7.919444,0 z" />
<path
style="opacity:0.42629484;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path8544"
d="m 20.999974,67.401316 c -0.440612,0 -0.810657,0.367883 -0.810657,0.805921 0,0.365031 0.271486,0.665088 0.612129,0.756579 v 0.263158 h 0.363968 v -0.246711 c 0.362838,-0.07326 0.628672,-0.389744 0.628673,-0.773026 0,-0.438038 -0.353502,-0.805921 -0.794113,-0.805921 z m 0,0.263158 c 0.29739,0 0.529409,0.24711 0.529409,0.542763 -1e-6,0.295652 -0.232019,0.526316 -0.529409,0.526316 -0.29739,-10e-7 -0.545953,-0.230664 -0.545953,-0.526316 10e-7,-0.295653 0.248563,-0.542763 0.545953,-0.542763 z" />
<rect
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect8498"
y="62"
x="16"
height="0.50000006"
width="10">
<rect
style="fill:url(#linearGradient5058);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect8496"
y="61"
x="16"
height="1.0000001"
width="10" />
</rect>
</g>
<use
xlink:href="#g8638"
height="96"
width="96"
y="0"
x="0"
id="use8686"
transform="translate(3.8095235)" />
<use
xlink:href="#use8686"
height="96"
width="96"
y="0"
x="0"
id="use8688"
transform="translate(3.8095235)" />
<path
style="fill:url(#linearGradient8714);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.38095236;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path8692"
d="m 11.305486,57.318807 a 1.1666667,1.1666666 0 1 1 0,-2.333333 1.1666667,1.1666666 0 1 1 0,2.333333 z" />
<path
style="fill:url(#linearGradient8729);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.38095233;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path8704"
d="m 11.288479,53.509284 a 0.7687075,0.7687075 0 1 1 0,-1.537415 0.7687075,0.7687075 0 1 1 0,1.537415 z" />
<path
style="display:inline;fill:#a0ff1a;fill-opacity:1;fill-rule:nonzero;stroke:#1a1a1a;stroke-width:0.1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path8704-5-9"
d="m 18.779659,48.58227 a 0.76870752,0.76870752 0 1 1 0,-1.537415 0.76870752,0.76870752 0 1 1 0,1.537415 z" />
<path
style="display:inline;fill:#a0ff1a;fill-opacity:1;fill-rule:nonzero;stroke:#1a1a1a;stroke-width:0.1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path8704-5-9-6"
d="m 22.472686,48.639138 a 0.76870752,0.76870752 0 1 1 0,-1.537415 0.76870752,0.76870752 0 1 1 0,1.537415 z" />
<path
style="display:inline;fill:#a0ff1a;fill-opacity:1;fill-rule:nonzero;stroke:#1a1a1a;stroke-width:0.1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path8704-5-9-0"
d="m 14.922223,48.631569 a 0.76870752,0.76870752 0 1 1 0,-1.537415 0.76870752,0.76870752 0 1 1 0,1.537415 z" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 31 KiB

View File

@ -1,16 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>{% if page.title %}{{ page.title }} · {% endif %}south london</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='/main.css'>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
{% block head %} {% endblock head %}
</head>
<body>
{% block content %} {% endblock content %}
</body>
</html>

View File

@ -1,47 +0,0 @@
{% set paths = load_data(path="paths.toml") %}
<header>
<nav class="nav">
{% if current_path == "/" %}
<span><a href="/" class="active">south london</a></span>
{% else %}
<span><a href="/">south london</a></span>
{% endif %}
{% for path in paths.paths %}
{% if current_path is starting_with(path.path) %}
<span><a href="{{ path.path }}" class="active">{{ path.name }}</a></span>
{% else %}
<span><a href="{{ path.path }}">{{ path.name }}</a></span>
{% endif %}
{% endfor %}
</nav>
</header>
<style>
header {
background: white;
}
.nav {
padding: 0.5em 0;
}
nav > span > a {
white-space: nowrap;
}
a.active {
color: #8360c3;
font-weight: 800;
}
nav > span::after {
content: " · ";
margin: 0 1rem;
}
nav > span:last-of-type::after {
content: "";
}
</style>

View File

@ -1,27 +0,0 @@
{% extends "base.html" %}
{% block head %}
<link href="https://screens.southlondon.cc" rel="preconnect" crossorigin>
{% endblock head %}
{% block content %}
{% include "header.html" %}
<main>
{% include "index/section1.html" %}
</main>
{% include "index/userlist.html" %}
<style>
@media (max-width: 1000px) {
header {
grid-template-columns: 1fr;
height: auto;
}
header>.title {
border-bottom: var(--border);
}
}
</style>
{% endblock content %}

View File

@ -1,31 +0,0 @@
<div class="title">
<h1>south london</h1>
<p>strand-type computing</p>
</div>
<section>
<p>hello! we're a small little very tiny community of people who like to use computers to make things. <a
href="/signup">come join us!</a></p>
<p>this page is served from a shared linux-based computer that all members have access to. it's pretty modest
resource-wise but it should be able to handle all your favourite-command line tools without any trouble.</p>
<p>right now we have: </p>
<ul>
<li>many text editors</li>
<li>https:// and gemini:// page hosting</li>
<li>tools for a variety of progamming languages</li>
<li>some irc clients</li>
<li>a <a href="https://library.southlondon.cc">mediawiki instance</a></li>
</ul>
</section>
<style>
.title {
margin: 2rem 0;
}
.title>h1,
.title>p {
margin: 0;
}
</style>

View File

@ -1,96 +0,0 @@
<div class="pages">
<h4 class="text">our esteemed users</h4>
{% set user_data = load_data(path="users.toml") %}
<ul class="users">
{% for u in user_data.all -%}
<a href="/~{{ u }}/">
<li><span class="text">~{{ u }}</span></li>
<img loading="lazy" src="/shots/{{u}}.png">
</a>
{%- endfor %}
<a href="/signup/">
<li><span class="text">Join Today!</span></li>
<img src="data:image/svg+xml,%3Csvg width='1570' height='2186' viewBox='0 0 1570 2186' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M924.341 1127.44C898.618 1133.25 874.555 1138.64 852.151 1143.62C829.747 1148.6 808.173 1153.17 787.428 1157.31C766.684 1160.63 746.769 1163.54 727.685 1166.03C708.6 1167.69 689.93 1169.35 671.675 1171.01C653.42 1171.84 635.165 1172.25 616.91 1172.25H425.232C389.552 1172.25 367.563 1163.95 359.265 1147.36C350.967 1130.76 351.382 1104.62 360.51 1068.94C363.829 1057.33 367.563 1046.12 371.712 1035.34C375.86 1023.72 380.839 1012.93 386.647 1002.98H660.473C675.409 1002.98 689.515 1003.39 702.791 1004.22C716.897 1004.22 730.589 1004.64 743.865 1005.47C757.142 1006.3 770.003 1007.54 782.45 1009.2C795.726 1010.03 808.588 1011.69 821.034 1014.18C834.311 1015.84 847.587 1017.91 860.863 1020.4C874.14 1022.06 887.831 1024.55 901.937 1027.87C919.362 1032.02 931.809 1039.07 939.277 1049.03C946.745 1058.16 947.99 1071.85 943.011 1090.1C941.351 1097.57 938.447 1105.04 934.298 1112.51C930.979 1119.14 927.66 1124.12 924.341 1127.44ZM1203.15 1154.83L1209.37 1131.18C1213.52 1110.43 1216.01 1093.01 1216.84 1078.9C1217.67 1064.79 1214.76 1051.1 1208.12 1037.83C1201.49 1023.72 1189.87 1006.71 1173.27 986.796C1156.68 966.881 1139.67 948.211 1122.24 930.786C1104.82 912.531 1086.15 895.106 1066.23 878.51C1046.32 861.915 1024.74 845.734 1001.51 829.968C978.276 814.203 952.968 798.852 925.586 783.916C898.203 768.15 868.331 751.97 835.97 735.374C829.332 743.672 823.109 752.385 817.3 761.512C812.322 769.81 807.343 778.937 802.364 788.895C798.215 798.022 794.896 807.98 792.407 818.767C787.428 838.681 785.769 855.277 787.428 868.553C789.088 881 794.066 891.372 802.364 899.67C810.662 907.967 823.523 915.85 840.949 923.318C866.672 936.594 889.905 949.041 910.65 960.658C932.224 971.445 952.138 983.892 970.393 997.998C989.478 1012.1 1008.15 1028.28 1026.4 1046.54C1045.49 1063.96 1065.4 1085.54 1086.15 1111.26L1074.94 1046.54L1055.03 1129.93L1096.1 1066.45C1066.23 1093.84 1037.19 1117.49 1008.98 1137.4C981.595 1156.48 954.628 1173.08 928.075 1187.19C901.522 1200.46 874.14 1212.49 845.927 1223.28C818.545 1233.24 789.088 1242.37 757.556 1250.66C737.642 1255.64 721.461 1261.45 709.015 1268.09C697.398 1274.73 687.855 1284.27 680.387 1296.72C672.919 1308.33 666.281 1325.34 660.473 1347.75C657.984 1356.87 655.909 1365.59 654.25 1373.89C653.42 1382.18 653.005 1390.48 653.005 1398.78C653.005 1407.08 653.42 1414.96 654.25 1422.43C655.079 1429.9 656.739 1436.53 659.228 1442.34C737.227 1423.26 809.417 1400.02 875.799 1372.64C942.181 1345.26 1002.34 1313.73 1056.28 1278.05C1111.04 1241.54 1160 1200.46 1203.15 1154.83Z' fill='%23BBBBBB'/%3E%3C/svg%3E">
</a>
<a href="gemini://southlondon.cc">
<li><span class="text">Also on Gemini</span></li>
<img src="data:image/svg+xml,%3Csvg width='1570' height='2186' viewBox='0 0 1570 2186' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M625.437 736C647.964 736 667.05 740.066 682.694 748.198C698.338 756.33 711.166 767.59 721.178 781.978C731.19 796.365 738.387 812.942 742.767 831.709H768.11L743.705 917.096C737.448 910.215 729.313 905.21 719.301 902.083C709.914 898.329 698.025 896.453 683.633 896.453C674.872 896.453 666.424 898.329 658.289 902.083C650.155 905.836 642.333 913.655 634.823 925.541C627.94 936.801 621.057 954.629 614.173 979.025L612.296 985.593C609.167 997.479 606.351 1009.05 603.848 1020.31C601.971 1030.95 600.407 1040.95 599.155 1050.34C602.284 1051.59 605.726 1052.53 609.48 1053.15C613.86 1053.78 618.241 1054.09 622.621 1054.09C632.007 1054.09 641.081 1053.15 649.842 1051.28C658.602 1049.4 667.676 1046.27 677.062 1041.89C686.449 1036.89 696.461 1030.95 707.099 1024.06L693.019 1113.2H669.553C656.412 1138.23 639.83 1160.12 619.805 1178.89C600.407 1197.65 579.444 1212.67 556.916 1223.93C535.015 1234.56 513.426 1239.88 492.15 1239.88C474.003 1239.88 457.421 1233.94 442.403 1222.05C427.384 1209.54 414.869 1193.27 404.857 1173.26C394.845 1153.24 388.274 1131.03 385.146 1106.64C382.643 1081.61 384.207 1056.91 389.839 1032.51L395.471 1009.05C406.734 963.386 419.562 923.664 433.955 889.885C448.973 855.479 465.868 827.017 484.641 804.497C503.414 781.352 524.377 764.15 547.53 752.89C571.309 741.63 597.278 736 625.437 736ZM788.76 747.26C796.269 745.383 804.091 744.132 812.226 743.507C820.987 742.255 829.434 741.63 837.569 741.63C869.483 741.63 894.513 748.511 912.66 762.273C930.807 775.409 941.758 793.863 945.513 817.634C949.267 840.779 945.2 867.99 933.31 899.268C923.298 925.541 914.225 953.378 906.09 982.778C898.581 1012.18 891.072 1042.21 883.563 1072.86C876.679 1102.88 869.17 1132.6 861.035 1162C853.526 1190.77 845.078 1218.3 835.692 1244.57C820.048 1287.73 796.269 1324.64 764.355 1355.29C733.068 1385.94 695.522 1409.4 651.719 1425.67C608.542 1442.56 561.61 1451 510.923 1451C479.009 1451 452.102 1449.44 430.2 1446.31C408.924 1443.18 391.716 1438.49 378.575 1432.23C365.434 1425.98 354.483 1418.78 345.723 1410.65C333.833 1398.77 326.95 1385.32 325.073 1370.3C322.57 1355.29 324.447 1337.15 330.705 1315.88C333.833 1304 338.839 1291.17 345.723 1277.41C351.98 1264.27 359.489 1250.2 368.25 1235.19H373.882C385.771 1241.44 400.164 1247.38 417.059 1253.01C434.581 1258.02 453.666 1262.08 474.316 1265.21C494.966 1268.34 515.303 1269.9 535.328 1269.9C547.217 1269.9 560.358 1269.28 574.751 1268.03C589.143 1266.78 604.474 1264.9 620.744 1262.4C627.001 1252.39 632.32 1242.38 636.701 1232.37C641.081 1221.74 645.774 1208.91 650.78 1193.9C655.786 1178.26 662.044 1158.24 669.553 1133.85C678.314 1105.7 685.823 1077.86 692.08 1050.34C698.338 1022.81 704.596 994.664 710.853 965.888C717.111 937.113 724.62 907.4 733.38 876.748C738.387 859.233 743.705 842.969 749.337 827.955C755.595 812.317 761.852 797.929 768.11 784.793C774.993 771.031 781.877 758.52 788.76 747.26Z' fill='%23BBBBBB'/%3E%3Cpath d='M1212.66 972.457C1203.27 974.959 1193.57 977.148 1183.56 979.025C1173.55 980.276 1162.91 981.527 1151.65 982.778C1141.01 983.404 1129.12 983.717 1115.98 983.717C1088.44 983.717 1065.92 979.65 1048.4 971.518C1031.5 962.761 1020.24 948.999 1014.61 930.232C1009.6 911.466 1010.85 886.444 1018.36 855.167L1041.83 759.458C1049.96 756.956 1058.72 755.079 1068.11 753.828C1077.49 751.951 1087.51 750.7 1098.14 750.075C1108.78 748.824 1119.73 748.198 1131 748.198C1163.54 748.198 1188.88 753.203 1207.03 763.211C1225.8 773.22 1237.69 788.233 1242.69 808.251C1248.33 827.643 1246.76 852.352 1238 882.378L1212.66 972.457ZM1140.38 1261.46C1131 1263.96 1121.3 1265.84 1111.29 1267.09C1101.27 1268.97 1090.63 1270.22 1079.37 1270.84C1068.73 1272.09 1056.84 1272.72 1043.7 1272.72C1016.17 1272.72 993.642 1268.65 976.121 1260.52C959.226 1251.76 947.962 1238 942.33 1219.23C937.324 1200.47 938.576 1175.45 946.085 1144.17L969.551 1048.46C977.686 1045.96 986.446 1044.08 995.833 1042.83C1005.22 1040.95 1015.23 1039.7 1025.87 1039.08C1036.51 1037.83 1047.46 1037.2 1058.72 1037.2C1091.26 1037.2 1116.6 1042.21 1134.75 1052.21C1153.52 1062.22 1165.41 1077.24 1170.42 1097.25C1176.05 1116.65 1174.49 1141.35 1165.73 1171.38L1140.38 1261.46Z' fill='%23BBBBBB'/%3E%3C/svg%3E">
</a>
</ul>
</div>
<style>
.pages {
padding: 1em 2em;
/* background: #44A08D;
background: -webkit-linear-gradient(to bottom, #093637, #44A08D);
background: linear-gradient(to bottom, #093637, #44A08D);
background-repeat: no-repeat;
background-attachment: fixed; */
max-width: 72rem;
margin: auto;
}
.users {
display: flex;
padding: 2rem 0;
flex-wrap: wrap;
justify-content: center;
list-style: none;
gap: 4rem 2rem;
text-align: center;
}
.users>a:hover {
color: #8360c3;
background: none;
}
.users>a:hover>img {
box-shadow: 0 0 0 8px rgba(0, 0, 0, 0.8);
transform: scale(1.02);
}
.users>a:active>img {
transform: scale(0.98);
}
.text {
background: white;
border-radius: 15px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.8);
padding: 0.5em 1em;
width: max-content;
}
img {
margin-top: 1em;
background: white;
box-shadow: 0 0 0px 2px rgba(0, 0, 0, 0.1);
transition: 0.1s cubic-bezier(0.785, 0.135, 0.15, 0.86);
width: 12rem;
height: 12rem;
border-radius: 20px;
}
@media (max-width: 900px) {
.users {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 600px) {
.users {
grid-template-columns: 1fr;
}
}
</style>

View File

@ -1,17 +0,0 @@
{% extends "base.html" %}
{% block content %}
{% include "header.html" %}
<main>
{% if section.title %}
<h1 class="title">{{ section.title }}</h1>
{% endif %}
{% if section.description %}
<p class="desc">{{ section.description }}</p>
{% endif %}
{{ section.content | safe }}
</main>
{% endblock content %}

View File

@ -1,33 +0,0 @@
{% extends "base.html" %}
{% block content %}
{% include "header.html" %}
<main>
<div>
<p>send an email containg your desired username, perfered shell, favourite colour and public ssh keys to:</p>
<big> leah@southlondon.cc </big>
<p>make sure you've read the <a href="/coc">code of conduct</a> first!</p>
</div>
</main>
<style>
main {
height: 75%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
p {
font-variation-settings: 'CASL'1, 'slnt'-15;
}
big {
font-size: 8vw;
font-variation-settings: 'MONO'1, 'wght'1000;
}
</style>
{% endblock content %}

1
wiki/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.html

16
wiki/Makefile Normal file
View File

@ -0,0 +1,16 @@
# stolen from https://tildegit.org/ben/club-site/src/branch/master/Makefile
SRC_MD_FILES != find . -type f \( -name '*.md' ! -name 'README.md' \)
DST_HTML_FILES := $(SRC_MD_FILES:%.md=%.html)
all: $(DST_HTML_FILES)
%.html: %.md
$(info building $@)
@pandoc --template html.template -so $@ $<
clean:
$(info removing build artifacts)
@rm $(DST_HTML_FILES)
.PHONY: clean

46
wiki/contribute.md Normal file
View File

@ -0,0 +1,46 @@
---
title: contributing
subtitle: how to help out
author: cark
date: 2021-04-06
---
This wiki is just a bunch of markdown files that are compiled into html via pandoc using a [makefile](https://tildegit.org/southlondon/site/src/branch/main/wiki/Makefile) i stole from [ben of tilde.team](https://tilde.team/~ben/) (sorry). If you want, you too can write some wiki pages.
To start off, you'll need to have `pandoc`, `make` and `git` installed. Once you've got all that, you'll need to fork [the repo](https://tildegit.org/southlondon/site) on tildegit, and clone it to your home directory (or somewhere on your computer):
```
git clone git@tildegit.org:lp0/site.git
```
Now `cd` into it, make your changes and commit.
```
$ cd site/wiki
$ emacs contribute.md
...
$ git add contribute.md
$ git commit -m "h"
[main dda1f89] h
1 file changed, 5 insertions(+), 4 deletions(-)
$ git push
...
```
To see how your changes will look on the actual site, just run `make` and open up an http server (like the one built into python):
```
$ make
building xmpp.html
building login.html
building meta.html
building ssh.html
building index.html
building contribute.html
finished updating
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
```
to clear out the files generated, just do `make clean`:
```
$ make clean
removing build artifacts
```
now just make a pr and it'll get reviewed by someone (probably me) fairly quickly.

79
wiki/html.template Normal file
View File

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
$for(author-meta)$
<meta name="author" content="$author-meta$" />
$endfor$
$if(date-meta)$
<meta name="dcterms.date" content="$date-meta$" />
$endif$
$if(keywords)$
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
$endif$
<title>$if(title-prefix)$$title-prefix$ $endif$$pagetitle$ - south london</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
$if(quotes)$
q { quotes: "“" "”" "" ""; }
$endif$
</style>
$if(highlighting-css)$
<style type="text/css">
$highlighting-css$
</style>
$endif$
<link rel="stylesheet" href="/main.css" />
$if(math)$
$math$
$endif$
$for(header-includes)$
$header-includes$
$endfor$
</head>
<body class="$if(color)$ $color$ $endif$">
$for(include-before)$
$include-before$
$endfor$
$if(title)$
<header class="header header-wiki" id="title-block-header">
<h1 style="white-space: pre-line" class="title">$title$$if(subtitle)$<p style="font-size: 24px;" class="subtitle">$subtitle$</p>$endif$</h1>
</header>
$endif$
<main>
$if(toc)$
<nav id="$idprefix$TOC">
$table-of-contents$
</nav>
$endif$
$body$
$for(include-after)$
$include-after$
$endfor$
<script>
function backAway(){
//if it was the first page
if(history.length === 1){
window.location = "http://southlondon.cc/"
} else {
history.back();
}
}
</script>
<hr class="zig">
<hr class="zag">
$if(author)$this article was lovingly written by $for(author)$$author$$endfor$$endif$
$if(date)$ and was last updated $date$<br>$endif$
<a href="#" onClick="backAway()">← go back</a>
<br>
<a href="/wiki">↜ back to wiki root</a>
<br>
<a href="/">↞ go to the homepage</a>
</main>
</body>
</html>

BIN
wiki/img/puTTYmain.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

48
wiki/index.md Normal file
View File

@ -0,0 +1,48 @@
---
title: wiki
subtitle: "tech tip: computer"
color: blue
---
hi! welcome to the wiki. it contains some helpful info about living life on southlondon.cc.
*planned pages are shown in italics*
# a table of contents
## getting started
- [logging in: a guide](./login.html)
- [ssh tips and tricks](./ssh.html)
## making things
- [some things you could make](./thingstomake.html)
- *some good books on writing code*
- *how to use git without wanting to shit your pants and kill your roommate*
## getting on tv
- *getting your stuff shown*
- *sltv advertising*
- *content guidelines*
- *making your own channel*
- *content guidelines*
## living life
- *making your page exceptionally snazzy*
- *hosting git repos for fun and profit*
## talking to strangers
- [connect to irc](./irc.html)
- [using xmpp](./xmpp.html)
- *collecting tokens*
- *fun things to say in #meta*
## getting help
- *help! i need help!*
- *getting banned*
- *requesting packages*
- *know your rights*
## helping out
- [how to contribute to this wiki](./contribute.html)
- *how to give us money*
<style>
main {max-width: 600px;}
</style>

158
wiki/irc.md Normal file
View File

@ -0,0 +1,158 @@
---
title: irc
author: jakew
date: 2021-04-09
---
irc is a protocol for talking to people online in real-time. irc is a great way to get in touch with others on south london, getting help and getting quick answers to questions you might have. since irc has been around for so long, there's lots of nice, easy ways to connect.
## intro to irc
irc has been around for years now, which makes it a well established chat protocol. these days, lots of irc communities have moved onto newer chat platforms, but irc still remains a lightweight and simple way to chat to groups of other people.
if you've not used irc before, here are some things you should know especially if you're coming from modern chat apps.
- **you can only get messages on irc when you are connected**. if you disconnect, people can no longer send you messages and you can't see what people have sent while you have been away. although there's ways to get around this which will be mentioned below.
- **you don't have to make an account**. if you want to start chatting on irc, you just need to choose a name and join. this means that someone could accidentally use your name while you are away. we'll talk more about this in the 'how to use irc' section.
- **irc is made up of servers**, each server hosts a number of channels which people can use to talk in. you can only talk to people on the same server as you, but you can join more than one server at a time. for example, there's tilde.chat for people using tildes like south london to use.
- **each irc server is made up of channels**, each channel has a # at the start to indicate that it is a channel. each channel usually has a purpose, so for example on tilde.chat there's `#southlondon` for talk about south london and `#meta` for everyone to talk in.
## connecting
the main place you'll want to chat is on tilde.chat. here are the connection details for your client of choice:
- **server:** irc.tilde.chat
- **port:** 6697
- **ssl/tls:** yes
### web
one of the easiest ways to connect to irc is through a web client. there'll usually be a specific one for each server that you want to connect to. for connecting to tilde.chat, you need to use [kiwi.tilde.chat](https://kiwi.tilde.chat/?channel=#southlondon).
using a web client like kiwi is good if you've got something quick to ask, but it quickly becomes difficult to use because you have to type in your nickname every time and join all your channels each time. so if you want to use irc a lot, it's best to go for one of the other methods of connecting.
when going to [kiwi.tilde.chat](https://kiwi.tilde.chat/?channel=#southlondon), you'll see there's a place to type a nickname that you want to use for chatting, and a channel that you want to initially connect to. along the left side you have the servers and channels that you are connected to, in the middle you have the chat log and on the right side you have a list of users that are using the channel.
### on south london (or a linux shell)
a more difficult way to connect is through a linux shell using one of these clients:
- [`weechat`](https://weechat.org/)
- [`irssi`](https://irssi.org/)
these have quite a steep learning curve with these as you need to learn and remember commands and shortcuts for navigating around the interface. you may be able to find some good guides for using any of the clients on the internet.
one of the best reasons for connecting to irc on south london is that you can leave your client running so that when you leave come back, you can read messages that were sent to you while you were away. you can do this by running your client within `tmux` or `byobu`.
### windows
you can use these clients for windows:
- [hexchat](https://hexchat.github.io/) - free, oss
- [mirc](https://www.mirc.com/) - paid (30 day trial then ~£15)
### linux
you can use these clients for linux:
- [`weechat`](https://weechat.org/) - free, oss
- [`irssi`](https://irssi.org/) - free, oss
- [hexchat](https://hexchat.github.io/) - free, oss
### macos
you can use these clients for macos:
- [textual](https://www.codeux.com/textual/) - paid (free trial, then ~£6)
- [igloo irc](https://apps.apple.com/us/app/igloo-irc/id1331074069) - paid (~£4)
### on the go: mobile/tablet
you can use these clients for android:
- [irccloud](https://play.google.com/store/apps/details?id=com.irccloud.android) - free
- [androirc](https://play.google.com/store/apps/details?id=com.androirc) - free
you can use these clients for ios:
- [palaver](https://apps.apple.com/us/app/palaver-irc/id538073623) - paid (~£2)
- [igloo irc](https://apps.apple.com/us/app/igloo-irc/id1331074069) - paid (freemium, ~£5)
- [colloquy](https://apps.apple.com/us/app/colloquy-irc-client/id302000478) - paid (~£2)
### xmpp
use the [xmpp guide](./xmpp.html) to get setup. then you can connect to tilde.chat channels using the gateway:
```
#southlondon@biboumi.tilde.team
```
and other channels by replacing `#southlondon` with the channel you'd like to join.
### bouncer (advanced)
if you get into irc more, you might be interested in using an irc bouncer.
an irc bouncer is a 'middle-man' between you and an irc server. it connects to a network like a normal client. you connect to the bouncer, rather than the network directly. when you disconnect it will stay connected to the network and when you reconnect it will show you the messages that were sent while you were away.
one of the most popular bouncers is [`znc`](https://znc.in/).
## how to use irc
as with most things, you'll quickly pick up irc once you start using it, so connect in and start talking to people! this section should help you get the basics you need to start talking to people
on most clients, you'll have a chat log between you and the server, one for each channel you connect to and one for each person that you private message.
the chat log between you and the server will show connection status and the servers motd, which is a message welcoming you to the server. you may also get some broadcasts to this log such as maintaince warnings and things. you probably won't be in there a great deal though.
### channels
channels are a place for sending messages about a particular topic. each channel starts with #.
when you connect to a channel, you'll be shown it's topic which is a message that usually says what the channel is for, and perhaps some information or rules about things that go on in that channel. any messages you send will be sent to everyone in the channel. you may have a list of users as well, some users might have a symbol infront of their name, here is what they mean.
- `~` **owner** - this is the person that owns that particular channel
- `&` **admin** - this is someone who has been given additional privileges by the owner, they usually keep things in order
- `@` **operator** - this is similar to an admin, but with slightly lower privileges
- `+` **voiced** - this is signifies someone who is a favoured person, usually someone who is trusted
### chatting
when chatting, message you send will be sent to everyone in the channel, you can mention people by just including their name. if you are specifically talking to somebody, you should start your message with their name and a colon like this:
<pre><code><i>&lt;alice&gt;</i> how do i join a channel?
<i>&lt;chris&gt;</i> tea is the best
<i>&lt;bob&gt;</i> <b>alice:</b> you can use /join
</code></pre>
### commands
there are a couple of basic commands that are worth knowing.
- `/join #channel` - join a given channel, if you're using a client with a gui there might be a button to do this
- `/leave` - leave the channel that you are currently on.
- `/msg name message` - send someone a private message.
- `/nick name` - change your nickname to something else.
### services
most irc servers have services, these are special bots that give you privileges and protection.
#### protecting your nickname
one of the most important services is nickserv which is used to protect your nickname so that other people don't accidentally use it.
1. make sure you are using the nickname you want to register, if not use `/nick name` to change it.
2. send the command `/msg NickServ REGISTER password you@example.com` making sure to choose a secure password and putting in your email. your email is used for recovery purposes and your password is used to identify yourself when you login with your nickname.
3. when you login, send the command `/msg NickServ IDENTIFY name password` to recover your registered nickname. on some irc networks you will not be able to speak with a registered nickname until you identify yourself.
**note:** rather than talking to nickserv when you login, your client might let you setup sasl where you can send your password when you connect. if your client supports it, your username will be your nickname and your password will be the one you setup with nickserv.
### bots
some irc networks or channels might have automated users called bots. these usually provide a useful feature to a channel, such as notifications or link previews. sometimes they will be given voiced permission (i.e. their name will start with a +) to help you distinguish them from normal users.
the main bot on tilde.chat is tildebot. you can see which commands you can send them by using `/msg tildebot help`. it will also reply to commands in channels if you put a comma in front of your command, for example `,dns southlondon.cc`. you'll also notice if you send a link, it may reply with the title of the page you send.
## that's it
that's a basic introduction to irc, like i said, the best way to learn is by getting involved and starting to talk to people. everyone on tilde.chat is friendly so don't worry about doing anything wrong. if you have any questions, send them in `#meta` or `#southlondon`.

60
wiki/login.md Normal file
View File

@ -0,0 +1,60 @@
---
title: logging in
subtitle: "how to get into your account"
author: cark
date: 2021-03-09
color: orange
---
this guide is split into three parts:
- [Windows](#windows)
- [MacOS + Linux](#macos-and-linux)
- [Using the webterm](#using-the-webterm)
# Windows
there are many many ways to connect to an SSH server on Windows, here's a sample of some of them.
### the fastest: via powershell
the fastest way to get started on south london using Windows is via Powershell. the latest versions of Windows 10 include an `ssh` binary that you can use to connect to servers such as southlondon.cc.
to connect, just open up a powershell window and type
```powershell
ssh <your username>@southlondon.cc
```
if your keys are in a weird place, append `-i <path to your private key>` to make sure ssh can see them.
if you see a warning asking you to verify the fingerprint, just type 'yes' and it'll connect you up to the server. congrats! you're now connected to south london.
### the unix-y-ist: cmder + git bash
getting cmder is pretty easy, just head on down to [cmder.net]() and click 'Download Full'. the full download includes Git Bash, which emulates the bash command line inside windows. just unzip the folder and double click `Cmder.exe`.
now just run this command to connect
```bash
ssh <your username>@southlondon.cc
```
<!--syntax highlighting seems to fuck this up huh -->
if you haven't already used cmder to generate your keys, you'll need to append `-i <path to your private key>` to make sure ssh can see them.
say yes if it asks you to verify the fingerprint. if all goes well, you should be dumped into a prompt, you can now do whatever you need to do.
# macOS and linux
crack open a terminal and run
```
ssh <your username>@southlondon.cc
```
if your ssh key is in a nonstandard place, you'll also need to append `-i <ssh private key path>`.
good job! you're in.
# using the webterm
if you're having trouble getting set up, you can use the webterm to login.
just click webterm on the homepage and type in your username and password.
# all finished?
just type `exit` or press `CTRL+D` to sever your connection.
# you might want to take a look at these too.
- [fun ssh tricks to save a bit of time](/wiki/ssh.html)

19
wiki/meta.md Normal file
View File

@ -0,0 +1,19 @@
---
title: fun things to say in \#meta
author: cark
date: 2021-03-14
---
if #meta is too quiet for you liking, try these conversation starters to guarantee fruitful discourse.
- `・゜゜・。。・゜゜\_o< QUACK!`
- "gemini is really bad"
- anything positive about systemd
- `/quit`
- any sentance containing the phrase "time zones"
- any opinion about anton's website
- anything positive about electron
- any bot command
- mention any current event
- "bruh"
- hey guys i need help with `<thing that is clearly documented in manpages>`
- "why" <!-- ??? -->

76
wiki/ssh.md Normal file
View File

@ -0,0 +1,76 @@
---
title: ssh tips and tricks
subtitle: impress your friends and coworkers with these epic ssh tips !!!
author: cark
date: 2021-03-13
---
ssh seems really easy to use, because it is. but could it be easier to use? let's find out!
# making config files
when using ssh, you might find yourself rewriting the same command over and over again, you could press the up arrow 100+ times to find the command that you were using the other day, or you could write a config file. your personal ssh config file is stored in ~/.ssh/config.
ssh config files have this stucture:
```
Host my_server
<keyword> <value>
<keyword> <value>
<keyword> <value>
<keyword> <value>
Host my_other_server
<keyword> <value>
<keyword> <value>
Host * # applied to all connections
<keyword> <value>
```
as with most things, `*` represents a wildcard (i.e. `192.168.0.*` will match everything from `192.168.0.0` to `192.168.0.255`) and `?` matches one character from 0-9 (i.e. `192.168.0.?` will match everything from `192.168.0.0` to `192.168.0.9`). you can read more about it in the ssh_config man page (`man ssh_config`). all possible keywords are also listed in the ssh_config man page.
okay! now, how can we apply this knowledge to something useful? let's have an example.
say you're trying to log in to `cark.website` as `giovanni` on port `24`, you would use this command:
```bash
$ ssh giovanni@cark.website -p 24
```
wow! what a pain to write! luckily we can use the config file to make this much more convenient to write. first, open up `~/.ssh/config` using your favourite editor. now, we'll define a host
```
Host site
```
now, let's add some options
```
HostName cark.website
User giovanni
Port 24
```
hopefully, all those options should be fairly easy to understand, `HostName` is the host you want to connect to, `User` is the user you want to log in as and `Port` is the port you want to use.
now, we'll be left with this file
```
Host site
HostName cark.website
User giovanni
Port 24
```
finally, save it and test it out.
```
$ ssh site
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-51-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun Mar 14 00:03:14 UTC 2021
System load: 0.0 Users logged in: 0
Usage of /: 7.7% of 24.06GB IPv4 address for eth0: 128.62.125.163
Memory usage: 24% IPv4 address for eth0: 10.16.0.6
Swap usage: 0% IPv4 address for eth1: 10.106.0.3
Processes: 110
0 updates can be installed immediately.
0 of these updates are security updates.
*** System restart required ***
Last login: Sat Mar 13 18:07:30 2021 from 91.110.54.64
giovanni@cark:~$
```
as you can see, ssh has seen our config and used it to fill in all the details for us, which has saved us a few frames that we can use later on.
this is only the tip of the iceberg (well, more like the middle of the iceberg, there aren't *that* many things you can do with you ssh config file), go search up some examples on the internet and enjoy the extra seconds of your life not spent typing in ssh commands.

29
wiki/thingstomake.md Normal file
View File

@ -0,0 +1,29 @@
---
title: cool things to make
subtitle: inspiration in a single page
author: jakew
date: 2021-04-06
color: orange
---
the best bit about being on the same computer as a bunch of other people is that it is super easy to share things that you make. things you make will help to inspire others who will end up making cool things that you can use. you get the idea.
you could also collaborate with other people, after all you are on a shared computer.
## web things
one of the best places to make things is in your `public_html` folder which anyone in the world can see.
- pimp your webpage, go for a theme, perhaps retro or similar to the south london pages
- write blog about cool things you make or do
- make an interactive project, perhaps something that brings people together or add their own content
- art
## scripts
another great place to make things is just on south london itself, make a script in your home directory and give it permissions so that others can run it.
- games
- irc bots and games
- more art
**bonus thing you can do:** add to this list :)

20
wiki/xmpp.md Normal file
View File

@ -0,0 +1,20 @@
---
title: using xmpp
subtitle: it's like email but not really
author: cark
date: 2021-03-14
---
if you didn't know already, xmpp is an instant messaging protocol that let's you talk to people on the internet, even if they're using a different server than you.
to claim your account, run `/var/scripts/xmpp-register`, type in a password and you're set!
```
giovanni@southlondon:/var/scripts$ /var/scripts/xmpp-register
Creating account for giovanni
This script will create an XMPP account for you on southlondon.cc
Enter a password:
User giovanni@southlondon.cc successfully registered
```
now, you can use that xmpp address to log in using your favourite xmpp client. if you don't have a favourite already, check out [gajim](https://gajim.org/) for windows/linux or [conversations](https://f-droid.org/en/packages/eu.siacs.conversations/) on android.
our server is [mostly compliant](https://compliance.conversations.im/server/southlondon.cc/) with the standards, so hopefully everything will work fine.