Site usability update #7
58 changed files with 2435 additions and 2271 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
.vscode
|
.vscode
|
||||||
build/
|
build/
|
||||||
|
node_modules/
|
||||||
|
|
13
README
13
README
|
@ -1,13 +0,0 @@
|
||||||
Website for Cyberia.
|
|
||||||
|
|
||||||
https://cyberia.club
|
|
||||||
|
|
||||||
to build the site, try ./make ;0
|
|
||||||
|
|
||||||
to install it on a webserver, do something like
|
|
||||||
|
|
||||||
-> mkdir -p /var/www/cyberia.club
|
|
||||||
-> git clone https://git.cyberia.club/services/website \
|
|
||||||
/var/www/cyberia.club
|
|
||||||
-> echo '* * * * * root /var/www/cyberia.club/cronjob' > \
|
|
||||||
/etc/cron.d/website-sync
|
|
20
README.md
Normal file
20
README.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Website for Cyberia.
|
||||||
|
|
||||||
|
https://cyberia.club
|
||||||
|
|
||||||
|
currently being rebuilt for accessibility and other reasons.
|
||||||
|
|
||||||
|
## to do:
|
||||||
|
- double check that crypto wallet addresses are correct!!
|
||||||
|
- fix contradictory style rules, notably in the donate widgets
|
||||||
|
- update & test cronjob
|
||||||
|
|
||||||
|
|
||||||
|
# setup
|
||||||
|
make sure to fetch dependencies first: `npm install`
|
||||||
|
|
||||||
|
## development
|
||||||
|
run `npm run develop`
|
||||||
|
|
||||||
|
## deployment
|
||||||
|
run `npm run build`. the generated site should be in `build/`
|
3
cronjob
3
cronjob
|
@ -7,6 +7,7 @@ cur=$(git rev-list HEAD -n 1)
|
||||||
|
|
||||||
if [ "$prev" != "$cur" ]; then
|
if [ "$prev" != "$cur" ]; then
|
||||||
git pull
|
git pull
|
||||||
./make
|
npm clean-install
|
||||||
|
npm run build
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
132
cyberia.css
132
cyberia.css
|
@ -1,132 +0,0 @@
|
||||||
a, a:hover, a:active, a:visited {
|
|
||||||
color: #b5bd68;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
color: #c5c8c6;
|
|
||||||
font: calc(0.40em + 1vmin) monospace;
|
|
||||||
text-align: center;
|
|
||||||
overflow-y: scroll;
|
|
||||||
background-color: #241e1e;
|
|
||||||
}
|
|
||||||
pre>pre {
|
|
||||||
text-align:left;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
max-width:57ch;
|
|
||||||
display:block;
|
|
||||||
height:auto;
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
@media(prefers-color-scheme:dark) {
|
|
||||||
body{
|
|
||||||
background:#000; color:#fff
|
|
||||||
}
|
|
||||||
a{
|
|
||||||
color:#6CF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* css from https://liberapay.com/cybertrez/widgets/button.js, see donate.txt */
|
|
||||||
html > body .liberapay-btn {
|
|
||||||
background-color: #f6c915;
|
|
||||||
border-radius: 4px;
|
|
||||||
color: #1a171b;
|
|
||||||
display: inline-block;
|
|
||||||
font-family: Helvetica Neue,Helvetica,sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 700;
|
|
||||||
line-height: 22px;
|
|
||||||
padding: 5px 7px 3px;
|
|
||||||
position: relative;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
html > body .liberapay-btn:hover {
|
|
||||||
background-color: #fbce1a;
|
|
||||||
}
|
|
||||||
.liberapay-btn > svg {
|
|
||||||
position: absolute;
|
|
||||||
left: 7px;
|
|
||||||
top: 7px;
|
|
||||||
}
|
|
||||||
.liberapay-btn > span {
|
|
||||||
margin-left: 19px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.btcpay-form { flex-direction: row; } .btcpay-form--block { flex-direction: column; }
|
|
||||||
.btcpay-form .submit {
|
|
||||||
margin-left: 15px;
|
|
||||||
padding: 4px 10px;
|
|
||||||
font-size: 17px;
|
|
||||||
font-weight: bold;
|
|
||||||
font: calc(0.40em + 1vmin) monospace;
|
|
||||||
|
|
||||||
-moz-appearance: none;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
background: transparent;
|
|
||||||
border-radius: 3px;
|
|
||||||
border:1px solid transparent;
|
|
||||||
color: #c5c8c6;
|
|
||||||
|
|
||||||
}
|
|
||||||
.btcpay-form--block select {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
.btcpay-form .btcpay-custom-container{
|
|
||||||
|
|
||||||
display: inline-flex; align-items: center; justify-content: center; flex-direction: row;
|
|
||||||
}
|
|
||||||
.btcpay-custom {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.btcpay-form select {
|
|
||||||
-moz-appearance: none;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
background: transparent;
|
|
||||||
border:1px solid transparent;
|
|
||||||
display: block;
|
|
||||||
border-radius: 3px;
|
|
||||||
border-left: 0;
|
|
||||||
|
|
||||||
padding: 1px;
|
|
||||||
margin-left: 2px;
|
|
||||||
margin-right: auto;
|
|
||||||
font-size: 19px;
|
|
||||||
cursor: pointer;
|
|
||||||
font: calc(0.40em + 1vmin) monospace;
|
|
||||||
color: #c5c8c6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#btcpay-input-price { -moz-appearance: none; -webkit-appearance: none;
|
|
||||||
border: none;
|
|
||||||
box-shadow: none;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 24px;
|
|
||||||
margin: auto;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 4px;
|
|
||||||
|
|
||||||
background: transparent;
|
|
||||||
border:1px solid transparent;
|
|
||||||
font: calc(0.40em + 1vmin) monospace;
|
|
||||||
color: #c5c8c6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btcpay-form select,
|
|
||||||
#btcpay-input-price,
|
|
||||||
.btcpay-form .submit {
|
|
||||||
border-color: #c5c8c6;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#btcpay-input-price::-webkit-outer-spin-button, {
|
|
||||||
-webkit-appearance: none; margin: 0;
|
|
||||||
}
|
|
27
main.js
Normal file
27
main.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
// pseudocode:
|
||||||
|
// 1. initialize build/
|
||||||
|
// 2. for *.md under site/
|
||||||
|
// - render the markdown
|
||||||
|
// - substitute it into template.html
|
||||||
|
// - save output to build/
|
||||||
|
// 3. copy static/* into build/
|
||||||
|
|
||||||
|
const { marked } = require('marked')
|
||||||
|
const { rimrafSync } = require('rimraf')
|
||||||
|
const fs = require('fs')
|
||||||
|
|
||||||
|
// Step 1
|
||||||
|
rimrafSync("build")
|
||||||
|
fs.mkdirSync("build")
|
||||||
|
|
||||||
|
// Step 2
|
||||||
|
let template = fs.readFileSync("template.html", "utf8")
|
||||||
|
fs.readdirSync("./site").filter(fn => fn.endsWith(".md")).forEach((filename) => {
|
||||||
|
let content = fs.readFileSync("site/"+filename, "utf8")
|
||||||
|
let rendered = template.replace("%%CONTENT%%", marked.parse(content))
|
||||||
|
let pagename = filename.replace(/\.md$/, "")
|
||||||
|
fs.writeFileSync("build/"+pagename+".html", rendered)
|
||||||
|
})
|
||||||
|
|
||||||
|
// Step 3
|
||||||
|
fs.cpSync("static", "build", { recursive:true })
|
82
make
82
make
|
@ -1,82 +0,0 @@
|
||||||
#!/bin/sh -e
|
|
||||||
#
|
|
||||||
# Simple static site builder.
|
|
||||||
|
|
||||||
cat <<EOF > /tmp/meow
|
|
||||||
<!doctype html>
|
|
||||||
<html lang=en>
|
|
||||||
<link href='data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Mt5V9jLebrYy3no2Mt5/9jLef/Yy3no2Mt5utjLeVcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoIwAwKCMAfSgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAfSgjADAAAAAAAAAAAAAAAADYy3lX2Mt569jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3nr2Mt5VwAAAAAAAAAAKCMAfSgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAH0AAAAAy6yMQNjLeffYy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5V7d8qbrAkpz42Mp5/tjLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/8mnj8K3fKnot3yp/8mmj//Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9C3hf+4fqjot3yp/7d8qf+8iaH/2Mt5/9jLef/Yy3n/2Mt5/9jKev/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9TCf/+4f6f/t3yp/7d8qf+3fKn/t3yp/9bFff/Yy3n/2Mt5/8qpjv+4fqj/xJuW/9jLef/Yy3n/2Mt5/9jLef/Bk5v/t3yp/7d8qf+3fKnot3yp/7d8qf/Mr4r/2Mt5/9C5hP+3fKn/t3yp/7d8qf/SvIL/2Mt5/9jLef/Ru4P/t3yp/7d8qf+3fKnot3ypurd8qf+3fKn/u4Wk/8imkP+6hKT/t3yp/7d8qf+3fKn/vYug/9bGfP/Yy3n/wpaZ/7d8qf+3fKn/t3ypurd8qVe3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+7haT/wJCd/7d8qf+3fKn/t3yp/7d8qVcAAAAAt3yp47d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qeMAAAAAAAAAALd8qVe3fKnrt3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qeu3fKlXAAAAAAAAAAAAAAAAt3ypV7d8qeO3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qeO3fKlXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3ypV7d8qbq3fKnot3yp/7d8qf+3fKnot3ypurd8qVcAAAAAAAAAAAAAAAAAAAAA8A8AAMADAACAAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAIABAADAAwAA8A8AAA==' rel=icon>
|
|
||||||
<title>Cyberia Computer Club</title>
|
|
||||||
<meta charset=utf-8>
|
|
||||||
<meta name=viewport content="width=device-width,initial-scale=1.0">
|
|
||||||
<meta name=Description content="Cyberia Computer Club">
|
|
||||||
<style>
|
|
||||||
%%CAPSUL_CSS%%
|
|
||||||
</style>
|
|
||||||
<pre>
|
|
||||||
|
|
||||||
<a href=/><b>Cyberia</b></a> <a href=/culture>Culture</a> <a href=https://blog.cyberia.club/read>Blog</a> <a href=/calendar>Calendar</a> <a href=/donate>Donate</a> <a href=/matrix>Matrix (Chat)</a> <a href=/mumble>Mumble</a>
|
|
||||||
|
|
||||||
<a href="https://capsul.org">Capsul -></a> <a href="https://nullhex.com">Nullhex -></a> <a href="https://git.cyberia.club">Git -></a> <a href="https://wiki.cyberia.club">Wiki -></a> <a href="https://stream.cyberia.club">Stream -></a>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
%%CONTENT%%
|
|
||||||
|
|
||||||
|
|
||||||
(c) Attribution-ShareAlike 4.0 International
|
|
||||||
Cyberia Computer Club 2020-∞
|
|
||||||
|
|
||||||
|
|
||||||
<a href="%%SOURCE%%">View page source</a>
|
|
||||||
|
|
||||||
|
|
||||||
</pre></pre>
|
|
||||||
EOF
|
|
||||||
|
|
||||||
rm -f build/*.txt build/*.html
|
|
||||||
mkdir -p build
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# Iterate over each file in the source tree under /site/.
|
|
||||||
(cd ../si*; find . -type f -a -not -path ./templates/\*) |
|
|
||||||
|
|
||||||
while read -r page; do
|
|
||||||
mkdir -p "${page%/*}"
|
|
||||||
|
|
||||||
case $page in
|
|
||||||
*.txt)
|
|
||||||
|
|
||||||
sed -E "s|([^=][^\'\"])(https[:]//[^ )]*)|\1<a href='\2'>\2</a>|g" \
|
|
||||||
"../site/$page" |
|
|
||||||
|
|
||||||
# link https
|
|
||||||
sed -E "s|^(https[:]//[^ )]{32})([^ )]{3,1000})([^ )]{15})|<a href='\0'>\1...\3</a>|g" |
|
|
||||||
sed -E "s|^(https[:]//[^ )]{1,50})|<a href='\0'>\0</a>|g" |
|
|
||||||
# link mailto
|
|
||||||
sed -E "s|mailto:([^ ]*)|<a href='mailto:\1'>\1</a>|g" |
|
|
||||||
# color hexcodes
|
|
||||||
sed -E 's|(#[a-f0-9]{6})|<font color="\1">\1</font>|g' |
|
|
||||||
# color cyberia
|
|
||||||
sed -E 's@(Cyberia('"'"'s)?n?)([^A-Za-z0-9_/-])@<font color="#b294bb">\1</font>\3@g' |
|
|
||||||
sed -E 's|CYBERIA|<font color="#b294bb">CYBERIA</font>|g' |
|
|
||||||
|
|
||||||
sed '/%%CONTENT%%/r /dev/stdin' /tmp/meow |
|
|
||||||
sed '/%%CONTENT%%/d' |
|
|
||||||
sed "s|%%CAPSUL_CSS%%|$(cat ../cyberia.css | tr '\n' ' ')|g" |
|
|
||||||
|
|
||||||
sed "s %%SOURCE%% /${page##./} " \
|
|
||||||
> "${page%%.txt}.html"
|
|
||||||
|
|
||||||
ln -f "../site/$page" "$page"
|
|
||||||
|
|
||||||
printf '%s\n' "CC $page"
|
|
||||||
;;
|
|
||||||
|
|
||||||
# Copy over any images or non-txt files.
|
|
||||||
*)
|
|
||||||
cp "../site/$page" "$page"
|
|
||||||
|
|
||||||
printf '%s\n' "CP $page"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
1736
package-lock.json
generated
Normal file
1736
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
26
package.json
Normal file
26
package.json
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"name": "website",
|
||||||
|
"version": "2.0.0",
|
||||||
|
"description": "Website for Cyberia.",
|
||||||
|
"main": "main.js",
|
||||||
|
"scripts": {
|
||||||
|
"build": "node main.js",
|
||||||
|
"develop": "concurrently \"npm run watch\" \"npm run serve\"",
|
||||||
|
"serve": "http-server ./build",
|
||||||
|
"watch": "chokidar \"static/\" \"site/\" \"template.html\" \"main.js\" -c \"npm run build\""
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.cyberia.club/cyberia/website"
|
||||||
|
},
|
||||||
|
"license": "CC-BY-SA-4.0",
|
||||||
|
"dependencies": {
|
||||||
|
"marked": "^11.2.0",
|
||||||
|
"rimraf": "^5.0.5"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"chokidar-cli": "^3.0.0",
|
||||||
|
"concurrently": "^8.2.2",
|
||||||
|
"http-server": "^14.1.1"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"m.server": "matrix.cyberia.club"
|
|
||||||
}
|
|
3
site/404.md
Normal file
3
site/404.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# 404
|
||||||
|
|
||||||
|
## PAGE NOT FOUND.
|
|
@ -1,7 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| 404 |
|
|
||||||
| |
|
|
||||||
| PAGE NOT FOUND. |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
|
@ -1,66 +0,0 @@
|
||||||
COVIDaware MN app investigation
|
|
||||||
|
|
||||||
|
|
||||||
starless 2020-11-27
|
|
||||||
|
|
||||||
Greetings to Netizens and Minnesotans!
|
|
||||||
|
|
||||||
It's your friendly neighborhood Cyberians here with an
|
|
||||||
update on the new COVIDaware app as announced by the
|
|
||||||
Governor.
|
|
||||||
|
|
||||||
You might be wondering: "Hey, how bullshit is this app?
|
|
||||||
Will it track me when I sleep, will it tell the cops
|
|
||||||
where I am for no good reason, will it take my firstborn
|
|
||||||
son?"
|
|
||||||
|
|
||||||
We were wondering these things, too. We're hard at work
|
|
||||||
finding answers to all these questions and more, and due
|
|
||||||
to the urgent nature of the pandemic, wanted to give you
|
|
||||||
an update.
|
|
||||||
|
|
||||||
Recently, the state of Minnesota released an app to help
|
|
||||||
manage COVID-19 contact tracing, The COVIDaware MN app is
|
|
||||||
based on an open source foss app for something called
|
|
||||||
'contact tracing', which helps people backtrack the
|
|
||||||
places they've been in the last two weeks, should they
|
|
||||||
later learn that they were contagious but pre-symptomatic
|
|
||||||
for COVID-19. Due to the delicate nature of this sort of
|
|
||||||
app, we reached out to the folks who wrote the open
|
|
||||||
source app that COVIDaware MN is based on, and got a
|
|
||||||
handful of helpful replies back.[1] We also reached out
|
|
||||||
to the state of Minnesota, but haven't gotten a response
|
|
||||||
yet.[2]
|
|
||||||
|
|
||||||
The app that COVIDaware is based on is very
|
|
||||||
privacy-friendly and the company behind it seems to have
|
|
||||||
good values, but we still don't know exactly how much
|
|
||||||
that source code was customized before it was released
|
|
||||||
for use by Minnesotans. It's likely that the state's IT
|
|
||||||
folks just added the appropriate assets to customize
|
|
||||||
links to the local health department and that sort of
|
|
||||||
thing, but we won't know that for sure without a response
|
|
||||||
to our inquiry. There's a chance they've inadvertently
|
|
||||||
done more than that, too-- we'd love to read over the
|
|
||||||
source code and check the modifications the state of
|
|
||||||
Minnesota made to the FOSS base app.
|
|
||||||
|
|
||||||
We'll let you know when we hear back from the state, but
|
|
||||||
for now, the base app looks very promising.
|
|
||||||
|
|
||||||
Additionally, should it become feasible (likely dependent
|
|
||||||
on the state of Minnesota releasing the source code for
|
|
||||||
the app), we're already hoping to be an alternative
|
|
||||||
source for the official app, should you prefer something
|
|
||||||
that's built on hardware not managed by the state of
|
|
||||||
Minnesota.
|
|
||||||
|
|
||||||
We hope to hear back from our fair state government soon,
|
|
||||||
and until then, wish you all a warm & safe holiday season!
|
|
||||||
|
|
||||||
[1]:
|
|
||||||
https://lists.cyberia.club/~cyberia/etc/%3Cfa938b37178d184b7367d33db83ec4f3%40c3f.net%3E
|
|
||||||
[2]:
|
|
||||||
https://lists.cyberia.club/~cyberia/etc/%3C597a7c3d-2be8-ba0a-dd89-f1d32354b5b4%40riseup.net%3E
|
|
||||||
|
|
||||||
source code: https://github.com/Path-Check/gaen-mobile
|
|
|
@ -1,165 +0,0 @@
|
||||||
Subject: How to write a blog post for Cyberia
|
|
||||||
From: j3s
|
|
||||||
Date: 25/02/2020
|
|
||||||
|
|
||||||
Hi everyone! The new site design is live! Mad inspiration
|
|
||||||
taken from https://k1ss.org
|
|
||||||
|
|
||||||
In this blog post, I'll be walking through how to add a
|
|
||||||
new blog post to the site, but first: specific
|
|
||||||
requirements for formatting your blog post.
|
|
||||||
|
|
||||||
|
|
||||||
Tools
|
|
||||||
============
|
|
||||||
* git and git send-email (https://git-send-email.io/)
|
|
||||||
* a text editor
|
|
||||||
|
|
||||||
|
|
||||||
Requirements (in the form of commandments)
|
|
||||||
============
|
|
||||||
* thou post shalt be written in plain text
|
|
||||||
> posts appear exactly as written
|
|
||||||
* no line of thy post shalt be wider than 57 characters
|
|
||||||
> this breakeths the smol phones
|
|
||||||
> this rule isn't firm, but is a best practice
|
|
||||||
|
|
||||||
So, with the above in your head, you're ready to write a
|
|
||||||
blog post. You have questions! Naturally. Let me
|
|
||||||
preemptively answer them.
|
|
||||||
|
|
||||||
|
|
||||||
+==================+
|
|
||||||
| WHY NOT MARKDOWN?|
|
|
||||||
+==================+
|
|
||||||
because everybody knows
|
|
||||||
plain text
|
|
||||||
|
|
||||||
|
|
||||||
+====================+
|
|
||||||
| WHAT ABOUT TABLES? |
|
|
||||||
+====================+
|
|
||||||
the beauty of plain ascii is that
|
|
||||||
you get to decide how to do your own
|
|
||||||
tables.
|
|
||||||
|
|
||||||
for example:
|
|
||||||
|
|
||||||
+------------------------------------+---------+
|
|
||||||
| Col1 | Col2 |
|
|
||||||
+------------------------------------+---------+
|
|
||||||
| trash | Value 2 |
|
|
||||||
| garbage | cols |
|
|
||||||
| This is a pretty traditional table | |
|
|
||||||
+------------------------------------+---------+
|
|
||||||
|
|
||||||
or:
|
|
||||||
|
|
||||||
┌──────────────────────────────────┬─────────┬
|
|
||||||
│ Col1 │ Col2 │
|
|
||||||
├──────────────────────────────────┼─────────┼
|
|
||||||
│ Value 1 │ Value 2 │
|
|
||||||
│ Separate │ cols │
|
|
||||||
│ This is a row with only one cell │ │
|
|
||||||
└──────────────────────────────────┴─────────┴
|
|
||||||
|
|
||||||
or, simply:
|
|
||||||
|
|
||||||
random text header
|
|
||||||
---------------------------------- --------
|
|
||||||
awihfiweoifj owiefj w strange
|
|
||||||
Big blah blah time things
|
|
||||||
Blah blah blah
|
|
||||||
|
|
||||||
The choice is yours! Just keep them under 57 chars wide!
|
|
||||||
If you need wider tables, consider linking to an external
|
|
||||||
source or linking to a picture.
|
|
||||||
|
|
||||||
|
|
||||||
---THE PROCESS---
|
|
||||||
Before you put text to document, let's make things easy
|
|
||||||
on you - I've written a script to generate a new blog
|
|
||||||
post! It's very simple. Let's go through the steps
|
|
||||||
together.
|
|
||||||
|
|
||||||
-> cd ~/projects
|
|
||||||
-> git clone git@cyberia.club:services/website
|
|
||||||
-> cd website/blog
|
|
||||||
-> ./mkblog title-of-blog-post
|
|
||||||
-> ls -l # discover the new blog posts name
|
|
||||||
|
|
||||||
Now you can open the new blog post in the text editor of
|
|
||||||
your choice! Proceed with writing it.
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
...
|
|
||||||
..
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
..
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
..
|
|
||||||
..
|
|
||||||
|
|
||||||
.
|
|
||||||
..
|
|
||||||
|
|
||||||
|
|
||||||
......
|
|
||||||
|
|
||||||
Now that you're finished writing, it's time to submit
|
|
||||||
your blog to a maintainer for approval! The simplest way
|
|
||||||
of doing this is via email. We use the process built into
|
|
||||||
git for this - git-send-mail.
|
|
||||||
|
|
||||||
First, if you aren't subscribed to the misc@c3f.net
|
|
||||||
mailing list yet, be sure to subscribe.
|
|
||||||
|
|
||||||
mailto:ml@c3f.net?subject=subscribe%20misc
|
|
||||||
|
|
||||||
After you have received confirmation that you were
|
|
||||||
subscribed to the mailing list, send us a patch!
|
|
||||||
|
|
||||||
-> git add .
|
|
||||||
-> git commit -m 'Add blog post about unicorns'
|
|
||||||
-> git send-email --to="misc@c3f.net" HEAD^
|
|
||||||
|
|
||||||
Tah dah! That's it, your patch has been submitted.
|
|
||||||
|
|
||||||
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
~~LA FINALE~~
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
Now that you have submitted your own blog post, it is
|
|
||||||
time to wrap up!
|
|
||||||
|
|
||||||
I've used several different header and writing styles
|
|
||||||
throughout this document to give you an idea of how you
|
|
||||||
can write your own posts. Hopefully that is helpful and
|
|
||||||
inspiring!
|
|
||||||
|
|
||||||
I hope that you will see that plain text can be a
|
|
||||||
liberating and artistic format! The only limitation is
|
|
||||||
the character width :]
|
|
||||||
|
|
||||||
Now go forth and write your own post about unicorns, or
|
|
||||||
games, or something even slightly related to Cyberian
|
|
||||||
interests, (like how narwhals don't exist) and submit it!
|
|
||||||
Make a little project out of it! It's a good way to
|
|
||||||
broadcast branch happenings, meetings, or personal
|
|
||||||
projects. Or talk about your new RPG system, or
|
|
||||||
philosophy, or opinion!
|
|
||||||
|
|
||||||
That's all for now. As always, this post is the result of
|
|
||||||
much thought, from your humble head of services.
|
|
||||||
|
|
||||||
Love,
|
|
||||||
|
|
||||||
|
|
||||||
^(;,;)^ j3s ^(;,;)^
|
|
|
@ -1,103 +0,0 @@
|
||||||
Subject: Simple trusted compute: Announcing Capsul
|
|
||||||
From: j3s
|
|
||||||
Date: 11/03/2020
|
|
||||||
|
|
||||||
+------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| ANNOUNCING CAPSUL |
|
|
||||||
| |
|
|
||||||
+------------------------------------------------------+
|
|
||||||
|
|
||||||
https://capsul.org
|
|
||||||
|
|
||||||
Over the last year we've moved at light speed. Cyberia
|
|
||||||
Computer Club is now an entity. A formal nonprofit
|
|
||||||
organization with a democratic structure.
|
|
||||||
|
|
||||||
We organized and bought a server. We crowdfunded, and
|
|
||||||
spent countless nights testing different configurations.
|
|
||||||
We strived to make the service very simple, and very
|
|
||||||
maintainable. We're very proud of what we're announcing
|
|
||||||
today. We think it's a very unique service.
|
|
||||||
|
|
||||||
Capsul is a service that provides people with compute in
|
|
||||||
the form of virtual machines. All machines run on very
|
|
||||||
fast solid state storage, and have direct T3 network
|
|
||||||
access on a shared link. We do not collect user data
|
|
||||||
(besides your email address), and discard as many logs as
|
|
||||||
we feasibly can. Every VM is automatically backed up
|
|
||||||
A more official privacy policy and TOS are coming soon.
|
|
||||||
|
|
||||||
To get you excited, here's a list of initially supported
|
|
||||||
operating systems:
|
|
||||||
|
|
||||||
operating system supported
|
|
||||||
---------------- ---------
|
|
||||||
alpine yes
|
|
||||||
ubuntu18 yes
|
|
||||||
debian10 yes
|
|
||||||
centos7 yes
|
|
||||||
centos8 yes
|
|
||||||
OpenBSD 6.6 planned
|
|
||||||
GuixSD 1.0.1 planned
|
|
||||||
Windows no, never
|
|
||||||
AIX whyyyy
|
|
||||||
|
|
||||||
Our prices start at ~$5.99 a month:
|
|
||||||
|
|
||||||
type yearly cost cpus memory ssd
|
|
||||||
------ ----------- ---- ------ ----
|
|
||||||
f1-s $70 1 512M 10G
|
|
||||||
f1-m $120 1 1024M 25G
|
|
||||||
f1-l $240 1 2048M 55G
|
|
||||||
f1-x $480 2 4096M 80G
|
|
||||||
f1-xx $960 4 8096M 160G
|
|
||||||
f1-xxx $1920 8 16G 320G
|
|
||||||
|
|
||||||
Capsul is very easy to use - no signup or registration is
|
|
||||||
necessary. Simply send an email to capsul@c3f.net with
|
|
||||||
your requirements, and you'll have VMs that you can ssh
|
|
||||||
into within a day or so.
|
|
||||||
|
|
||||||
Capsul machines are currently paid for on a yearly basis,
|
|
||||||
and we'll make every effort to remind you of payment
|
|
||||||
before your year expires. Capsul is very price-similar to
|
|
||||||
services like Vultr or Digital Ocean.
|
|
||||||
|
|
||||||
> What sets Capsul apart?
|
|
||||||
|
|
||||||
Simply: our organization and our morality.
|
|
||||||
|
|
||||||
Cyberia Computer Club values privacy, simplicity,
|
|
||||||
transparency, accessibility, and inclusion. We have no
|
|
||||||
shareholders, investors, or loaners, therefore every
|
|
||||||
change we make is directly beneficial to you. We actually
|
|
||||||
care about your experience, and it will only get better
|
|
||||||
with time - never worse.
|
|
||||||
|
|
||||||
We have a lot more coming for Capsul. The next planned
|
|
||||||
features include:
|
|
||||||
- private networking
|
|
||||||
- openbsd support
|
|
||||||
- monthly payments
|
|
||||||
- instant provisioning and decoms
|
|
||||||
- ipv6 support (with a reduced price instance type)
|
|
||||||
- a storage service (for those who want pictures)
|
|
||||||
|
|
||||||
That's all for now! Send us an email and get started with
|
|
||||||
Capsul today! :)
|
|
||||||
|
|
||||||
love,
|
|
||||||
|
|
||||||
|
|
||||||
j3s
|
|
||||||
|
|
||||||
|
|
||||||
additional resources;
|
|
||||||
|
|
||||||
Check out the Capsul website: https://capsul.org
|
|
||||||
Check out our bylaws here: https://cyberia.club/bylaws
|
|
||||||
Donate to the cause: https://cyberia.club/donate
|
|
||||||
All of our source code: https://git.cyberia.club
|
|
||||||
Chat with us on Matrix: #cyberia:cyberia.club
|
|
||||||
Chat with us on IRC: #cyberia on freenode
|
|
|
@ -1,198 +0,0 @@
|
||||||
Subject: Cyberia Services Update: 2020-04
|
|
||||||
From: j3s
|
|
||||||
Date: 01/05/2020
|
|
||||||
|
|
||||||
Ohai,
|
|
||||||
|
|
||||||
A lot has happened in services-land this month, and I'm
|
|
||||||
hoping to pack as much of it as I can into this email. I
|
|
||||||
will try to be brief, as there is a lot to cover. I'll
|
|
||||||
also probably miss some stuff, woops!
|
|
||||||
|
|
||||||
|
|
||||||
Capsul
|
|
||||||
======
|
|
||||||
|
|
||||||
We added many new subscribers and many new features to
|
|
||||||
Capsul this month, both technical and financial.
|
|
||||||
|
|
||||||
* OpenBSD 6.6 support
|
|
||||||
Hello puffy! We now fully support OpenBSD 6.6 as an
|
|
||||||
operating system choice on Capsul, and will support
|
|
||||||
future releases of OpenBSD as well.
|
|
||||||
|
|
||||||
* Streamlined BTC/XMR payments
|
|
||||||
Pay with bitcoin or monero? There is now a simple
|
|
||||||
payment processor you may use to make donations or pay
|
|
||||||
for Capsuls. See https://cyberia.club/donate for details.
|
|
||||||
|
|
||||||
* Guix System 1.1.0 support
|
|
||||||
Guix System support is very near completion! There is one
|
|
||||||
bug left to squash before it's available as a fully
|
|
||||||
supported option! :D
|
|
||||||
|
|
||||||
* IPv6-only support
|
|
||||||
Soon, you will be able to purchase IPv6-only Capsuls at
|
|
||||||
a $2 per month discount from IPv4 prices.
|
|
||||||
|
|
||||||
* Cheaper base prices
|
|
||||||
Pricing will very soon be heavily revised, and all
|
|
||||||
Capsuls will be cheaper. Existing customers will be
|
|
||||||
refunded the difference between the price they paid and
|
|
||||||
the new Capsul price.
|
|
||||||
|
|
||||||
* À la carte disk size selection
|
|
||||||
- All instances will start with a fully backed-up 10GB
|
|
||||||
root volume.
|
|
||||||
- We will be capable of taking variable disk size
|
|
||||||
requests at 0.2c per GB per month! You are no longer
|
|
||||||
stuck with the disk size your instance came with.
|
|
||||||
- These additional disks are not covered by our backup
|
|
||||||
schedule, otherwise we'd run out of disk space almost
|
|
||||||
instantly :D we may offer a paid backup system for these
|
|
||||||
additional disks in the future.
|
|
||||||
|
|
||||||
A huge thank you to our early Capsul users, I hope that
|
|
||||||
everything has been running smoothly for you.
|
|
||||||
|
|
||||||
Nullhex
|
|
||||||
=======
|
|
||||||
|
|
||||||
I have not focused on Nullhex much throughout April, but
|
|
||||||
I do have some exciting ideas to share. Hit me up if
|
|
||||||
you're interested.
|
|
||||||
|
|
||||||
* Reputation
|
|
||||||
Nullhex emails are no longer marked as spam by
|
|
||||||
Protonmail or Gmail, our domain reputation has grown
|
|
||||||
substantially.
|
|
||||||
|
|
||||||
|
|
||||||
Matrix
|
|
||||||
======
|
|
||||||
|
|
||||||
Matrix has cemented itself as the center of our
|
|
||||||
communication platform. If you aren't there already, feel
|
|
||||||
free to register at https://matrix.cyberia.club and join
|
|
||||||
the conversation.
|
|
||||||
|
|
||||||
If you don't like Matrix for some other reason, email me
|
|
||||||
directly and we can figure out a way to bridge you into
|
|
||||||
our conversations.
|
|
||||||
|
|
||||||
* Backend updated
|
|
||||||
The backend has been updated & now supports cross-signing.
|
|
||||||
* Bridging
|
|
||||||
We are considering bridging specific Matrix rooms with
|
|
||||||
specific Discord rooms; more to come on this front.
|
|
||||||
|
|
||||||
|
|
||||||
Riot
|
|
||||||
====
|
|
||||||
|
|
||||||
* End to end encryption by default
|
|
||||||
Riot-web is receiving an update **next week**(tm) that
|
|
||||||
enables end to end encryption and cross-signing by
|
|
||||||
default for all private conversations. Please prepare
|
|
||||||
thyselves! More deets:
|
|
||||||
https://lists.cyberia.club/~cyberia/ops/%3C126414c4-80bc-1d49-570e-cf3eba9e8362%40c3f.net%3E
|
|
||||||
|
|
||||||
* New preferences
|
|
||||||
There are two new potentially userful riot-web
|
|
||||||
preferences, in case you may have missed them:
|
|
||||||
- sort rooms alphabetically
|
|
||||||
- auto-syntax-highlight-detection
|
|
||||||
|
|
||||||
|
|
||||||
Forge
|
|
||||||
=====
|
|
||||||
|
|
||||||
Forge is our development and project tool. It is intended
|
|
||||||
to be used by anyone in the Cyberia community to host
|
|
||||||
their projects, and Cyberia will eventually use it
|
|
||||||
exclusively to host our group projects.
|
|
||||||
|
|
||||||
Forge is approaching the end of the alpha phase. There is
|
|
||||||
still a bit of rockiness, but we've mostly settled on it
|
|
||||||
as a full-fledged service, supported by Cyberia Services.
|
|
||||||
|
|
||||||
Forge handles the following (for now):
|
|
||||||
|
|
||||||
* git repositories
|
|
||||||
* mailing lists
|
|
||||||
* ticket trackers
|
|
||||||
* git-driven wiki pages
|
|
||||||
* paste service
|
|
||||||
|
|
||||||
Forge may handle the following in the future, if we have
|
|
||||||
need for it:
|
|
||||||
|
|
||||||
* builds
|
|
||||||
* continuous integration
|
|
||||||
* mercurial repositories
|
|
||||||
|
|
||||||
Registration is now open to the public, sign up today!
|
|
||||||
https://forge.cyberia.club
|
|
||||||
|
|
||||||
|
|
||||||
Mailing Lists
|
|
||||||
=============
|
|
||||||
|
|
||||||
There are now three important mailing lists that people
|
|
||||||
might consider subscribing to:
|
|
||||||
|
|
||||||
announce@cyberia.club = general announcements like this
|
|
||||||
ops@cyberia.club = services branch discussion
|
|
||||||
operational stuff = etc@cyberia.club - everything else
|
|
||||||
|
|
||||||
See them and read about them on the Forge:
|
|
||||||
https://lists.cyberia.club/
|
|
||||||
|
|
||||||
|
|
||||||
If you have questions or comments about this announcement
|
|
||||||
letter, feel free to email ops@cyberia.club and ask us
|
|
||||||
about it :)
|
|
||||||
|
|
||||||
|
|
||||||
Misc
|
|
||||||
====
|
|
||||||
|
|
||||||
* Prometheus awareness
|
|
||||||
We monitor our systems with Prometheus - like
|
|
||||||
everything else Cyberia does, we operate it publically.
|
|
||||||
Check it out at https://prometheus.cyberia.club
|
|
||||||
|
|
||||||
* Grafana awareness
|
|
||||||
We recently set up Grafana, and fack has been hacking
|
|
||||||
on some dashboards. It's available at
|
|
||||||
https://grafana.cyberia.club for public consumption. If
|
|
||||||
you'd like a read-write account, email me and I'll set
|
|
||||||
one up for you.
|
|
||||||
|
|
||||||
* misc@c3f.net deprecated
|
|
||||||
The misc@c3f.net list has been moved to the
|
|
||||||
etc@cyberia.club list. I moved all previous misc@c3f.net
|
|
||||||
subscribers to the new list, no action is required.
|
|
||||||
|
|
||||||
* Infra Hackathon
|
|
||||||
There are thoughts about hosting a huge infra hackathon
|
|
||||||
to move our systems from Debian to Alpine, with a giant
|
|
||||||
laundry list of crap to do. We will be targeting a full
|
|
||||||
weekend in the future. Just a heads up.
|
|
||||||
|
|
||||||
* Operations Handbook
|
|
||||||
We have decided that a monorepo for all of our
|
|
||||||
operational-related things is appropriate. See the
|
|
||||||
handbook here:
|
|
||||||
https://git.cyberia.club/services/ops-handbook/about
|
|
||||||
|
|
||||||
|
|
||||||
A final note: our services would be useless without the
|
|
||||||
community that makes use of them. Thanks for all of your
|
|
||||||
valuable feedback and discussion. You're all wonderful.
|
|
||||||
Let's open the next world together.
|
|
||||||
|
|
||||||
Your lovely head of services,
|
|
||||||
|
|
||||||
|
|
||||||
j3s
|
|
|
@ -1,220 +0,0 @@
|
||||||
|
|
||||||
CAPSUL
|
|
||||||
|
|
||||||
rollin' onwards with a web application
|
|
||||||
|
|
||||||
|
|
||||||
Forest 2020-05-20
|
|
||||||
|
|
||||||
WHAT'S NEW IN CAPSUL?
|
|
||||||
|
|
||||||
Capsul has been operated by hand so far, with business
|
|
||||||
conducted via email. Obviously, this isn't the best
|
|
||||||
user experience. If no one is on the other end at the
|
|
||||||
time, the user might feel as if they are shouting into
|
|
||||||
the void.
|
|
||||||
|
|
||||||
Ideally, users could pay for service, create and destroy
|
|
||||||
capsuls, and monitor their capsul's status at any time.
|
|
||||||
|
|
||||||
So we set out to create an application enabling that,
|
|
||||||
while keeping things as simple as possible. As of today,
|
|
||||||
you can experience it firsthand!
|
|
||||||
|
|
||||||
--> https://capsul.org/ <--
|
|
||||||
|
|
||||||
|
|
||||||
WHAT IS CAPSUL? WHY WOULD ANYONE DO THAT?
|
|
||||||
|
|
||||||
Capsul started out as a "for fun" project to host
|
|
||||||
multiple VMs with different operating systems on the same
|
|
||||||
physical server.
|
|
||||||
|
|
||||||
A cloud compute provider experiment to find out:
|
|
||||||
|
|
||||||
- How hard is it to build basic compute-as-service
|
|
||||||
functionality that has been mythologized and
|
|
||||||
commoditized by some of the biggest software
|
|
||||||
businesses of all time.
|
|
||||||
|
|
||||||
- What problems have to be solved in order to do
|
|
||||||
this at a small scale?
|
|
||||||
|
|
||||||
- And last but not least,
|
|
||||||
how much better-than-the-big-boys can we do? :P
|
|
||||||
|
|
||||||
|
|
||||||
I heard about Capsul and I thought, cool, why not.
|
|
||||||
|
|
||||||
At first, I was slightly dismissive of the project --
|
|
||||||
why re-invent the wheel? There are lots of established
|
|
||||||
tools for creating cloud services already out there,
|
|
||||||
surely they would be hard for us to measure up to.
|
|
||||||
|
|
||||||
Of course, you could argue, that's not the point.
|
|
||||||
It's all about the journey, popping the hood and learning
|
|
||||||
how things are put together.
|
|
||||||
|
|
||||||
But on the other hand, Capsul is something that we want
|
|
||||||
to use, not just a pet project.
|
|
||||||
|
|
||||||
|
|
||||||
Can I depend on it?
|
|
||||||
|
|
||||||
|
|
||||||
/⁀\ ___/‾⁀|__,
|
|
||||||
(‾‾____‾‾) | xx . .|
|
|
||||||
/ \ | [ >)
|
|
||||||
/ \ | ‶` ‾
|
|
||||||
|
|
|
||||||
I WANT TO BELIEVE | (X) DOUBT
|
|
||||||
|
|
||||||
Whether excited or doubtful, the tone of the question
|
|
||||||
expresses the real utility and risk associated with DIY.
|
|
||||||
|
|
||||||
We have to **make our own seat belts** for this, an
|
|
||||||
experience and practice that I personally feel is highly
|
|
||||||
under-rated.
|
|
||||||
|
|
||||||
I don't want to give up and just leave it to the experts.
|
|
||||||
|
|
||||||
I want to build the confidence necessary to make my own
|
|
||||||
systems, and to measure thier stability and efficacy.
|
|
||||||
|
|
||||||
(\_/)
|
|
||||||
[. .]
|
|
||||||
==<.>==
|
|
||||||
|
|
||||||
" Anyone can Cook "
|
|
||||||
|
|
||||||
It probably helps that I've never seen a friend get hurt
|
|
||||||
because of a flaw in something I designed, but even if
|
|
||||||
I had, I'd like to think that I'd continue believing
|
|
||||||
in the idea that technology is never "beyond" us.
|
|
||||||
I could never make it through Technoholics Anonymous,
|
|
||||||
because I'd never be able believe a Higher Power will
|
|
||||||
restore sanity to the machine and save us from ourselves.
|
|
||||||
|
|
||||||
|
|
||||||
ABOUT THE DEVELOPMENT PROCESS
|
|
||||||
|
|
||||||
First step was to chose a language and framework.
|
|
||||||
We made this decision (Python 3, Flask) almost entirely
|
|
||||||
based on which language was the most commonly known in
|
|
||||||
our group. I was the only one who had never used Python
|
|
||||||
before, and I felt up to the task of learning a language
|
|
||||||
as a part of this process.
|
|
||||||
|
|
||||||
Next, we had to decide how the system would work.
|
|
||||||
|
|
||||||
How would we secure user's accounts? How would users
|
|
||||||
pay for capsuls? Would it be like a subscription,
|
|
||||||
would you buy compute credits, or a receive a bill at
|
|
||||||
the end of the month?
|
|
||||||
|
|
||||||
In the interest of simplicity, we opted to use a
|
|
||||||
tumblr-style magic-link login instead of requiring
|
|
||||||
the user to provide a password. So, you have to
|
|
||||||
receive an email and click a link in that email
|
|
||||||
every time you log in.
|
|
||||||
|
|
||||||
We also decided to go with the "purchase credits, then
|
|
||||||
create capsul" payment workflow, because it was the
|
|
||||||
easiest way we could accept both credit card and
|
|
||||||
cryptocurrency payments, and we believed that requiring
|
|
||||||
the user to pay first was an appropriate level of
|
|
||||||
friction for our service, at least right now.
|
|
||||||
|
|
||||||
I had never worked on a project that integrated
|
|
||||||
with a payment processor or had a "dollars" column in a
|
|
||||||
database table before. I felt like I worked at the
|
|
||||||
Federal Reserve, typing
|
|
||||||
|
|
||||||
INSERT INTO payments (account, dollars) VALUES
|
|
||||||
('forest', 20.00);
|
|
||||||
|
|
||||||
into my database during development.
|
|
||||||
|
|
||||||
The application has three backends:
|
|
||||||
|
|
||||||
- a postgres database where all of the payment and
|
|
||||||
account data is stored
|
|
||||||
|
|
||||||
- the virtualization backend which lifecycles the
|
|
||||||
virtual machines and provides information about them
|
|
||||||
(whether or not they exist, and current IP address)
|
|
||||||
|
|
||||||
- Prometheus metrics database which allows the
|
|
||||||
web application to display real-time metrics for each
|
|
||||||
capsul.
|
|
||||||
|
|
||||||
All of the payments are handled by external payment
|
|
||||||
processors Stripe and BTCPay Server, so the application
|
|
||||||
doesn't have to deal with credit cards or cryptocurrency
|
|
||||||
directly. What's even better, because BTCPay Server
|
|
||||||
tracks the status of invoices automatically, we can
|
|
||||||
accept unconfirmed transactions as valid payments and
|
|
||||||
then rewind the payment if we learn that it was a
|
|
||||||
double-spend attack. No need to bother the user about
|
|
||||||
Replace By Fee or anything like that.
|
|
||||||
|
|
||||||
The initial development phase took one week. Some days
|
|
||||||
I worked on it for 12+ hours, I think. I was having a
|
|
||||||
blast. I believe that the application should be secure
|
|
||||||
against common types of attacks. I kept the OWASP
|
|
||||||
Top 10 Web Application Security Risks in mind while I was
|
|
||||||
working on this project, and addressed each one.
|
|
||||||
|
|
||||||
1. Injection
|
|
||||||
We use 100% parameterized queries, and we apply strict
|
|
||||||
validation to all arguments of all shell scripts.
|
|
||||||
|
|
||||||
2. Broken Authentication
|
|
||||||
We have used Flask's session implementation,
|
|
||||||
we did not roll our own sessions.
|
|
||||||
|
|
||||||
3. Sensitive Data Exposure
|
|
||||||
We do not handle particularly sensitive data such as
|
|
||||||
cryptocurrency wallets or credit card information.
|
|
||||||
|
|
||||||
4. XML External Entities (XXE)
|
|
||||||
We do not parse XML.
|
|
||||||
|
|
||||||
5. Broken Access Control
|
|
||||||
We have added the user's email address to all database
|
|
||||||
queries that we can. This email address comes from the
|
|
||||||
session, so hopefully you can only ever get information
|
|
||||||
about YOUR account, and only if you are logged in.
|
|
||||||
|
|
||||||
6. Security Misconfiguration
|
|
||||||
We made sure that the application does not display error
|
|
||||||
messages to the user, we are not running Flask in
|
|
||||||
development mode, we are not running Flask as the root
|
|
||||||
user, the server it runs on is well secured and up to
|
|
||||||
date, etc.
|
|
||||||
|
|
||||||
7. Cross-Site Scripting (XSS)
|
|
||||||
We apply strict validation to user inputs that will be
|
|
||||||
represented on the page, whether they are path variables,
|
|
||||||
query parameters, form fields, etc.
|
|
||||||
|
|
||||||
8. Insecure Deserialization
|
|
||||||
We use the most up-to-date json parsing from the
|
|
||||||
Python standard library.
|
|
||||||
|
|
||||||
9. Using Components with Known Vulnerabilities
|
|
||||||
We did check the CVE lists for any known issues with the
|
|
||||||
versions of Flask and psycopg2 (database connector),
|
|
||||||
requests, and various other packages that we are using,
|
|
||||||
although automating this process would be much better
|
|
||||||
going forward.
|
|
||||||
|
|
||||||
10. Insufficient Logging & Monitoring
|
|
||||||
We may have some room for improvement here, however,
|
|
||||||
verbose logging goes slightly against the "we don't
|
|
||||||
collect any more data about you than we need to" mantra.
|
|
||||||
|
|
||||||
If you would like to take a peek at the code, it's
|
|
||||||
hosted on our git server:
|
|
||||||
|
|
||||||
https://git.cyberia.club/cyberia/capsul-flask
|
|
|
@ -1,411 +0,0 @@
|
||||||
|
|
||||||
CAPSUL
|
|
||||||
|
|
||||||
rumors of my demise have been greatly exaggerated
|
|
||||||
|
|
||||||
|
|
||||||
Forest 2021-12-17
|
|
||||||
|
|
||||||
WHAT IS THIS?
|
|
||||||
|
|
||||||
If you're a wondering "what is capsul?", see:
|
|
||||||
|
|
||||||
https://capsul.org
|
|
||||||
|
|
||||||
Here's a quick summary of what's in this post:
|
|
||||||
|
|
||||||
- cryptocurrency payments are back
|
|
||||||
|
|
||||||
- we visited the server in person for maintenance
|
|
||||||
|
|
||||||
- most capsuls disks should have trim/discard support
|
|
||||||
now, so you can run the fstrim command to optimize
|
|
||||||
your capsul's disk. (please do this, it will save us
|
|
||||||
a lot of disk space!!)
|
|
||||||
|
|
||||||
- we updated most of our operating system images and
|
|
||||||
added a new rocky linux image!
|
|
||||||
|
|
||||||
- potential ideas for future development on capsul
|
|
||||||
|
|
||||||
- exciting news about a new server and a new capsul fork
|
|
||||||
being developed by co-op cloud / servers.coop
|
|
||||||
|
|
||||||
~
|
|
||||||
|
|
||||||
WHAT HAPPENED TO THE CRYPTOCURRENCY PAYMENT OPTION?
|
|
||||||
|
|
||||||
Life happens. Cyberia Computer Club has been hustling
|
|
||||||
and bustling to build out our new in-person space in
|
|
||||||
Minneapolis, MN:
|
|
||||||
|
|
||||||
https://wiki.cyberia.club/hypha/cyberia_hq/faq
|
|
||||||
|
|
||||||
Hackerspace, lab, clubhouse, we aren't sure what to call
|
|
||||||
it yet, but we're extremely excited to finish with the
|
|
||||||
renovations and move in!
|
|
||||||
|
|
||||||
In the meantime, something went wrong with the physical
|
|
||||||
machine hosting our BTCPay server and we didn't have
|
|
||||||
anywhere convenient to move it, nor time to replace it,
|
|
||||||
so we simply disabled cryptocurrency payments
|
|
||||||
temporarily in September 2021.
|
|
||||||
|
|
||||||
Many of yall have emailed us asking "what gives??",
|
|
||||||
and I'm glad to finally be able to announce that
|
|
||||||
|
|
||||||
"the situation has been dealt with",
|
|
||||||
|
|
||||||
we have a brand new server and the blockchain syncing
|
|
||||||
process is complete, cryptocurrency payments in bitcoin,
|
|
||||||
litecoin, and monero are back online now!
|
|
||||||
|
|
||||||
--> https://capsul.org/payment/btcpay <--
|
|
||||||
|
|
||||||
|
|
||||||
~
|
|
||||||
|
|
||||||
THAT ONE TIME CAPSUL WAS ALMOST fsync()'d TO DEATH
|
|
||||||
|
|
||||||
Guess what? Yall loved capsul so much, you wore our disks
|
|
||||||
out. Well, almost.
|
|
||||||
|
|
||||||
We use redundant solid state disks + the ZFS file system
|
|
||||||
for your capsul's block storage needs, and it turns out
|
|
||||||
that some of our users like to write files. A lot.
|
|
||||||
|
|
||||||
Over time, SSDs will wear out, mostly dependent on how
|
|
||||||
many writes hit the disk. Baikal, the server behind
|
|
||||||
capsul.org, is a bit different from a typical desktop
|
|
||||||
computer, as it hosts about 100 virtual machines, each
|
|
||||||
with thier own list of application processes, for over 50
|
|
||||||
individual capsul users, each of whom may be providing
|
|
||||||
services to many other individuals in turn.
|
|
||||||
|
|
||||||
The disk-wear-out situation was exacerbated by our
|
|
||||||
geographical separation from the server; we live in
|
|
||||||
Minneapolis, MN, but the server is in Georgia. We wanted
|
|
||||||
to install NVME drives to expand our storage capacity
|
|
||||||
ahead of growing demand, but when we would mail PCI-e to
|
|
||||||
NVME adapters to CyberWurx, our datacenter colocation
|
|
||||||
provider, they kept telling us the adapter didn't fit
|
|
||||||
inside the 1U chassis of the server.
|
|
||||||
|
|
||||||
At one point, we were forced to take a risk and undo the
|
|
||||||
redundancy of the disks in order to expand our storage
|
|
||||||
capacity and prevent "out of disk space" errors from
|
|
||||||
crashing your capsuls. It was a calculated risk, trading
|
|
||||||
certain doom now for the potential possibility of doom
|
|
||||||
later.
|
|
||||||
|
|
||||||
Well, time passed while we were busy with other projects,
|
|
||||||
and those non-redundant disks started wearing out.
|
|
||||||
According to the "smartmon" monitoring indicator, they
|
|
||||||
reached about 25% lifespan remaining. Once the disk
|
|
||||||
theoretically hit 0%, it would become read-only in order
|
|
||||||
to protect itself from total data loss.
|
|
||||||
So we had to replace them before that happened.
|
|
||||||
|
|
||||||
https://picopublish.sequentialread.com/files/smartmon_dec2021.png
|
|
||||||
|
|
||||||
We were so scared of what could happen if we slept on
|
|
||||||
this that we booked a flight to Atlanta for maintenance.
|
|
||||||
We wanted to replace the disks in person, and ensure we
|
|
||||||
could restore the ZFS disk mirroring feature.
|
|
||||||
|
|
||||||
We even custom 3d-printed a bracket for the tiny PCI-e
|
|
||||||
NVME drive that we needed in order to restore redundancy
|
|
||||||
for the disks, just to make 100% sure that the
|
|
||||||
maintenance we were doing would succeed & maintain
|
|
||||||
stability for everyone who has placed thier trust in us
|
|
||||||
and voted with thier shells, investing thier time and
|
|
||||||
money on virtual machines that we maintain on a volunteer
|
|
||||||
basis.
|
|
||||||
|
|
||||||
https://picopublish.sequentialread.com/files/silly-nvme-bracket2.jpg
|
|
||||||
|
|
||||||
Unfortunately, "100% sure" was still not good enough,
|
|
||||||
the new NVME drive didn't work as a ZFS mirroring partner
|
|
||||||
at first — the existing NVME drive was 951GB, and the
|
|
||||||
one we had purchased was 931GB. It was too small and ZFS
|
|
||||||
would not accept that. f0x suggested:
|
|
||||||
|
|
||||||
> [you could] start a new pool on the new disk,
|
|
||||||
> zfs send all the old data over, then have an
|
|
||||||
> equally sized partition on the old disk then add
|
|
||||||
> that to the mirror
|
|
||||||
|
|
||||||
But we had no idea how to do that exactly or how long it
|
|
||||||
would take & we didn't want to change the plan at the
|
|
||||||
last second, so instead we ended up taking the train from
|
|
||||||
the datacenter to Best Buy to buy a new disk instead.
|
|
||||||
|
|
||||||
The actual formatted sizes of these drives are typically
|
|
||||||
never printed on the packaging or even mentioned on PDF
|
|
||||||
datasheets online. When I could find an actual number
|
|
||||||
for a model, it was always the lower 931GB.
|
|
||||||
So, we ended up buying a "2TB" drive as it was the only
|
|
||||||
one BestBuy had which we could guarantee would work.
|
|
||||||
|
|
||||||
So, lesson learned the hard way. If you want to use ZFS
|
|
||||||
mirroring and maybe replace a drive later, make sure to
|
|
||||||
choose a fixed partition size which is slightly smaller
|
|
||||||
than the typical avaliable space on the size of drive
|
|
||||||
you're using, in case the replacement drive was
|
|
||||||
manufactured with slightly less avaliable formatted
|
|
||||||
space!!!
|
|
||||||
|
|
||||||
Once mirroring was restored, we made sure to test it
|
|
||||||
in practice by carefully removing a disk from the server
|
|
||||||
while it's running:
|
|
||||||
|
|
||||||
https://picopublish.sequentialread.com/files/zfs_disk_replacement/
|
|
||||||
|
|
||||||
While we could have theoretically done this maintenance
|
|
||||||
remotely with the folks at CyberWurx performing the
|
|
||||||
physical parts replacement per a ticket we open with
|
|
||||||
them, we wanted to be sure we could meet the timeline
|
|
||||||
that the disks had set for **US**. That's no knock on
|
|
||||||
CyberWurx, moreso a knock on us for yolo-ing this server
|
|
||||||
into "production" with tape and no test environment :D
|
|
||||||
|
|
||||||
The reality is we are vounteer supported. Right now
|
|
||||||
the payments that the club receives from capusl users
|
|
||||||
don't add up to enough to compensate (make ends meet for)
|
|
||||||
your average professional software developer or sysadmin,
|
|
||||||
at least if local tech labor market stats are to be
|
|
||||||
believed.
|
|
||||||
|
|
||||||
We are all also working on other things, we can't devote
|
|
||||||
all of our time to capsul. But we do care about capsul,
|
|
||||||
we want our service to live, mostly because we use it
|
|
||||||
ourselves, but also because the club benefits from it.
|
|
||||||
|
|
||||||
We want it to be easy and fun to use, while also staying
|
|
||||||
easy and fun to maintain. A system that's agressively
|
|
||||||
maintained will be a lot more likely to remain maintained
|
|
||||||
when it's no one's job to come in every weekday for that.
|
|
||||||
|
|
||||||
That's why we also decided to upgrade to the latest
|
|
||||||
stable Debian major version on baikal while we were
|
|
||||||
there. We encountered no issues during the upgrade
|
|
||||||
besides a couple of initial omissions in our package
|
|
||||||
source lists. The installer also notified us of several
|
|
||||||
configuration files we had modified, presenting us with
|
|
||||||
a git-merge-ish interface that displayed diffs and
|
|
||||||
allowed us to decide to keep our changes, replace our
|
|
||||||
file with the new version, or merge the two manually.
|
|
||||||
|
|
||||||
I can't speak more accurately about it than that, as
|
|
||||||
j3s did this part and I just watched :)
|
|
||||||
|
|
||||||
~
|
|
||||||
|
|
||||||
LOOKING TO THE FUTURE
|
|
||||||
|
|
||||||
We wanted to upgrade to this new Debian version because
|
|
||||||
it had a new major version of QEMU, supporting virtio-blk
|
|
||||||
storage devices that can pass-through file system discard
|
|
||||||
commands to the host operating system.
|
|
||||||
|
|
||||||
We didn't see any benefits right away, as the vms
|
|
||||||
stayed defined in libvirt as their original machine types,
|
|
||||||
either pc-i440fx-3.1 or a type from the pc-q35 family.
|
|
||||||
|
|
||||||
After returning home, we noticed that when we created
|
|
||||||
a new capsul, it would come up as the pc-i440fx-5.2
|
|
||||||
machine type and the main disk on the guest would display
|
|
||||||
discard support in the form of a non-zero DISC-MAX size
|
|
||||||
displayed by the `lsblk -D` command:
|
|
||||||
|
|
||||||
localhost:~# sudo lsblk -D
|
|
||||||
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
|
|
||||||
sr0 0 0B 0B 0
|
|
||||||
vda 512 512B 2G 0
|
|
||||||
|
|
||||||
Most of our capsuls were pc-i440fx ones, and we upgraded
|
|
||||||
them to pc-i440fx-5.2, which finally got discards working
|
|
||||||
for the grand majority of capsuls.
|
|
||||||
|
|
||||||
If you see discard settings like that on your capsul,
|
|
||||||
you should also be able to run `fstrim -v /` on your
|
|
||||||
capsul which saves us disk space on baikal:
|
|
||||||
|
|
||||||
welcome, cyberian ^(;,;)^
|
|
||||||
your machine awaits
|
|
||||||
|
|
||||||
localhost:~# sudo lsblk -D
|
|
||||||
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
|
|
||||||
sr0 0 0B 0B 0
|
|
||||||
vda 512 512B 2G 0
|
|
||||||
|
|
||||||
localhost:~# sudo fstrim -v /
|
|
||||||
/: 15.1 GiB (16185487360 bytes) trimmed
|
|
||||||
|
|
||||||
^ Please do this if you are able to!
|
|
||||||
|
|
||||||
You might also be able to enable an fstrim service or
|
|
||||||
timer which will run fstrim to clean up and optimize
|
|
||||||
your disk periodically.
|
|
||||||
|
|
||||||
However, some of the older vms were the pc-q35 family of
|
|
||||||
QEMU machine type, and while I was able to get one of
|
|
||||||
ours to upgrade to pc-i440fx-5.2, discard support still
|
|
||||||
did not show up in the guest OS. We're not sure what's
|
|
||||||
happening there yet.
|
|
||||||
|
|
||||||
We also improved capsul's monitoring features; we began
|
|
||||||
work on proper infrastructure-as-code-style diffing
|
|
||||||
functionality, so we get notified if any key aspects of
|
|
||||||
your capsuls are out of whack. In the past this had been
|
|
||||||
an issue, with DHCP leases expiring during maintenance
|
|
||||||
downtimes and capsuls stealing each-others assigned IP
|
|
||||||
addresses when we turn everything back on.
|
|
||||||
|
|
||||||
capsul-flask now also includes an admin panel with
|
|
||||||
1-click-fix actions built in, leveraging this data:
|
|
||||||
|
|
||||||
https://git.cyberia.club/cyberia/capsul-flask/src/commit/b013f9c9758f2cc062f1ecefc4d7deef3aa484f2/capsulflask/admin.py#L36-L202
|
|
||||||
|
|
||||||
https://picopublish.sequentialread.com/files/admin-panel.jpg
|
|
||||||
|
|
||||||
I acknowledge that this is a bit of a silly system,
|
|
||||||
but it's an artifact of how we do what we do. Capsul
|
|
||||||
is always changing and evolving, and the web app was
|
|
||||||
built on the idea of simply "providing a button for"
|
|
||||||
any manual action that would have to be taken,
|
|
||||||
either by a user or by an admin.
|
|
||||||
|
|
||||||
At one point, back when capsul was called "cvm",
|
|
||||||
_everything_ was done by hand over email and the
|
|
||||||
commandline, so of course anything that reduced the
|
|
||||||
amount of manual administration work was welcome,
|
|
||||||
and we are still working on that today.
|
|
||||||
|
|
||||||
When we build new UIs and prototype features, we learn
|
|
||||||
more about how our system works, we expand what's
|
|
||||||
possible for capsul, and we come up with new ways to
|
|
||||||
organize data and intelligently direct the venerable
|
|
||||||
virtualization software our service is built on.
|
|
||||||
|
|
||||||
I think that's what the "agile development" buzzword from
|
|
||||||
professional software development circles was supposed to
|
|
||||||
be about: freedom to experiment means better designs
|
|
||||||
because we get the opportunity to experience some of the
|
|
||||||
consequences before we fully commit to any specific
|
|
||||||
design. A touch of humility and flexibility goes a
|
|
||||||
long way in my opinion.
|
|
||||||
|
|
||||||
We do have a lot of ideas about how to continue
|
|
||||||
making capsul easier for everyone involved, things
|
|
||||||
like:
|
|
||||||
|
|
||||||
1. Metered billing w/ stripe, so you get a monthly bill
|
|
||||||
with auto-pay to your credit card, and you only pay
|
|
||||||
for the resources you use, similar to what service
|
|
||||||
providers like Backblaze do.
|
|
||||||
|
|
||||||
(Note: of course we would also allow you to
|
|
||||||
pre-pay with cryptocurrency if you wish)
|
|
||||||
|
|
||||||
2. Looking into rewrite options for some parts of the
|
|
||||||
system: perhaps driving QEMU from capsul-flask
|
|
||||||
directly instead of going through libvirt,
|
|
||||||
and perhaps rewriting the web application in golang
|
|
||||||
instead of sticking with flask.
|
|
||||||
|
|
||||||
3. JSON API designed to make it easier to manage capsuls
|
|
||||||
in code, scripts, or with an infrastructure-as-code
|
|
||||||
tool like Terraform.
|
|
||||||
|
|
||||||
4. IO throttling your vms:
|
|
||||||
As I mentioned before, the vms wear out the disks
|
|
||||||
fast. We had hoped that enabling discards would help
|
|
||||||
with this, but it appears that it hasn't done much
|
|
||||||
to decrease the growth rate of the smartmon wearout
|
|
||||||
indicator metric.
|
|
||||||
So, most likely we will have to enforce some form of
|
|
||||||
limit on the amount of disk writes your capsul can
|
|
||||||
perform while it's running day in and day out.
|
|
||||||
80-90% of capsul users will never see this limit,
|
|
||||||
but our heaviest writers will be required to either
|
|
||||||
change thier software so it writes less, or pay more
|
|
||||||
money for service. In any case, we'll send you a
|
|
||||||
warning email long before we throttle your capsul's
|
|
||||||
disk.
|
|
||||||
|
|
||||||
|
|
||||||
And last but not least, Cybera Computer Club Congress
|
|
||||||
voted to use a couple thousand of the capsulbux we've
|
|
||||||
recieved in payment to purchase a new server, allowing
|
|
||||||
us to expand the service ahead of demand and improve our
|
|
||||||
processes all the way from hardware up.
|
|
||||||
|
|
||||||
(No tape this time!)
|
|
||||||
|
|
||||||
https://picopublish.sequentialread.com/files/baikal2
|
|
||||||
|
|
||||||
Shown: Dell PowerEdge R640 1U server with two
|
|
||||||
10-core xeon silver 4114 processors and 256GB of RAM.
|
|
||||||
(Upgradable to 768GB!!)
|
|
||||||
|
|
||||||
~
|
|
||||||
|
|
||||||
CAN I HELP?
|
|
||||||
|
|
||||||
Yes! We are not the only ones working on capsul these
|
|
||||||
days. For example, another group, https://coopcloud.tech
|
|
||||||
has forked capsul-flask and set up thier own instance at
|
|
||||||
|
|
||||||
https://yolo.servers.coop
|
|
||||||
|
|
||||||
Thier source code repository is here
|
|
||||||
(not sure this is the right one):
|
|
||||||
|
|
||||||
https://git.autonomic.zone/3wordchant/capsul-flask
|
|
||||||
|
|
||||||
Having more people setting up instances of capsul-flask
|
|
||||||
really helps us, whether folks are simply testing or
|
|
||||||
aiming to run it in production like we do.
|
|
||||||
|
|
||||||
Unfortunately we don't have a direct incentive to
|
|
||||||
work on making capsul-flask easier to set up until folks
|
|
||||||
ask us how to do it. Autonomic helped us a lot as they
|
|
||||||
made thier way through our terrible documentation and
|
|
||||||
asked for better organization / clarification along the
|
|
||||||
way, leading to much more expansive and organized README
|
|
||||||
files.
|
|
||||||
|
|
||||||
They also gave a great shove in the right direction when
|
|
||||||
they decided to contribute most of a basic automated
|
|
||||||
testing implementation and the beginnings of a JSON API
|
|
||||||
at the same time. They are building a command line tool
|
|
||||||
called abra that can create capsuls upon the users
|
|
||||||
request, as well as many other things like installing
|
|
||||||
applications. I think it's very neat :)
|
|
||||||
|
|
||||||
Also, just donating or using the service helps support
|
|
||||||
cyberia.club, both in terms of maintaing capsul.org and
|
|
||||||
reaching out and supporting our local community.
|
|
||||||
|
|
||||||
We accept donations via either a credit card (stripe)
|
|
||||||
or in Bitcoin, Litecoin, or Monero via our BTCPay server:
|
|
||||||
|
|
||||||
https://cyberia.club/donate
|
|
||||||
|
|
||||||
For the capsul source code, navigate to:
|
|
||||||
|
|
||||||
https://git.cyberia.club/cyberia/capsul-flask
|
|
||||||
|
|
||||||
As always, you may contact us at:
|
|
||||||
|
|
||||||
mailto:support@cyberia.club
|
|
||||||
|
|
||||||
Or on matrix:
|
|
||||||
|
|
||||||
#services:cyberia.club
|
|
||||||
|
|
||||||
For information on what matrix chat is and how to use it,
|
|
||||||
see: https://cyberia.club/matrix
|
|
||||||
|
|
||||||
Forest 2021-12-17
|
|
|
@ -1,59 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
||||||
<channel>
|
|
||||||
|
|
||||||
<title>Cyberia Blog</title>
|
|
||||||
<description>A delicious computer club</description>
|
|
||||||
<link>https://cyberia.club</link>
|
|
||||||
<ttl>1800</ttl>
|
|
||||||
<atom:link href="https://cyberia.club/blog/blog.xml" rel="self" type="application/rss+xml" />
|
|
||||||
<item>
|
|
||||||
<title>01/05/2020: Cyberia Services Update: 2020-04</title>
|
|
||||||
<description></description>
|
|
||||||
<link>https://cyberia.club/blog/20200501a</link>
|
|
||||||
<guid isPermaLink="true">https://cyberia.club/blog/20200501a</guid>
|
|
||||||
<pubDate>Fri, 01 May 2020 00:00:00 +0000</pubDate>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<title>11/03/2020: Simple trusted compute: Announcing Capsul</title>
|
|
||||||
<description></description>
|
|
||||||
<link>https://cyberia.club/blog/20200311a</link>
|
|
||||||
<guid isPermaLink="true">https://cyberia.club/blog/20200311a</guid>
|
|
||||||
<pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<title>25/02/2020: How to write a blog post for Cyberia</title>
|
|
||||||
<description>A necessary post</description>
|
|
||||||
<link>https://cyberia.club/blog/20200225a</link>
|
|
||||||
<guid isPermaLink="true">https://cyberia.club/blog/20200225a</guid>
|
|
||||||
<pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<title>20/05/2020: Capsul rollin' onward with a Web Application</title>
|
|
||||||
<description>Forest describes his thought process when building the capsul.org web application</description>
|
|
||||||
<link>https://cyberia.club/blog/20200520-capsul-rollin-onward-with-a-web-application</link>
|
|
||||||
<guid isPermaLink="true">https://cyberia.club/blog/20200520-capsul-rollin-onward-with-a-web-application</guid>
|
|
||||||
<pubDate>Wed, 20 May 2020 00:00:00 +0000</pubDate>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<title>COVIDaware MN app investigation</title>
|
|
||||||
<description></description>
|
|
||||||
<link>https://cyberia.club/blog/2020-11-27</link>
|
|
||||||
<guid isPermaLink="true">https://cyberia.club/blog/2020-11-27</guid>
|
|
||||||
<pubDate>Fri, 27 Nov 2020 13:46:13 UTC</pubDate>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<item>
|
|
||||||
<title>17/12/2021: Capsul - Rumors Of My Demise Have Been Greatly Exaggerated</title>
|
|
||||||
<description>Forest regails you with tales of maintenance, links to pictures and video, and hopes for the future of capsul</description>
|
|
||||||
<link>https://cyberia.club/blog/20211217-capsul-maintenance-updates</link>
|
|
||||||
<guid isPermaLink="true">https://cyberia.club/blog/20211217-capsul-maintenance-updates</guid>
|
|
||||||
<pubDate>Sat, 18 Dec 2021 00:00:00 +0000</pubDate>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
|
@ -1,30 +0,0 @@
|
||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
date=$(date +%Y-%m-%d)
|
|
||||||
rfc822date=$(date "+%a, %e %b %Y %H:%M:%S %Z")
|
|
||||||
|
|
||||||
subject="${1?Please enter your post title}"
|
|
||||||
|
|
||||||
cat > "$date.txt" <<EOF
|
|
||||||
# $subject - ($date)
|
|
||||||
EOF
|
|
||||||
|
|
||||||
rss="<item>
|
|
||||||
<title>$subject</title>
|
|
||||||
<description></description>
|
|
||||||
<link>https://cyberia.club/blog/$date</link>
|
|
||||||
<guid isPermaLink=\"true\">https://cyberia.club/blog/$date</guid>
|
|
||||||
<pubDate>$rfc822date</pubDate>
|
|
||||||
</item>"
|
|
||||||
|
|
||||||
entry="- <a href=/blog/$date.html>$subject</a>"
|
|
||||||
|
|
||||||
while read -r line; do
|
|
||||||
printf '%s\n' "$line"
|
|
||||||
|
|
||||||
case $line in *'<atom'*) printf '%s\n' "$rss"; esac
|
|
||||||
done < blog.xml > blog.xml.new
|
|
||||||
|
|
||||||
mv -f blog.xml.new blog.xml
|
|
||||||
|
|
||||||
printf '%s\n' "$entry" >> ../blog.txt
|
|
110
site/calendar.md
Normal file
110
site/calendar.md
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
# CALENDAR
|
||||||
|
|
||||||
|
<p class="center bold italic">all times are CST/CDT</p>
|
||||||
|
|
||||||
|
## 2024
|
||||||
|
|
||||||
|
| Event | Date & Time | Location |
|
||||||
|
|------------------|-----------------|------------------|
|
||||||
|
| Congress | 01-28 1200-1400 | mumble |
|
||||||
|
| Congress | 04-28 1200-1400 | mumble |
|
||||||
|
| Congress | 07-28 1200-1400 | mumble |
|
||||||
|
| Congress | 10-27 1200-1400 | mumble |
|
||||||
|
|
||||||
|
|
||||||
|
## 2023
|
||||||
|
|
||||||
|
| Event | Date & Time | Location |
|
||||||
|
|------------------|-----------------|------------------|
|
||||||
|
| Congress | 01-29 1200-1400 | mumble |
|
||||||
|
| Congress | 04-30 1200-1400 | mumble |
|
||||||
|
| Pride | 06-24 1000-1900 | loring park |
|
||||||
|
| Pride | 06-25 1000-1800 | loring park |
|
||||||
|
| Congress | 07-30 1200-1400 | mumble |
|
||||||
|
| Congress | 10-29 1200-1400 | mumble |
|
||||||
|
|
||||||
|
|
||||||
|
## 2022
|
||||||
|
|
||||||
|
| Event | Date & Time | Location |
|
||||||
|
|------------------|-----------------|------------------|
|
||||||
|
| Congress | 01-30 1200-1400 | mumble |
|
||||||
|
| Congress | 04-30 1200-1400 | mumble |
|
||||||
|
| Congress | 07-31 1200-1400 | mumble |
|
||||||
|
| Congress | 10-31 1200-1400 | mumble |
|
||||||
|
|
||||||
|
|
||||||
|
## 2021
|
||||||
|
|
||||||
|
| Event | Date & Time | Location |
|
||||||
|
|------------------|-----------------|------------------|
|
||||||
|
| Congress | 01-31 1200-1400 | mumble |
|
||||||
|
| Meta | 02-07 1200-1400 | mumble |
|
||||||
|
| Meta | 02-14 1200-1400 | mumble |
|
||||||
|
| Irreg-Congress | 02-21 1300-1500 | mumble |
|
||||||
|
| Orca Jam Day | 03-13 0000-1800 | mumble & stream |
|
||||||
|
| Congress | 04-25 1200-1400 | mumble |
|
||||||
|
| Pride | 07-16 0900-1800 | loring park |
|
||||||
|
| Pride | 07-17 0900-1800 | loring park |
|
||||||
|
| Congress | 07-25 1200-1400 | mumble |
|
||||||
|
| Congress | 10-31 1200-1400 | mumble |
|
||||||
|
|
||||||
|
|
||||||
|
## 2020
|
||||||
|
|
||||||
|
| Event | Date & Time | Location |
|
||||||
|
|------------------|-----------------|------------------|
|
||||||
|
| Meta | 01-12 1400-1530 | bobs java hut |
|
||||||
|
| Meta | 01-13 1800-2030 | caffetto |
|
||||||
|
| Congress | 01-19 1300-1500 | kurt home |
|
||||||
|
| Bylaw | 02-10 1800-1930 | caffetto |
|
||||||
|
| Games Bash | 02-15 1400-2359 | aimless home |
|
||||||
|
| Rapture | 03-06 1900-0200 | ground zero |
|
||||||
|
| Hackathon | 03-08 1000-1600 | j3s home |
|
||||||
|
| Meta | 03-24 1800-2000 | cyberia cafe |
|
||||||
|
| Congress | 03-29 1200-1400 | mumble |
|
||||||
|
| Logo work group | 04-23 1400-2222 | mumble |
|
||||||
|
| Hackathon | 05-09 1100-1900 | mumble |
|
||||||
|
| Hackathon | 05-10 1100-1500 | mumble |
|
||||||
|
| DnD thing | 05-15 1800-???? | cyberia cafe |
|
||||||
|
| Congress | 04-26 1200-1400 | mumble |
|
||||||
|
| Congress | 07-26 1200-1400 | mumble |
|
||||||
|
| Services | 08-20 1700-1800 | cyberia cafe |
|
||||||
|
| Congress | 10-25 1200-1400 | mumble |
|
||||||
|
| Write brief | 12-08 1900-2000 | cyberia cafe |
|
||||||
|
|
||||||
|
|
||||||
|
## 2019
|
||||||
|
|
||||||
|
| Event | Date & Time | Location |
|
||||||
|
|------------------|-----------------|------------------|
|
||||||
|
| Hackathon | 12-09 1200-1800 | j3s home |
|
||||||
|
| Hackathon | 12-21 1000-1600 | fack home |
|
||||||
|
| Meta | 12-23 1730-1900 | j3s home |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## EVENT DESCRIPTIONS
|
||||||
|
|
||||||
|
### Hackathons
|
||||||
|
laptops, projects, and caffeine. real hacker hours
|
||||||
|
bring art projects, tech projects, knitting projects
|
||||||
|
(positive and supportive vibes only)
|
||||||
|
|
||||||
|
### Meta
|
||||||
|
politics, bylaw ideas, organization
|
||||||
|
minority opinions appreciated
|
||||||
|
(generally quiet and academic, laptop recommended)
|
||||||
|
|
||||||
|
### Rapture
|
||||||
|
loud music, flashing lights
|
||||||
|
open projector-- show us something cool
|
||||||
|
(alcohol, fog machines, power, but no network)
|
||||||
|
|
||||||
|
### Games bash
|
||||||
|
alcohol, comradery, video games, board games
|
||||||
|
role-playing games, socializing
|
||||||
|
(power, network, quiet spaces available)
|
||||||
|
|
||||||
|
### Movie night
|
||||||
|
ask in the Matrix chat for moar info!
|
|
@ -1,129 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| CALENDAR |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
_____________________________________________________
|
|
||||||
/ \
|
|
||||||
/ 2024 \
|
|
||||||
| * all times are CST/CDT * |
|
|
||||||
|-------------------------------------------------------|
|
|
||||||
| Event | Date & Time | Location |
|
|
||||||
| Congress | 01-28 1200-1400 | mumble |
|
|
||||||
| Congress | 04-28 1200-1400 | mumble |
|
|
||||||
| Congress | 07-28 1200-1400 | mumble |
|
|
||||||
\ Congress | 10-27 1200-1400 | mumble /
|
|
||||||
\_____________________________________________________/
|
|
||||||
|
|
||||||
_____________________________________________________
|
|
||||||
/ \
|
|
||||||
/ 2023 \
|
|
||||||
| * all times are CST/CDT * |
|
|
||||||
|-------------------------------------------------------|
|
|
||||||
| Event | Date & Time | Location |
|
|
||||||
| Congress | 01-29 1200-1400 | mumble |
|
|
||||||
| Congress | 04-30 1200-1400 | mumble |
|
|
||||||
| Pride | 06-24 1000-1900 | loring park |
|
|
||||||
| Pride | 06-25 1000-1800 | loring park |
|
|
||||||
| Congress | 07-30 1200-1400 | mumble |
|
|
||||||
\ Congress | 10-29 1200-1400 | mumble /
|
|
||||||
\_____________________________________________________/
|
|
||||||
|
|
||||||
_____________________________________________________
|
|
||||||
/ \
|
|
||||||
/ 2022 \
|
|
||||||
| * all times are CST/CDT * |
|
|
||||||
|-------------------------------------------------------|
|
|
||||||
| Event | Date & Time | Location |
|
|
||||||
| FNH | 01-14 1800-2100 | layer zero |
|
|
||||||
| Congress | 01-30 1200-1400 | mumble |
|
|
||||||
| Congress | 04-30 1200-1400 | mumble |
|
|
||||||
| Congress | 07-31 1200-1400 | mumble |
|
|
||||||
\ Congress | 10-31 1200-1400 | mumble /
|
|
||||||
\_____________________________________________________/
|
|
||||||
|
|
||||||
_____________________________________________________
|
|
||||||
/ \
|
|
||||||
/ 2021 \
|
|
||||||
| * all times are CST/CDT * |
|
|
||||||
|-------------------------------------------------------|
|
|
||||||
| Event | Date & Time | Location |
|
|
||||||
| Congress | 01-31 1200-1400 | mumble |
|
|
||||||
| Meta | 02-07 1200-1400 | mumble |
|
|
||||||
| Meta | 02-14 1200-1400 | mumble |
|
|
||||||
| Irreg-Congress | 02-21 1300-1500 | mumble |
|
|
||||||
| Orca Jam Day | 03-13 0000-1800 | mumble & stream |
|
|
||||||
| Congress | 04-25 1200-1400 | mumble |
|
|
||||||
| Pride | 07-16 0900-1800 | loring park |
|
|
||||||
| Pride | 07-17 0900-1800 | loring park |
|
|
||||||
| Congress | 07-25 1200-1400 | mumble |
|
|
||||||
\ Congress | 10-31 1200-1400 | mumble /
|
|
||||||
\_____________________________________________________/
|
|
||||||
|
|
||||||
_____________________________________________________
|
|
||||||
/ \
|
|
||||||
/ 2020 \
|
|
||||||
| * all times are CST/CDT * |
|
|
||||||
|-------------------------------------------------------|
|
|
||||||
| Event | Date & Time | Location |
|
|
||||||
| Meta | 01-12 1400-1530 | bobs java hut |
|
|
||||||
| Meta | 01-13 1800-2030 | caffetto |
|
|
||||||
| Congress | 01-19 1300-1500 | kurt home |
|
|
||||||
| Bylaw | 02-10 1800-1930 | caffetto |
|
|
||||||
| Games Bash | 02-15 1400-2359 | aimless home |
|
|
||||||
| Rapture | 03-06 1900-0200 | ground zero |
|
|
||||||
| Hackathon | 03-08 1000-1600 | j3s home |
|
|
||||||
| Meta | 03-24 1800-2000 | cyberia cafe |
|
|
||||||
| Congress | 03-29 1200-1400 | mumble |
|
|
||||||
| Logo work group | 04-23 1400-2222 | mumble |
|
|
||||||
| Hackathon | 05-09 1100-1900 | mumble |
|
|
||||||
| Hackathon | 05-10 1100-1500 | mumble |
|
|
||||||
| DnD thing | 05-15 1800-???? | cyberia cafe |
|
|
||||||
| Congress | 04-26 1200-1400 | mumble |
|
|
||||||
| Congress | 07-26 1200-1400 | mumble |
|
|
||||||
| Services | 08-20 1700-1800 | cyberia cafe |
|
|
||||||
| Congress | 10-25 1200-1400 | mumble |
|
|
||||||
\ Write brief | 12-08 1900-2000 | cyberia cafe /
|
|
||||||
\_____________________________________________________/
|
|
||||||
|
|
||||||
_____________________________________________________
|
|
||||||
/ \
|
|
||||||
/ 2019 \
|
|
||||||
| * all times are CST/CDT * |
|
|
||||||
|-------------------------------------------------------|
|
|
||||||
| Event | Date & Time | Location |
|
|
||||||
| Hackathon | 12-09 1200-1800 | j3s home |
|
|
||||||
| Hackathon | 12-21 1000-1600 | fack home |
|
|
||||||
\ Meta | 12-23 1730-1900 | j3s home /
|
|
||||||
\_____________________________________________________/
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| EVENT DESCRIPTIONS |
|
|
||||||
| |
|
|
||||||
| * Hackathons |
|
|
||||||
| laptops, projects, and caffeine. real hacker hours |
|
|
||||||
| bring art projects, tech projects, knitting projects |
|
|
||||||
| (positive and supportive vibes only) |
|
|
||||||
| |
|
|
||||||
| * Meta |
|
|
||||||
| politics, bylaw ideas, organization |
|
|
||||||
| minority opinions appreciated |
|
|
||||||
| (generally quiet and academic, laptop recommended) |
|
|
||||||
| |
|
|
||||||
| * Rapture |
|
|
||||||
| loud music, flashing lights |
|
|
||||||
| open projector-- show us something cool |
|
|
||||||
| (alcohol, fog machines, power, but no network) |
|
|
||||||
| |
|
|
||||||
| * Games bash |
|
|
||||||
| alcohol, comradery, video games, board games |
|
|
||||||
| role-playing games, socializing |
|
|
||||||
| (power, network, quiet spaces available) |
|
|
||||||
| |
|
|
||||||
| * Movie night |
|
|
||||||
| ask in the Matrix chat for moar info! |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
|
@ -1,29 +0,0 @@
|
||||||
BEGIN:VCALENDAR
|
|
||||||
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
|
|
||||||
VERSION:2.0
|
|
||||||
METHOD:PUBLISH
|
|
||||||
BEGIN:VTIMEZONE
|
|
||||||
TZID:America/Chicago
|
|
||||||
BEGIN:DAYLIGHT
|
|
||||||
TZOFFSETFROM:-0600
|
|
||||||
TZOFFSETTO:-0500
|
|
||||||
TZNAME:CDT
|
|
||||||
DTSTART:19700308T020000
|
|
||||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
|
||||||
END:DAYLIGHT
|
|
||||||
BEGIN:STANDARD
|
|
||||||
TZOFFSETFROM:-0500
|
|
||||||
TZOFFSETTO:-0600
|
|
||||||
TZNAME:CST
|
|
||||||
DTSTART:19701101T020000
|
|
||||||
RRULE:FREQ=MONTHLY;INTERVAL=3;BYDAY=SU;BYSETPOS=-1;WKST=SU
|
|
||||||
END:STANDARD
|
|
||||||
END:VTIMEZONE
|
|
||||||
BEGIN:VEVENT
|
|
||||||
SUMMARY:Cyberia Congress Meeting
|
|
||||||
DTSTART;TZID=America/Chicago:20220430T120000
|
|
||||||
DTEND;TZID=America/Chicago:20220430T130000
|
|
||||||
DESCRIPTION:https://cyberia.club/calendar\n\nhttps://cyberia.club/mumble
|
|
||||||
LOCATION:mumble
|
|
||||||
END:VEVENT
|
|
||||||
END:VCALENDAR
|
|
28
site/culture.md
Normal file
28
site/culture.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# CULTURE
|
||||||
|
|
||||||
|
## MANIFESTO
|
||||||
|
a collective of hackers and technology enthusiasts in Minnesota fighting for a kinder, more private, free world
|
||||||
|
|
||||||
|
a world where not everything in tech is sponsored
|
||||||
|
|
||||||
|
a world of makers
|
||||||
|
|
||||||
|
we hack on projects and inspire one another
|
||||||
|
|
||||||
|
we provide ethical tech services for ourselves and a variety of local organizations
|
||||||
|
|
||||||
|
we communicate via meatspace, matrix, mailing lists, signal, IRC, and mumble
|
||||||
|
|
||||||
|
if you have felt isolated by technology rather than embraced,
|
||||||
|
|
||||||
|
please, join us. together we can close the world and open the next
|
||||||
|
|
||||||
|
## TESTIMONIALS
|
||||||
|
* I am a pioneer of spreadsheets related weirdness
|
||||||
|
\- cass
|
||||||
|
* stumbled upon at random, did not regret joining all their rooms
|
||||||
|
\- f0x
|
||||||
|
* agree with f0x
|
||||||
|
\- user_0x78
|
||||||
|
* I love this group for the abundance of kindhearted people, the commitment to establishing a positive environment, and of course the tremendous concentration of technical acumen.
|
||||||
|
\- symys
|
|
@ -1,58 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| CULTURE |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| MANIFESTO |
|
|
||||||
| |
|
|
||||||
| a collective of hackers and technology enthusiasts |
|
|
||||||
| in Minnesota |
|
|
||||||
| |
|
|
||||||
| fighting for a kinder, more private, free world |
|
|
||||||
| |
|
|
||||||
| a world where not everything in tech is sponsored |
|
|
||||||
| |
|
|
||||||
| a world of makers |
|
|
||||||
| |
|
|
||||||
| we hack on projects and inspire one another |
|
|
||||||
| |
|
|
||||||
| we provide ethical tech services for ourselves and a |
|
|
||||||
| variety of local organizations |
|
|
||||||
| |
|
|
||||||
| we communicate via meatspace, matrix, mailing lists, |
|
|
||||||
| signal, IRC, and mumble |
|
|
||||||
| |
|
|
||||||
| if you have felt isolated by technology rather than |
|
|
||||||
| embraced |
|
|
||||||
| |
|
|
||||||
| please, join us. together we can close the world |
|
|
||||||
| |
|
|
||||||
| and open the next |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| TESTIMONIALS |
|
|
||||||
| |
|
|
||||||
| * I am a pioneer of spreadsheets related weirdness |
|
|
||||||
| - cass |
|
|
||||||
| |
|
|
||||||
| * stumbled upon at random, did not regret joining all |
|
|
||||||
| their rooms |
|
|
||||||
| - f0x |
|
|
||||||
| |
|
|
||||||
| * agree with f0x |
|
|
||||||
| - user_0x78 |
|
|
||||||
| |
|
|
||||||
| * I love this group for the abundance of kindhearted |
|
|
||||||
| people, the commitment to establishing a positive |
|
|
||||||
| environment, and of course the tremendous |
|
|
||||||
| concentration of technical acumen. |
|
|
||||||
| - symys |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
|
@ -1,27 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| DOCS |
|
|
||||||
| |
|
|
||||||
| * all docs for all services and workflows be here |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
design:
|
|
||||||
- <a href=/docs/style>style</a>
|
|
||||||
|
|
||||||
payment:
|
|
||||||
- <a href=/docs/reimbursement>reimbursement requests</a>
|
|
||||||
- <a href=/docs/btc>bitcoin</a>
|
|
||||||
- <a href=/docs/xmr>xmr/monero</a>
|
|
||||||
|
|
||||||
services:
|
|
||||||
- <a href=/docs/matrix>matrix</a>
|
|
||||||
- <a href=/docs/git>git</a>
|
|
||||||
- <a href=/docs/mumble>mumble</a>
|
|
||||||
- <a href=/docs/tor>tor</a>
|
|
||||||
|
|
||||||
operations:
|
|
||||||
- <a href="https://git.cyberia.club/services/ops-handbook/about/">ops-handbook</a>
|
|
||||||
|
|
||||||
etc:
|
|
|
@ -1,24 +0,0 @@
|
||||||
BITCOIN
|
|
||||||
|
|
||||||
Learn about Bitcoin: https://bitcoin.org
|
|
||||||
|
|
||||||
Cyberia Bitcoin Wallet Address:
|
|
||||||
bc1qhrh4lz88cexh3vxqt54l30a9f0gah73gxwfswf
|
|
||||||
|
|
||||||
Cyberia Bitcoin Wallet QR code:
|
|
||||||
|
|
||||||
▄▄▄▄▄▄▄ ▄ ▄ ▄▄▄ ▄ ▄ ▄▄▄▄▄▄▄
|
|
||||||
█ ▄▄▄ █ ▄██▀▀▄▀▄▀▀▀▄▄ █ ▄▄▄ █
|
|
||||||
█ ███ █ █▀▀▄█▀▀█▄▀ ▄█ █ ███ █
|
|
||||||
█▄▄▄▄▄█ ▄ █▀▄ █ ▄ █▀▄ █▄▄▄▄▄█
|
|
||||||
▄▄▄▄ ▄ ▄ █▄█ ▄▀ █ ▄▄▄ ▄▄▄ ▄
|
|
||||||
█▄▄█▀▀▄ █▄█▄█▄ ▄ ▀▀▀▀█▀▄▄▄▀
|
|
||||||
█▄▀██▀▄▀ ██ ▄█▄█▄▄█▀▄▀ ▄▀ ▄█▀
|
|
||||||
▀ ▀██▄█ ▀ █▀ ▀▄▀▀█ ▄█▀ ▄ ▀█
|
|
||||||
▀▄▄▄▀█▄▄▄▀▄▀▄▄▀█ █▄ ▄ ▄█ ▀
|
|
||||||
▄▀▀▄▄▀▄ ▀▄ ███▄ ▄ ▀█▄ ▀▄
|
|
||||||
▄█ ▀▄▄ ▄▀▄▀ ▄ ▄█▀█▄▄▄████ █
|
|
||||||
▄▄▄▄▄▄▄ ▀█ ▄ ██ ██ ▄ █ ██▀
|
|
||||||
█ ▄▄▄ █ █▄█▀▀ █ ▄▀ █▄▄▄██▄▄▄
|
|
||||||
█ ███ █ ██ ▀▄▀█▀██▄█ ▀ ▄▀█▀ █
|
|
||||||
█▄▄▄▄▄█ █▄ ▄▀▀ ▀▄ ▀▀█▀▀ █▀ █
|
|
|
@ -1,65 +0,0 @@
|
||||||
Service: git
|
|
||||||
Owner: j3s@c3f.net
|
|
||||||
Updated: 1582677189
|
|
||||||
|
|
||||||
Cgit is an internal service used by many members of
|
|
||||||
Cyberia for version control purposes. It also serves as a
|
|
||||||
source of truth for many of our records. We use
|
|
||||||
https://git.zx2c4.com/cgit by Jason Donenfeld with a
|
|
||||||
custom CSS theme.
|
|
||||||
|
|
||||||
== Quickstart
|
|
||||||
Click "Git" on your navigation bar. :)
|
|
||||||
|
|
||||||
|
|
||||||
== How-Tos
|
|
||||||
|
|
||||||
> When I clone a repository, which URL should I use?
|
|
||||||
|
|
||||||
There are two URLs, and they serve different purposes.
|
|
||||||
|
|
||||||
-> git@ is a read-write URL.
|
|
||||||
-> https:// is a read-only URL.
|
|
||||||
|
|
||||||
|
|
||||||
> How do I make a new repository?
|
|
||||||
|
|
||||||
Login to gibson and issue the mkrepo command.
|
|
||||||
|
|
||||||
-> ssh gibson.cyberia.club -p 3215
|
|
||||||
-> sudo -u git mkrepo folder/reponame
|
|
||||||
|
|
||||||
================
|
|
||||||
== Resources ==
|
|
||||||
================
|
|
||||||
|
|
||||||
Philosophy
|
|
||||||
==========
|
|
||||||
Git is meant to be straightforward, and we use it as
|
|
||||||
intended. A simple remote repository, with no frills,
|
|
||||||
that hosts our code and gives us a space to collaborate.
|
|
||||||
|
|
||||||
We submit patches via mailing list - this gives us a
|
|
||||||
universal code delta (git + a diff) over a universal
|
|
||||||
medium (email).
|
|
||||||
|
|
||||||
currently, patches should be sent to `misc@c3f.net`.
|
|
||||||
|
|
||||||
|
|
||||||
Is the server backed up?
|
|
||||||
========================
|
|
||||||
Yeah, all of git is backed up many times per day to a
|
|
||||||
redundant ZFS volume.
|
|
||||||
|
|
||||||
|
|
||||||
How do I see files?
|
|
||||||
===================
|
|
||||||
Go to a repo and click `tree`.
|
|
||||||
|
|
||||||
================
|
|
||||||
== Changelog ==
|
|
||||||
================
|
|
||||||
- 2020-01-31: cgit was moved to a new URL (from
|
|
||||||
git.cyberia.club to cyberia.club/cgit)
|
|
||||||
- 2020-02-25: cgit was moved back to its'
|
|
||||||
original URL
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
doc="${1?Please enter your docname}"
|
|
||||||
|
|
||||||
cat > "$doc.txt" <<EOF
|
|
||||||
Service: $1
|
|
||||||
Owner: misc@c3f.net
|
|
||||||
Updated: $(date +%s)
|
|
||||||
EOF
|
|
||||||
|
|
||||||
entry="- <a href=/docs/$doc>$1</a>"
|
|
||||||
|
|
||||||
echo "$entry" | tee -a ../docs.txt
|
|
|
@ -1,7 +0,0 @@
|
||||||
Service: mumble
|
|
||||||
Owner: fack
|
|
||||||
Updated: 1584490184
|
|
||||||
|
|
||||||
mumble.cyberia.club
|
|
||||||
|
|
||||||
default port
|
|
|
@ -1,9 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| Requesting a reimbursement from the treasurer |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
Page has been moved! Chase that 💰💰💰💵🤑💎💰💰💰 to
|
|
||||||
the <a href="https://matrix.to/#/#treasury:cyberia.club"> treasury</a>!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| STYLE |
|
|
||||||
| |
|
|
||||||
| * This document is a style guide |
|
|
||||||
| * This document is managed by the design branch |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| COLORS |
|
|
||||||
| |
|
|
||||||
| cyberia has a cyberpunk aesthetic |
|
|
||||||
| these are the colors you're looking for |
|
|
||||||
| |
|
|
||||||
| [0000] |
|
|
||||||
| |
|
|
||||||
| +----------------------+ |
|
|
||||||
| | color | hex | |
|
|
||||||
| |----------------------| |
|
|
||||||
| | red | #a54242 | |
|
|
||||||
| | | #cc6666 | |
|
|
||||||
| | blue | #4a2842 | |
|
|
||||||
| | | #81a2be | |
|
|
||||||
| | cyan | #5e8d87 | |
|
|
||||||
| | | #b62c3e | |
|
|
||||||
| | black | #443558 | |
|
|
||||||
| | | #a92d4e | |
|
|
||||||
| | green | #85678f | |
|
|
||||||
| | | #b5bd68 | |
|
|
||||||
| | white | #707880 | |
|
|
||||||
| | | #c5c8c6 | |
|
|
||||||
| | yellow | #5bf29e | |
|
|
||||||
| | | #c3253d | |
|
|
||||||
| | magenta | #85678f | |
|
|
||||||
| | | #b294bb | |
|
|
||||||
| | background | #241e1e | |
|
|
||||||
| | foreground | #ffff9b | |
|
|
||||||
| +----------------------+ |
|
|
||||||
| |
|
|
||||||
| * colors from: https://github.com/tudurom/dotfiles |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
|
@ -1,5 +0,0 @@
|
||||||
Service: tor
|
|
||||||
Owner: fack
|
|
||||||
Updated: 1584490207
|
|
||||||
|
|
||||||
<a href="https://metrics.torproject.org/rs.html#details/1C15FD234C93B65BE0C96C19F7B774FADA339569">our relay</a>
|
|
|
@ -1,29 +0,0 @@
|
||||||
MONERO
|
|
||||||
|
|
||||||
Learn about Monero: https://getmonero.org
|
|
||||||
|
|
||||||
Cyberia Monero Wallet Address:
|
|
||||||
89Cb8FnjEXS2GaNLecdVBfQYaKJLk3qAENUdYFNhXWw2J5DQ8Kaukb9CHqZdi2mBiveAgfEacCBgeioqp7cBWAiJ8beK7SH
|
|
||||||
|
|
||||||
Cyberia Monero Wallet QR code:
|
|
||||||
|
|
||||||
|
|
||||||
█▀▀▀▀▀█ ▄█ ▄▄▀ ▄█▄▀▀██ ▀ ▄██ █▀▀▀▀▀█
|
|
||||||
█ ███ █ ▄█▀█ ██ ▄ ▀███ ██ █ ███ █
|
|
||||||
█ ▀▀▀ █ ▄ █ ▀█ ██▄▀ ███ ▄█▄██ █ ▀▀▀ █
|
|
||||||
▀▀▀▀▀▀▀ ▀ ▀ █ ▀ █ █ █▄█ █ ▀▄▀ ▀▀▀▀▀▀▀
|
|
||||||
██▀▀▀▄▀▀█▀▀ ▀█▄██ ▄▄▄ ▀█▄ █▀█▀ █ ▀ ▀▄
|
|
||||||
█▀█▄▀ ▀▄▄ ▀█▀ ▀ ▄▄▄▄ ▄ █▀▀▀█▀▀▀▀▀█
|
|
||||||
▀▀ █▀█▄▄▄▀▄▀▀█▄▀▄▄█▄▀ ▀▀▀▀██▄▀▀█▄
|
|
||||||
██▄▄▄ ▀ ██ ▄▀ ▀▀ ▀ ▀▄ ▀ ▀▀▀▀▀█ ▀▀ ▀
|
|
||||||
█ █ ▀▀▀▄▀▀ ▀▀▀▀▄▀▄█▄ ▄ ▀▄█ ▄▀█▄▀██ ▀
|
|
||||||
█ ▄ ▄ ▀█▀▀▄█▀ █▀█▀▀▄ █▄ ▄█▄ ▀▄▄▀▀█▀
|
|
||||||
█▄█ ▀ █ ▀▀▄▄▀▀▀ ▄ ▄█▀▄▄ ▀▄▄▀▀▄ ▀ █
|
|
||||||
█▄▀█▄█▀ █▀ ▄▀▄█ ▀▀ █▄▄▄█▀▀▀ ▀▀▄█ ██
|
|
||||||
▄ ▄▀██▀█▄█ ▀▀▄▀█ ▄█▄▀▀▀▀▄▀▄▄██▄ ▄▄▄
|
|
||||||
█ ▄ ▄▀ █ █▀▀██▀▀█▄ █ ▄█▀▀▀▀▄█▀ ▀ █
|
|
||||||
▀ ▀▀▀▀▀▀██ ▀▄ █▀█▀▄▄▀▄█▄▄█▀▄█▀▀▀█▄ ▄
|
|
||||||
█▀▀▀▀▀█ ▀▄█ ▄▀▄▀█▀ ▀█▄▄ ▀█ ▀ █▄▀▄▀
|
|
||||||
█ ███ █ █ ▀ ▀▄▀ ▄▀▄█▄▀█▄ ▄█▀▀██▀█▄▀█▄
|
|
||||||
█ ▀▀▀ █ █▄▀█▀ █▀ ▄▄ ▄ █▄▀▀█▄▀▀▀█
|
|
||||||
▀▀▀▀▀▀▀ ▀ ▀▀ ▀ ▀ ▀ ▀▀▀ ▀ ▀▀
|
|
96
site/donate.md
Normal file
96
site/donate.md
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
# DONATE
|
||||||
|
|
||||||
|
* You can support Cyberia's vision by sending a donation our way
|
||||||
|
* We reserve the right to reject and return donations
|
||||||
|
* If you would like to be publicly acknowledged for your donation please let us know!
|
||||||
|
Email: treasurer@cyberia.club
|
||||||
|
|
||||||
|
|
||||||
|
## LIBERAPAY
|
||||||
|
|
||||||
|
<p class="center">(cc processor: Stripe)</p>
|
||||||
|
<div class="nopre">
|
||||||
|
<a class="liberapay-btn" href="https://liberapay.com/CyberiaComputerClub/donate">
|
||||||
|
<svg viewBox="0 0 80 80" height="16" width="16">
|
||||||
|
<g transform="translate(-78.37-208.06)" fill="#1a171b">
|
||||||
|
<path d="m104.28 271.1c-3.571 0-6.373-.466-8.41-1.396-2.037-.93-3.495-2.199-4.375-3.809-.88-1.609-1.308-3.457-1.282-5.544.025-2.086.313-4.311.868-6.675l9.579-40.05 11.69-1.81-10.484 43.44c-.202.905-.314 1.735-.339 2.489-.026.754.113 1.421.415 1.999.302.579.817 1.044 1.546 1.395.729.353 1.747.579 3.055.679l-2.263 9.278"></path><path d="m146.52 246.14c0 3.671-.604 7.03-1.811 10.07-1.207 3.043-2.879 5.669-5.01 7.881-2.138 2.213-4.702 3.935-7.693 5.167-2.992 1.231-6.248 1.848-9.767 1.848-1.71 0-3.42-.151-5.129-.453l-3.394 13.651h-11.162l12.52-52.19c2.01-.603 4.311-1.143 6.901-1.622 2.589-.477 5.393-.716 8.41-.716 2.815 0 5.242.428 7.278 1.282 2.037.855 3.708 2.024 5.02 3.507 1.307 1.484 2.274 3.219 2.904 5.205.627 1.987.942 4.11.942 6.373m-27.378 15.461c.854.202 1.91.302 3.167.302 1.961 0 3.746-.364 5.355-1.094 1.609-.728 2.979-1.747 4.111-3.055 1.131-1.307 2.01-2.877 2.64-4.714.628-1.835.943-3.858.943-6.071 0-2.161-.479-3.998-1.433-5.506-.956-1.508-2.615-2.263-4.978-2.263-1.61 0-3.118.151-4.525.453l-5.28 21.948"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
<span>Donate</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
## CRYPTOCURRENCY
|
||||||
|
|
||||||
|
<p class="center">Via our BTCPay server</p>
|
||||||
|
<form class="btcpay-form nopre" method="POST" action="https://btcpay.cyberia.club/api/v1/invoices">
|
||||||
|
<input type="hidden" name="storeId" value="Bo4cE7iFU8EssMY4DRXUNtr1fjHXgCPCHA9uaaWWbaNr" />
|
||||||
|
<input type="hidden" name="checkoutDesc" value="donation" />
|
||||||
|
<div class="btcpay-custom-container">
|
||||||
|
<div class="btcpay-custom">
|
||||||
|
<input id="btcpay-input-price" name="price" type="text" min="0.00000001" max="1000" step="1" value="10" style="width: 2em;" oninput="event.preventDefault();isNaN(event.target.value) || event.target.value <= 0 ? document.querySelector('#btcpay-input-price').value = 10 : event.target.value">
|
||||||
|
</div>
|
||||||
|
<select name="currency">
|
||||||
|
<option value="USD" selected>USD</option>
|
||||||
|
<option value="GBP">GBP</option>
|
||||||
|
<option value="EUR">EUR</option>
|
||||||
|
<option value="BTC">BTC</option>
|
||||||
|
</select>
|
||||||
|
<input type="submit" class="submit" name="submit" value="Donate ->">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
Unfortunately we cannot accept cryptocurrency donations valued at more than $1,000 USD
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Direct crypto donation</summary>
|
||||||
|
<h3>Bitcoin</h3>
|
||||||
|
<p>bc1qhrh4lz88cexh3vxqt54l30a9f0gah73gxwfswf</p>
|
||||||
|
<pre role="presentation" aria-label="Bitcoin Wallet QR code">
|
||||||
|
▄▄▄▄▄▄▄ ▄ ▄ ▄▄▄ ▄ ▄ ▄▄▄▄▄▄▄
|
||||||
|
█ ▄▄▄ █ ▄██▀▀▄▀▄▀▀▀▄▄ █ ▄▄▄ █
|
||||||
|
█ ███ █ █▀▀▄█▀▀█▄▀ ▄█ █ ███ █
|
||||||
|
█▄▄▄▄▄█ ▄ █▀▄ █ ▄ █▀▄ █▄▄▄▄▄█
|
||||||
|
▄▄▄▄ ▄ ▄ █▄█ ▄▀ █ ▄▄▄ ▄▄▄ ▄
|
||||||
|
█▄▄█▀▀▄ █▄█▄█▄ ▄ ▀▀▀▀█▀▄▄▄▀
|
||||||
|
█▄▀██▀▄▀ ██ ▄█▄█▄▄█▀▄▀ ▄▀ ▄█▀
|
||||||
|
▀ ▀██▄█ ▀ █▀ ▀▄▀▀█ ▄█▀ ▄ ▀█
|
||||||
|
▀▄▄▄▀█▄▄▄▀▄▀▄▄▀█ █▄ ▄ ▄█ ▀
|
||||||
|
▄▀▀▄▄▀▄ ▀▄ ███▄ ▄ ▀█▄ ▀▄
|
||||||
|
▄█ ▀▄▄ ▄▀▄▀ ▄ ▄█▀█▄▄▄████ █
|
||||||
|
▄▄▄▄▄▄▄ ▀█ ▄ ██ ██ ▄ █ ██▀
|
||||||
|
█ ▄▄▄ █ █▄█▀▀ █ ▄▀ █▄▄▄██▄▄▄
|
||||||
|
█ ███ █ ██ ▀▄▀█▀██▄█ ▀ ▄▀█▀ █
|
||||||
|
█▄▄▄▄▄█ █▄ ▄▀▀ ▀▄ ▀▀█▀▀ █▀ █
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3>Monero</h3>
|
||||||
|
<p>89Cb8FnjEXS2GaNLecdVBfQYaKJLk3qAENUdYFNhXWw2J5DQ8Kaukb9CHqZdi2mBiveAgfEacCBgeioqp7cBWAiJ8beK7SH</p>
|
||||||
|
<pre role="presentation" aria-label="Monero Wallet QR code">
|
||||||
|
█▀▀▀▀▀█ ▄█ ▄▄▀ ▄█▄▀▀██ ▀ ▄██ █▀▀▀▀▀█
|
||||||
|
█ ███ █ ▄█▀█ ██ ▄ ▀███ ██ █ ███ █
|
||||||
|
█ ▀▀▀ █ ▄ █ ▀█ ██▄▀ ███ ▄█▄██ █ ▀▀▀ █
|
||||||
|
▀▀▀▀▀▀▀ ▀ ▀ █ ▀ █ █ █▄█ █ ▀▄▀ ▀▀▀▀▀▀▀
|
||||||
|
██▀▀▀▄▀▀█▀▀ ▀█▄██ ▄▄▄ ▀█▄ █▀█▀ █ ▀ ▀▄
|
||||||
|
█▀█▄▀ ▀▄▄ ▀█▀ ▀ ▄▄▄▄ ▄ █▀▀▀█▀▀▀▀▀█
|
||||||
|
▀▀ █▀█▄▄▄▀▄▀▀█▄▀▄▄█▄▀ ▀▀▀▀██▄▀▀█▄
|
||||||
|
██▄▄▄ ▀ ██ ▄▀ ▀▀ ▀ ▀▄ ▀ ▀▀▀▀▀█ ▀▀ ▀
|
||||||
|
█ █ ▀▀▀▄▀▀ ▀▀▀▀▄▀▄█▄ ▄ ▀▄█ ▄▀█▄▀██ ▀
|
||||||
|
█ ▄ ▄ ▀█▀▀▄█▀ █▀█▀▀▄ █▄ ▄█▄ ▀▄▄▀▀█▀
|
||||||
|
█▄█ ▀ █ ▀▀▄▄▀▀▀ ▄ ▄█▀▄▄ ▀▄▄▀▀▄ ▀ █
|
||||||
|
█▄▀█▄█▀ █▀ ▄▀▄█ ▀▀ █▄▄▄█▀▀▀ ▀▀▄█ ██
|
||||||
|
▄ ▄▀██▀█▄█ ▀▀▄▀█ ▄█▄▀▀▀▀▄▀▄▄██▄ ▄▄▄
|
||||||
|
█ ▄ ▄▀ █ █▀▀██▀▀█▄ █ ▄█▀▀▀▀▄█▀ ▀ █
|
||||||
|
▀ ▀▀▀▀▀▀██ ▀▄ █▀█▀▄▄▀▄█▄▄█▀▄█▀▀▀█▄ ▄
|
||||||
|
█▀▀▀▀▀█ ▀▄█ ▄▀▄▀█▀ ▀█▄▄ ▀█ ▀ █▄▀▄▀
|
||||||
|
█ ███ █ █ ▀ ▀▄▀ ▄▀▄█▄▀█▄ ▄█▀▀██▀█▄▀█▄
|
||||||
|
█ ▀▀▀ █ █▄▀█▀ █▀ ▄▄ ▄ █▄▀▀█▄▀▀▀█
|
||||||
|
▀▀▀▀▀▀▀ ▀ ▀▀ ▀ ▀ ▀ ▀▀▀ ▀ ▀▀
|
||||||
|
</pre>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
## CASH or CHECK or BANK WIRE
|
||||||
|
|
||||||
|
* Email us: treasurer@cyberia.club
|
|
@ -1,80 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| DONATE |
|
|
||||||
| |
|
|
||||||
| * You can support furthering of Cyberia's principles |
|
|
||||||
| by sending a donation our way. |
|
|
||||||
| |
|
|
||||||
| * We reserve the right to reject and return donations |
|
|
||||||
| |
|
|
||||||
| * If you want to be publicly acknowledged for your |
|
|
||||||
| donation please let us know! |
|
|
||||||
| Email: treasurer@cyberia.club |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
</pre></pre>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
Donate via liberapay (cc processor: stripe)
|
|
||||||
</pre>
|
|
||||||
<div>
|
|
||||||
<!--<script src="https://liberapay.com/cybertrez/widgets/button.js"></script>-->
|
|
||||||
<!-- liberapay is too slow to respond sometimes and a script does not seem needed here, -->
|
|
||||||
<!-- so i'm inlining this content for better or for worse -->
|
|
||||||
|
|
||||||
<a class="liberapay-btn" href="https://liberapay.com/CyberiaComputerClub/donate">
|
|
||||||
|
|
||||||
<svg viewBox="0 0 80 80" height="16" width="16">
|
|
||||||
<g transform="translate(-78.37-208.06)" fill="#1a171b">
|
|
||||||
<path d="m104.28 271.1c-3.571 0-6.373-.466-8.41-1.396-2.037-.93-3.495-2.199-4.375-3.809-.88-1.609-1.308-3.457-1.282-5.544.025-2.086.313-4.311.868-6.675l9.579-40.05 11.69-1.81-10.484 43.44c-.202.905-.314 1.735-.339 2.489-.026.754.113 1.421.415 1.999.302.579.817 1.044 1.546 1.395.729.353 1.747.579 3.055.679l-2.263 9.278"></path><path d="m146.52 246.14c0 3.671-.604 7.03-1.811 10.07-1.207 3.043-2.879 5.669-5.01 7.881-2.138 2.213-4.702 3.935-7.693 5.167-2.992 1.231-6.248 1.848-9.767 1.848-1.71 0-3.42-.151-5.129-.453l-3.394 13.651h-11.162l12.52-52.19c2.01-.603 4.311-1.143 6.901-1.622 2.589-.477 5.393-.716 8.41-.716 2.815 0 5.242.428 7.278 1.282 2.037.855 3.708 2.024 5.02 3.507 1.307 1.484 2.274 3.219 2.904 5.205.627 1.987.942 4.11.942 6.373m-27.378 15.461c.854.202 1.91.302 3.167.302 1.961 0 3.746-.364 5.355-1.094 1.609-.728 2.979-1.747 4.111-3.055 1.131-1.307 2.01-2.877 2.64-4.714.628-1.835.943-3.858.943-6.071 0-2.161-.479-3.998-1.433-5.506-.956-1.508-2.615-2.263-4.978-2.263-1.61 0-3.118.151-4.525.453l-5.28 21.948">
|
|
||||||
</path>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
<span>Donate</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
|
|
||||||
|
|
||||||
CRYPTOCURRENCY
|
|
||||||
</pre>
|
|
||||||
<pre>
|
|
||||||
Bitcoin, Litecoin, Monero
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
<form method="POST" action="https://btcpay.cyberia.club/api/v1/invoices" class="btcpay-form">
|
|
||||||
<input type="hidden" name="storeId" value="Bo4cE7iFU8EssMY4DRXUNtr1fjHXgCPCHA9uaaWWbaNr" />
|
|
||||||
<input type="hidden" name="checkoutDesc" value="donation" />
|
|
||||||
<div class="btcpay-custom-container">
|
|
||||||
<div class="btcpay-custom">
|
|
||||||
<input id="btcpay-input-price" name="price" type="text" min="0.00000001" max="1000" step="1" value="10" style="width: 2em;" oninput="event.preventDefault();isNaN(event.target.value) || event.target.value <= 0 ? document.querySelector('#btcpay-input-price').value = 10 : event.target.value">
|
|
||||||
</div>
|
|
||||||
<select name="currency">
|
|
||||||
<option value="USD" selected>USD</option>
|
|
||||||
<option value="GBP">GBP</option>
|
|
||||||
<option value="EUR">EUR</option>
|
|
||||||
<option value="BTC">BTC</option>
|
|
||||||
</select>
|
|
||||||
<input type="submit" class="submit" name="submit" value="Donate Cryptocurrency">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<pre>
|
|
||||||
Unfortunately we cannot accept cryptocurrency
|
|
||||||
donations valued at more than $1,000 USD
|
|
||||||
<a href="https://cyberia.club/docs/btc">Learn more about Bitcoin</a>
|
|
||||||
<a href="https://cyberia.club/docs/xmr">Learn more about Monero</a>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<pre><pre>
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| CASH or CHECK or BANK WIRE |
|
|
||||||
| |
|
|
||||||
| * Email us: treasurer@cyberia.club |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
3
site/failure.md
Normal file
3
site/failure.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# PAYMENT FAILED
|
||||||
|
|
||||||
|
Stripe not working? email ops@cyberia.club
|
|
@ -1,8 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| PAYMENT FAILED |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
| Stripe not working? email ops@cyberia.club |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
55
site/index.md
Normal file
55
site/index.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
# Cyberia Computer Club
|
||||||
|
|
||||||
|
A kind and amazing hacker collective centered in Minnesota, with global friends.
|
||||||
|
|
||||||
|
|
||||||
|
<pre aria-label="ASCII art of Iwakura Lain saying 'close the old world, open the next'">
|
||||||
|
_..--------.._
|
||||||
|
,-'' `-.
|
||||||
|
,' `.
|
||||||
|
, \
|
||||||
|
/ \
|
||||||
|
/ '. \
|
||||||
|
' / || ;
|
||||||
|
; n /| |/ | |
|
||||||
|
| / v /\/`-'vv\'.|\ ,
|
||||||
|
: /v`,--- ----.^. ;
|
||||||
|
' | / .`, , .`\| ;
|
||||||
|
| n| '.__/ \ ___/|\ ;
|
||||||
|
` | ` | \/|
|
||||||
|
\ \ \ | /\/
|
||||||
|
'; `-\ `' /|/ |'
|
||||||
|
` \ - /| |
|
||||||
|
` `. .' | |
|
||||||
|
v,_ `;._ _.-; | /
|
||||||
|
`'`\|-_`'-''__/^'^' | |
|
||||||
|
\-v-/ | |
|
||||||
|
cL0s3 th3 o1d w0rld | /
|
||||||
|
0p3n th3 n3xt ||
|
||||||
|
||
|
||||||
|
|,
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
## WHAT DO?
|
||||||
|
|
||||||
|
- we hack
|
||||||
|
endlessly and mercilessly on anything
|
||||||
|
and everything. that router? hacked it.
|
||||||
|
how about that scooter? yep, hacked. old
|
||||||
|
sock? definitely hacked. bicycles? art?
|
||||||
|
music? hair? masks? we have no limits.
|
||||||
|
- we provide services
|
||||||
|
email, matrix, tor, vms, and moar?!
|
||||||
|
if you have a want, talk to us!
|
||||||
|
we are very helpful.
|
||||||
|
- we care about
|
||||||
|
simplicity, privacy, accessibility,
|
||||||
|
kindness, hacking, people, openness,
|
||||||
|
honesty, transparency,
|
||||||
|
and a lot more
|
||||||
|
- we move
|
||||||
|
against the grain of big business tech
|
||||||
|
against the leeches who stole all of the magic
|
||||||
|
against those who care for profit more than people
|
||||||
|
- help us close the old world and open the next
|
|
@ -1,73 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| Cyberia |
|
|
||||||
| |
|
|
||||||
| A kind and amazing hacker collective |
|
|
||||||
| centered in Minnesota, with global |
|
|
||||||
| friends. |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
_..--------.._
|
|
||||||
,-'' `-.
|
|
||||||
,' `.
|
|
||||||
, \
|
|
||||||
/ \
|
|
||||||
/ '. \
|
|
||||||
' / || ;
|
|
||||||
; n /| |/ | |
|
|
||||||
| / v /\/`-'vv\'.|\ ,
|
|
||||||
: /v`,--- ----.^. ;
|
|
||||||
' | / .`, , .`\| ;
|
|
||||||
| n| '.__/ \ ___/|\ ;
|
|
||||||
` | ` | \/|
|
|
||||||
\ \ \ | /\/
|
|
||||||
'; `-\ `' /|/ |'
|
|
||||||
` \ - /| |
|
|
||||||
` `. .' | |
|
|
||||||
v,_ `;._ _.-; | /
|
|
||||||
`'`\|-_`'-''__/^'^' | |
|
|
||||||
\-v-/ | |
|
|
||||||
cL0s3 th3 w0rld | /
|
|
||||||
0p3n th3 n3xt ||
|
|
||||||
||
|
|
||||||
|,
|
|
||||||
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| PANDEMICS AND PROTESTS |
|
|
||||||
| |
|
|
||||||
| mask on |
|
|
||||||
| tv off |
|
|
||||||
| stay safe |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
|
|
||||||
WHAT DO?
|
|
||||||
--------
|
|
||||||
~ we hack
|
|
||||||
endlessly and mercilessly on anything
|
|
||||||
and everything. that router? hacked it.
|
|
||||||
how about that scooter? yep, hacked. old
|
|
||||||
sock? definitely hacked. bicycles? art?
|
|
||||||
music? hair? masks? we have no limits.
|
|
||||||
|
|
||||||
~ we provide services
|
|
||||||
email, matrix, tor, vms, and moar?!
|
|
||||||
if you have a want, talk to us!
|
|
||||||
we are very helpful.
|
|
||||||
|
|
||||||
~ we care about
|
|
||||||
simplicity, privacy, accessibility,
|
|
||||||
kindness, hacking, people, openness,
|
|
||||||
honesty, transparency,
|
|
||||||
and a lot more
|
|
||||||
|
|
||||||
~ we move
|
|
||||||
against the grain of big business tech
|
|
||||||
against the leeches who stole all of the magic
|
|
||||||
against those who care for profit more than people
|
|
||||||
|
|
||||||
~ help us close the old world and open the next
|
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
"@context" : "http://schema.org",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"@type" : "Organization",
|
|
||||||
"organizationType" : "Nonprofit",
|
|
||||||
"name" : "Cyberia Computer Club",
|
|
||||||
"tagLine" : "",
|
|
||||||
"homeUrl" : "https://libreops.cc",
|
|
||||||
"logo" : "https://libreops.cc/static/img/libreops.svg",
|
|
||||||
"description": "",
|
|
||||||
"communicationLanguages": ["en"],
|
|
||||||
"contactUrl": "https://matrix.to/#/#services:cyberia.club",
|
|
||||||
"privacyPolicyUrl" : "https://git.cyberia.club/congress/privacy-policy/about",
|
|
||||||
"termsOfServiceUrl" : "https://git.cyberia.club/congress/terms-of-service/about",
|
|
||||||
"isServiceProvider" : true,
|
|
||||||
"foundingDate": "2019",
|
|
||||||
"dateCreated": "2020-06-11T16:48:34Z",
|
|
||||||
"dateModified": "2020-06-11T16:48:34Z"
|
|
||||||
}
|
|
||||||
|
|
27
site/matrix.md
Normal file
27
site/matrix.md
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# MATRIX
|
||||||
|
|
||||||
|
Cyberia runs a Matrix server. Matrix is a lot like Discord, except it's 100% free and always will be. We run Matrix on our own servers, so your data doesn't rest in the hands of big money tech interests.
|
||||||
|
|
||||||
|
Web Client (you probably want this):
|
||||||
|
https://chat.cyberia.club
|
||||||
|
|
||||||
|
Homeserver URL:
|
||||||
|
https://matrix.cyberia.club
|
||||||
|
|
||||||
|
|
||||||
|
## THIS IS COOL CAN I SIGN UP PLS?
|
||||||
|
|
||||||
|
To help keep spam down, we have a manual account review process. Could you tell us a little about yourself?
|
||||||
|
|
||||||
|
We are trying to build a kind & earnest community focused around a mutual love for computers and a welcoming respect for everyone.
|
||||||
|
|
||||||
|
However we usually only create accounts for folks who want to participate in our channels. Please send an email to ops@cyberia.club with:
|
||||||
|
|
||||||
|
- your requested username
|
||||||
|
- a description of why you're interested in joining our community
|
||||||
|
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
Once your account is created you can log in with the matrix client of your choice, or use our web-based client: https://chat.cyberia.club/
|
||||||
|
|
||||||
|
More docs: https://wiki.cyberia.club/hypha/services/matrix
|
|
@ -1,47 +0,0 @@
|
||||||
+---------------------------------------------+
|
|
||||||
| |
|
|
||||||
| MATRIX |
|
|
||||||
| |
|
|
||||||
+---------------------------------------------+
|
|
||||||
|
|
||||||
Cyberia runs a Matrix server. Matrix is a lot
|
|
||||||
like Discord, except it's 100% free and always
|
|
||||||
will be. We run Matrix on our own servers, so
|
|
||||||
your data doesn't rest in the hands of big
|
|
||||||
money tech interests.
|
|
||||||
|
|
||||||
Web Client (you probably want this):
|
|
||||||
https://chat.cyberia.club
|
|
||||||
|
|
||||||
Homeserver URL:
|
|
||||||
https://matrix.cyberia.club
|
|
||||||
|
|
||||||
|
|
||||||
THIS IS COOL CAN I SIGN UP PLS?
|
|
||||||
|
|
||||||
To help keep spam down, we have a manual
|
|
||||||
account review process. Could you tell us
|
|
||||||
a little about yourself?
|
|
||||||
|
|
||||||
We are trying to build a kind & earnest
|
|
||||||
community focused around a mutual love for
|
|
||||||
computers and a welcoming respect for everyone.
|
|
||||||
|
|
||||||
However we usually only create accounts for
|
|
||||||
folks who want to participate in our channels.
|
|
||||||
Please send an email to ops@cyberia.club.
|
|
||||||
|
|
||||||
with:
|
|
||||||
|
|
||||||
[requested username]
|
|
||||||
|
|
||||||
[description of why you're
|
|
||||||
interested in joining our community]
|
|
||||||
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
Once your account is created you can log in
|
|
||||||
with the matrix client of your choice, or use
|
|
||||||
our web-based client: https://chat.cyberia.club/
|
|
||||||
|
|
||||||
More docs: https://wiki.cyberia.club/hypha/services/matrix
|
|
7
site/mumble.md
Normal file
7
site/mumble.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# MUMBLE
|
||||||
|
|
||||||
|
Mumble is an open source, low-latency, high quality voice chat software. It's useful for conferencing, gaming, or general chatting.
|
||||||
|
|
||||||
|
our server: mumble.cyberia.club, default port
|
||||||
|
|
||||||
|
download mumble: https://www.mumble.info/downloads/
|
|
@ -1,13 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| MUMBLE |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
Mumble is an open source, low-latency, high quality voice
|
|
||||||
chat software. It's useful for conferencing, gaming, or
|
|
||||||
general chatting
|
|
||||||
|
|
||||||
server: mumble.cyberia.club, default port
|
|
||||||
|
|
||||||
download mumble:
|
|
||||||
https://www.mumble.info/downloads/
|
|
|
@ -1,69 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| CYBERIA ORCA JAM CONTEST |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| WAT? |
|
|
||||||
| |
|
|
||||||
| we're running a smol music contest utilizing orca[1]! |
|
|
||||||
| |
|
|
||||||
| orca is a livecoding environment for music production.|
|
|
||||||
| this contest is meant to serve as an intro to this |
|
|
||||||
| awesome tool! |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| WHEN? |
|
|
||||||
| |
|
|
||||||
| Saturday, March 13th 2021 |
|
|
||||||
| Demos start at 1800 CST / 0000 UTC on mumble! |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| RULES |
|
|
||||||
| |
|
|
||||||
| * music must be produced using orca |
|
|
||||||
| * music must be produced on the day of the contest |
|
|
||||||
| * music must be submitted to #musicollab:cyberia.club |
|
|
||||||
| |
|
|
||||||
| * all entries will be streamed at stream.cyberia.club |
|
|
||||||
| * entries will be voted on, winner gets a cute prize! |
|
|
||||||
| * no registration required, just show up on jam day! |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
|
|
||||||
|
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| RESOURCES |
|
|
||||||
| |
|
|
||||||
| SOFTWARE - installing orca |
|
|
||||||
| |
|
|
||||||
| orca js: https://github.com/hundredrabbits/Orca |
|
|
||||||
| pilot: https://github.com/hundredrabbits/Pilot |
|
|
||||||
| |
|
|
||||||
| MISC SOFTWARE - orca in other ways |
|
|
||||||
| |
|
|
||||||
| orca C: https://git.sr.ht/~rabbits/orca |
|
|
||||||
| |
|
|
||||||
| LEARNING - how do i use orca? |
|
|
||||||
| |
|
|
||||||
| j3s tutorial: https://trash.j3s.sh/orca-setup.mkv |
|
|
||||||
| symys tutorial: https://youtu.be/rD1_TurZvK8 |
|
|
||||||
| learn orca: https://metasyn.github.io/learn-orca |
|
|
||||||
| |
|
|
||||||
| SAMPLES - see orca in action! |
|
|
||||||
| |
|
|
||||||
| tutorial: https://www.youtube.com/watch?v=ktcWOLeWP-g |
|
|
||||||
| sample: https://www.youtube.com/watch?v=jLhijF5swqk |
|
|
||||||
| sample: https://www.youtube.com/watch?v=1h7vQFH9xFM |
|
|
||||||
| PONG: https://www.youtube.com/watch?v=N-CzNpa5Apk |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
25
site/success.md
Normal file
25
site/success.md
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# SUCCESS
|
||||||
|
## THANK YOU FOR DONATING!
|
||||||
|
|
||||||
|
<pre role="presentation" aria-label="ASCII art of a fairy with sparkly emojis floating around them">
|
||||||
|
__ __ .--.
|
||||||
|
( ""--__( ""-_ ,' .-.\ 🌟
|
||||||
|
"-_ __ ""--__ "-_( (^_^)) /
|
||||||
|
( """--___""--__" )-'( / ✨
|
||||||
|
"-__ ""---/ ,(., )__o-/,
|
||||||
|
"""----___(.'. /--"--'
|
||||||
|
("-_"/( /
|
||||||
|
\ \ \
|
||||||
|
`. \ |
|
||||||
|
\ \/
|
||||||
|
✨ || \
|
||||||
|
,-'/`. \
|
||||||
|
) / ) \ ✨
|
||||||
|
|/ `-.\
|
||||||
|
`\
|
||||||
|
🍃
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="center small">art credit: <a href="https://www.asciiart.eu/mythology/fairies">Ojo '98</a></p>
|
||||||
|
|
||||||
|
* If you have any questions regarding your donation, email ops@cyberia.club
|
|
@ -1,29 +0,0 @@
|
||||||
+-------------------------------------------------------+
|
|
||||||
| |
|
|
||||||
| SUCCESS. THANK YOU FOR DONATING! |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
| __ __ .--. |
|
|
||||||
| ( ""--__( ""-_ ,' .-.\ <span style="width:0;height: 0;position: relative;display: inline-block;">🌟</span> |
|
|
||||||
| "-_ __ ""--__ "-_( (^_^)) / |
|
|
||||||
| ( """--___""--_)" )-'( / <span style="width:0;height: 0;position: relative;display: inline-block;">✨</span> |
|
|
||||||
| "-__ ""---) -( )__o-/, |
|
|
||||||
| """----___ / ' /--"--' |
|
|
||||||
| ("-_,`( / |
|
|
||||||
| \ \ \ |
|
|
||||||
| `. \ | |
|
|
||||||
| \ \/ |
|
|
||||||
| <span style="width:0;height: 0;position: relative;display: inline-block;">✨</span> || \ |
|
|
||||||
| ,-'/`. \ <span style="width:0;height: 0;position: relative;display: inline-block;">✨</span> |
|
|
||||||
| ) / ) \ |
|
|
||||||
| |/ `-.\ |
|
|
||||||
| <span style="width:0;height: 0;position: relative;display: inline-block;">🍃</span> `\ |
|
|
||||||
| |
|
|
||||||
| |
|
|
||||||
| * Art credit: Ojo '98 |
|
|
||||||
| -- https://www.asciiart.eu/mythology/fairies |
|
|
||||||
| |
|
|
||||||
| * If you have any questions regarding your donation, |
|
|
||||||
| email ops@cyberia.club |
|
|
||||||
| |
|
|
||||||
+-------------------------------------------------------+
|
|
1
static/.well-known/matrix/server
Normal file
1
static/.well-known/matrix/server
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"m.server": "matrix.cyberia.club"}
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
202
static/cyberia.css
Normal file
202
static/cyberia.css
Normal file
|
@ -0,0 +1,202 @@
|
||||||
|
/* layout */
|
||||||
|
html, body {
|
||||||
|
color: #bdc7b8;
|
||||||
|
font-size: calc(7px + 1vmin);
|
||||||
|
font-family: monospace;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #241e1e;
|
||||||
|
}
|
||||||
|
nav, main, footer {
|
||||||
|
margin: 2em auto;
|
||||||
|
}
|
||||||
|
nav a {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0.4em;
|
||||||
|
}
|
||||||
|
main, footer {
|
||||||
|
max-width: 512px;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
.nopre {
|
||||||
|
white-space: normal !important;
|
||||||
|
}
|
||||||
|
main > pre {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 1em auto;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* style classes */
|
||||||
|
.center { text-align: center; }
|
||||||
|
.bold { font-weight: bold; }
|
||||||
|
.italic { font-style: italic; }
|
||||||
|
.small { font-size: 0.85em; }
|
||||||
|
|
||||||
|
|
||||||
|
/* generic */
|
||||||
|
h1, h2 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h3, h4, h5, h6 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
p, ul {
|
||||||
|
text-align: left;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.external::after {
|
||||||
|
content: '->';
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
a:link {
|
||||||
|
color: #6CF;
|
||||||
|
}
|
||||||
|
a:hover, a:active, a:visited {
|
||||||
|
color: #b5bd68;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
height: auto;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0;
|
||||||
|
padding-left: 1em;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
padding-left: 1em;
|
||||||
|
text-indent: -1em;
|
||||||
|
}
|
||||||
|
li:before {
|
||||||
|
content: "~";
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table, th, td {
|
||||||
|
border: 1px dashed #bdc7b8;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Donation widgets */
|
||||||
|
|
||||||
|
/* css from https://liberapay.com/cybertrez/widgets/button.js, see donate.md */
|
||||||
|
html > body .liberapay-btn {
|
||||||
|
background-color: #f6c915;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #1a171b;
|
||||||
|
display: inline-block;
|
||||||
|
font-family: Helvetica Neue,Helvetica,sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 22px;
|
||||||
|
padding: 5px 7px 3px;
|
||||||
|
position: relative;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
html > body .liberapay-btn:hover {
|
||||||
|
background-color: #fbce1a;
|
||||||
|
}
|
||||||
|
.liberapay-btn > svg {
|
||||||
|
position: absolute;
|
||||||
|
left: 7px;
|
||||||
|
top: 7px;
|
||||||
|
}
|
||||||
|
.liberapay-btn > span {
|
||||||
|
margin-left: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.btcpay-form { flex-direction: row; } .btcpay-form--block { flex-direction: column; }
|
||||||
|
.btcpay-form .submit {
|
||||||
|
margin-left: 15px;
|
||||||
|
padding: 4px 10px;
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: bold;
|
||||||
|
font: 1.1rem monospace;
|
||||||
|
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
background: transparent;
|
||||||
|
border-radius: 3px;
|
||||||
|
border:1px solid transparent;
|
||||||
|
color: #bdc7b8;
|
||||||
|
}
|
||||||
|
.btcpay-form--block select {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.btcpay-form .btcpay-custom-container {
|
||||||
|
display: inline-flex; align-items: center; justify-content: center; flex-direction: row;
|
||||||
|
}
|
||||||
|
.btcpay-custom {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.btcpay-form select {
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
background: transparent;
|
||||||
|
border:1px solid transparent;
|
||||||
|
display: block;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-left: 0;
|
||||||
|
|
||||||
|
padding: 1px;
|
||||||
|
margin-left: 2px;
|
||||||
|
margin-right: auto;
|
||||||
|
font-size: 19px;
|
||||||
|
cursor: pointer;
|
||||||
|
font: 1.1rem monospace;
|
||||||
|
color: #bdc7b8;
|
||||||
|
}
|
||||||
|
#btcpay-input-price { -moz-appearance: none; -webkit-appearance: none;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 24px;
|
||||||
|
margin: auto;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 4px;
|
||||||
|
|
||||||
|
background: transparent;
|
||||||
|
border:1px solid transparent;
|
||||||
|
font: 1.1rem monospace;
|
||||||
|
color: #bdc7b8;
|
||||||
|
}
|
||||||
|
.btcpay-form select,
|
||||||
|
#btcpay-input-price,
|
||||||
|
.btcpay-form .submit {
|
||||||
|
border-color: #bdc7b8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#btcpay-input-price::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none; margin: 0;
|
||||||
|
}
|
10
static/cyberia.svg
Normal file
10
static/cyberia.svg
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg width="600" height="600" viewBox="0 0 600 600" version="1.1" id="svg31165" inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" sodipodi:docname="cyberia.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview id="namedview31167" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:document-units="px" showgrid="false" inkscape:zoom="1.8348087" inkscape:cx="319.37934" inkscape:cy="266.24029" inkscape:window-width="1920" inkscape:window-height="1018" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="layer1" inkscape:showpageshadow="0" inkscape:deskcolor="#d1d1d1"/>
|
||||||
|
<defs id="defs31162"/>
|
||||||
|
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
|
||||||
|
<path id="rect1039" clip-path="none" style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:#79cfdc;fill-opacity:1;stroke-width:0.541505;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" d="M 300,0 A 300,300 0 0 0 0,300 300,300 0 0 0 70.759766,492 H 529.24024 A 300,300 0 0 0 600,300 300,300 0 0 0 300,0 Z M 85.039058,508 a 300,300 0 0 0 20.806652,20 H 494.1543 a 300,300 0 0 0 20.80664,-20 z m 40.878912,36 a 300,300 0 0 0 31.95899,20 h 284.24609 a 300,300 0 0 0 31.95898,-20 z m 66.57813,36 A 300,300 0 0 0 300,600 300,300 0 0 0 407.50391,580 Z"/>
|
||||||
|
<path id="path3110" clip-path="none" style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:#a97cb7;fill-opacity:1;fill-rule:evenodd;stroke-width:0.541505;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" d="M 300,0 A 300,300 0 0 0 0,300 300,300 0 0 0 16.066406,393.50391 c 42.130453,-10.5903 73.537862,-41.95397 79.496092,-81.33984 6.695032,-44.25631 8.968622,-81.05919 36.824222,-104.56055 27.8556,-23.50136 67.52235,-5.27746 81.72852,21.57031 14.20615,26.84778 26.92466,60.31494 61.27734,61.70899 34.35268,1.39405 62.70861,-43.8662 74.15625,-74.36328 11.44764,-30.49708 47.69834,-47.77307 72.26758,-34.63477 24.56923,13.1383 34.67223,40.38966 49.53125,70.99414 14.85901,30.60448 33.60932,61.00834 56.67187,81.03906 19.37272,16.82595 40.73829,33.64697 60.72071,45.19727 A 300,300 0 0 0 600,300 300,300 0 0 0 300,0 Z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
BIN
static/favicon.ico
Normal file
BIN
static/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
20
static/librehost.json
Normal file
20
static/librehost.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"@context": "http://schema.org",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"@type": "Organization",
|
||||||
|
"organizationType": "Nonprofit",
|
||||||
|
"name": "Cyberia Computer Club",
|
||||||
|
"tagLine": "close the old world. open the next.",
|
||||||
|
"homeUrl": "https://cyberia.club",
|
||||||
|
"logo": "https://cyberia.club/logo.svg",
|
||||||
|
"description": "A kind and amazing hacker collective centered in Minnesota, with global friends.",
|
||||||
|
"communicationLanguages": ["en"],
|
||||||
|
"contactUrl": "https://matrix.to/#/#services:cyberia.club",
|
||||||
|
"privacyPolicyUrl": "https://git.cyberia.club/congress/privacy-policy/about",
|
||||||
|
"termsOfServiceUrl": "https://git.cyberia.club/congress/terms-of-service/about",
|
||||||
|
"isServiceProvider": true,
|
||||||
|
"foundingDate": "2019",
|
||||||
|
"dateCreated": "2020-06-11T16:48:34Z",
|
||||||
|
"dateModified": "2024-02-02T03:25:52Z"
|
||||||
|
}
|
||||||
|
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
35
template.html
Executable file
35
template.html
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Cyberia Computer Club</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
|
<meta name="Description" content="Cyberia Computer Club">
|
||||||
|
<link rel="stylesheet" href="/cyberia.css">
|
||||||
|
<link rel="icon" href="/favicon.ico">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<nav>
|
||||||
|
<a href="/">Cyberia</a>
|
||||||
|
<a href="/culture">Culture</a>
|
||||||
|
<a href="https://blog.cyberia.club/read">Blog</a>
|
||||||
|
<a href="/calendar">Calendar</a>
|
||||||
|
<a href="/donate">Donate</a>
|
||||||
|
<a href="/matrix">Matrix (Chat)</a>
|
||||||
|
<a href="/mumble">Mumble</a>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<a class="external" href="https://capsul.org">Capsul</a>
|
||||||
|
<a class="external" href="https://nullhex.com">Nullhex</a>
|
||||||
|
<a class="external" href="https://git.cyberia.club">Git</a>
|
||||||
|
<a class="external" href="https://wiki.cyberia.club">Wiki</a>
|
||||||
|
<a class="external" href="https://stream.cyberia.club">Stream</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<main>%%CONTENT%%</main>
|
||||||
|
|
||||||
|
<footer>(c) Attribution-ShareAlike 4.0 International
|
||||||
|
Cyberia Computer Club 2020-∞</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in a new issue