Site usability update #7
58 changed files with 2435 additions and 2271 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
|||
.vscode
|
||||
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
|
||||
git pull
|
||||
./make
|
||||
npm clean-install
|
||||
npm run build
|
||||
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