Compare commits

..

1 Commits

Author SHA1 Message Date
Ben Harris 6ca5d668d0
offline day 2019-03-20 22:46:50 -04:00
38 changed files with 528 additions and 711 deletions

View File

@ -1,11 +1,6 @@
{
"require": {
"tildeverse/wiki": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "https://tildegit.org/ben/tildewiki"
}
]
"mnapoli/front-yaml": "^1.6",
"michelf/php-markdown": "^1.8"
}
}

115
composer.lock generated
View File

@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "3ab3df15c4e40417f427b37691e83088",
"content-hash": "f693531fd51bd92297c17d6a290a6f16",
"packages": [
{
"name": "erusev/parsedown",
"version": "1.7.3",
"version": "1.7.1",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown.git",
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7"
"reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
"url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
"reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
"shasum": ""
},
"require": {
@ -50,51 +50,53 @@
"markdown",
"parser"
],
"time": "2019-03-17T18:48:37+00:00"
"time": "2018-03-08T01:11:30+00:00"
},
{
"name": "erusev/parsedown-extra",
"version": "0.7.1",
"name": "michelf/php-markdown",
"version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown-extra.git",
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c"
"url": "https://github.com/michelf/php-markdown.git",
"reference": "01ab082b355bf188d907b9929cd99b2923053495"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/0db5cce7354e4b76f155d092ab5eb3981c21258c",
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c",
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/01ab082b355bf188d907b9929cd99b2923053495",
"reference": "01ab082b355bf188d907b9929cd99b2923053495",
"shasum": ""
},
"require": {
"erusev/parsedown": "~1.4"
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-0": {
"ParsedownExtra": ""
"psr-4": {
"Michelf\\": "Michelf/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause"
],
"authors": [
{
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
"name": "Michel Fortin",
"email": "michel.fortin@michelf.ca",
"homepage": "https://michelf.ca/",
"role": "Developer"
},
{
"name": "John Gruber",
"homepage": "https://daringfireball.net/"
}
],
"description": "An extension of Parsedown that adds support for Markdown Extra.",
"homepage": "https://github.com/erusev/parsedown-extra",
"description": "PHP Markdown",
"homepage": "https://michelf.ca/projects/php-markdown/",
"keywords": [
"markdown",
"markdown extra",
"parsedown",
"parser"
"markdown"
],
"time": "2015-11-01T10:19:22+00:00"
"time": "2018-01-15T00:49:33+00:00"
},
{
"name": "mnapoli/front-yaml",
@ -133,28 +135,25 @@
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.11.0",
"version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "82ebae02209c21113908c229e9883c419720738a"
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
"reference": "82ebae02209c21113908c229e9883c419720738a",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.11-dev"
"dev-master": "1.8-dev"
}
},
"autoload": {
@ -187,20 +186,20 @@
"polyfill",
"portable"
],
"time": "2019-02-06T07:57:58+00:00"
"time": "2018-04-30T19:57:29+00:00"
},
{
"name": "symfony/yaml",
"version": "v4.3.2",
"version": "v4.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99"
"reference": "80e4bfa9685fc4a09acc4a857ec16974a9cd944e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/c60ecf5ba842324433b46f58dc7afc4487dbab99",
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99",
"url": "https://api.github.com/repos/symfony/yaml/zipball/80e4bfa9685fc4a09acc4a857ec16974a9cd944e",
"reference": "80e4bfa9685fc4a09acc4a857ec16974a9cd944e",
"shasum": ""
},
"require": {
@ -219,7 +218,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.3-dev"
"dev-master": "4.1-dev"
}
},
"autoload": {
@ -246,45 +245,13 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2019-04-06T14:04:46+00:00"
},
{
"name": "tildeverse/wiki",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://tildegit.org/ben/tildewiki",
"reference": "751eb64c383cb7c6ec643eaf683b88aa1de351ea"
},
"require": {
"erusev/parsedown-extra": "^0.7.1",
"mnapoli/front-yaml": "^1.6"
},
"type": "library",
"autoload": {
"psr-4": {
"Tildeverse\\Wiki\\": "src/"
}
},
"license": [
"GPLv3"
],
"authors": [
{
"name": "Ben Harris",
"email": "ben@tilde.team"
}
],
"description": "parsedown extensions for tilde wikis",
"time": "2019-07-03T05:06:34+00:00"
"time": "2018-05-30T07:26:09+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"tildeverse/wiki": 20
},
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,7 @@
<body>
<a href="https://tildegit.org/team/site/src/branch/master/css">
<a href="https://tildegit.org/team/css">
<img style="position: absolute; top: 0; left: 0; border: 0;z-index:1001;" src="img/fork.png" alt="Fork me on GitHub">
</a>
@ -792,7 +792,7 @@ end</pre>
<p>Created by
<a href="//brobin.me">Tobin Brown</a>. &copy; 2015</p>
<p>
<a href="https://tildegit.org/team/site/src/branch/master/css">Forked</a> by
<a href="https://tildegit.org/team/css">Forked</a> by
<a href="https://tilde.team/~ben/">~ben</a>
</p>
</div>
@ -805,7 +805,7 @@ end</pre>
<!-- Github stars script -->
<script>jQuery(document).ready(function ($) {
$.getJSON("https://tildegit.org/api/v1/repos/team/site", function (data) {
$.getJSON("https://tildegit.org/api/v1/repos/team/css", function (data) {
$("#stars").text(data['stars_count'] + " stars");
});
});</script>

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,7 @@
<body>
<a href="https://tildegit.org/team/site/src/branch/master/css">
<a href="https://tildegit.org/team/css">
<img style="position: absolute; top: 0; left: 0; border: 0;z-index:1001;" src="img/fork.png" alt="Fork me on GitHub">
</a>
@ -792,7 +792,7 @@ end</pre>
<p>Created by
<a href="//brobin.me">Tobin Brown</a>. &copy; 2015</p>
<p>
<a href="https://tildegit.org/team/site/src/branch/master/css">Forked</a> by
<a href="https://tildegit.org/team/css">Forked</a> by
<a href="https://tilde.team/~ben/">~ben</a>
</p>
</div>
@ -805,7 +805,7 @@ end</pre>
<!-- Github stars script -->
<script>jQuery(document).ready(function ($) {
$.getJSON("https://tildegit.org/api/v1/repos/team/site", function (data) {
$.getJSON("https://tildegit.org/api/v1/repos/team/css", function (data) {
$("#stars").text(data['stars_count'] + " stars");
});
});</script>

View File

@ -175,20 +175,14 @@ tr.active {
// List groups
// Highlight active item
.list-group-item {
&.active {
font-weight: bold;
border: 1px solid #222;
.list-group-item.active {
font-weight: bold;
border: 1px solid #222;
&:hover,
&:focus {
background: #1a1a1a;
border: 1px solid #222;
}
}
p {
word-wrap: break-word;
overflow-wrap: break-word;
&:hover,
&:focus {
background: #1a1a1a;
border: 1px solid #222;
}
}

4
discord/index.php Executable file
View File

@ -0,0 +1,4 @@
<?php
header("Location:https://discord.gg/BH4Bs5U");
die();

View File

@ -1,7 +1,13 @@
<?php
if (!isset($_GET["dismiss"])
|| (isset($_GET["dismiss"]) && $_GET["dismiss"] != "true")) {
header("Location: /offline.html");
die();
}
include 'header.php';
require __DIR__.'/vendor/autoload.php';
$parser = Tildeverse\Wiki\Parser::factory();
$parser = new Mni\FrontYAML\Parser();
?>
<div class="jumbotron">
@ -15,34 +21,14 @@ $parser = Tildeverse\Wiki\Parser::factory();
</pre>
<br>
<p>a digital community for socializing, learning, and making cool stuff</p>
</div>
<p>
tilde.team is a shared system that provides an inclusive,
non-commercial space for teaching, learning, practicing and
enjoying the social medium of unix.
</p>
<p>
i created this tilde after hearing about paul ford's
<a href="http://tilde.club/">tilde.club</a>. when i was unable
to join due to the waitlist, i decided to create my own tilde.
</p>
<p>tilde.team is a shared system that provides an inclusive, non-commercial space for teaching, learning, practicing and enjoying the social medium of unix.</p>
<p>i created this tilde after hearing about paul ford's <a href="http://tilde.club/">tilde.club</a>. when i was unable to join due to the waitlist, i decided to create my own tilde.</p>
<p>thanks for stopping by!</p>
<p>
tilde.team is a founding member of <a href="https://tildeverse.org">tildeverse.org</a>,
which is a collaborative effort among several <a href="https://tildeverse.org/members/">
other tilde servers</a>.
</p>
<p>
hosting and domains are paid out-of-pocket. tilde.team will always
be free to use. however, if you are able and willing to pitch in,
you can <a href="https://bhh.sh/donate/">donate here</a>.
</p>
<p>tilde.team is a founding member of <a href="https://tildeverse.org">tildeverse.org</a>, which is a collaborative effort among several <a href="https://tildeverse.org/members/">other tilde servers</a>.</p>
<p>hosting and domains are paid out-of-pocket. tilde.team will always be free to use. however, if you are able and willing to pitch in, you can <a href="https://bhh.sh/donate/">donate here</a>.</p>
<p><a href="/~ben/">~ben</a></p>
<br>
@ -64,25 +50,20 @@ $parser = Tildeverse\Wiki\Parser::factory();
<div class="row">
<div class="col-md-7">
<h1>~news~</h1>
<?php foreach (array_slice(array_reverse(glob("news/pages/*.md")), 0, 4) as $page):
<?php
foreach (array_slice(array_reverse(glob("news/pages/*.md")), 0, 4) as $page):
$parsed = $parser->parse(file_get_contents($page));
$yaml = $parsed->getYAML();
if (!$yaml["published"]) continue; ?>
<div class="list-group">
<div class="list-group-item">
<h3 class="list-group-item-heading"><?=$yaml["title"]?></h3>
<em>
<a href="/news/?page=<?=basename($page, ".md")?>">
<?=$yaml["date"]?></a> - <a href="/~<?=$yaml["author"]?>/"><?=$yaml["author"]?></a>
</em>
<em><a href="/news/?page=<?=basename($page, ".md")?>"><?=$yaml["date"]?></a> - <a href="/~<?=$yaml["author"]?>/"><?=$yaml["author"]?></a></em>
<hr>
<p class="list-group-item-text"><?=$parsed->getContent()?></p>
</div>
</div>
<?php endforeach; ?>
<div class="list-group">
<div class="list-group-item">
<p class="list-group-item-text"><a href="/news/">news archive here...</a></p>
@ -141,3 +122,4 @@ $parser = Tildeverse\Wiki\Parser::factory();
</div>
<?php include 'footer.php'; ?>

View File

@ -15,7 +15,20 @@ $additional_head = "
<meta property='og:site_name' content='tilde.team news'>
";
$parser = Tildeverse\Wiki\Parser::factory();
class MDParser implements Mni\FrontYAML\Markdown\MarkdownParser {
public function __construct() {
$this->mdparser = new Michelf\MarkdownExtra();
$this->mdparser->header_id_func = function ($header) {
return preg_replace('/[^a-z0-9]/', '-', strtolower($header));
};
}
public function parse($markdown) {
return $this->mdparser->transform($markdown);
}
}
$parser = new Mni\FrontYAML\Parser(null, new MDParser());
if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
@ -67,7 +80,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
<p><?=$yml["date"]?> - <a href="/~<?=$yml["author"]?>/">~<?=$yml["author"]?></a></p>
<hr>
<?=$pg->getContent()?>
<?=str_replace("<table", '<table class="table table-striped"', $pg->getContent())?>
<hr>
<a href="https://tildegit.org/team/site/src/branch/master/news/pages/<?=$_GET["page"]?>.md">

View File

@ -1,24 +0,0 @@
---
published: true
date: apr 14 2019
title: tilde.team expected maintenance
author: khuxkm
---
Hey all! ~khuxkm here.
Just wanted to let everybody know that around next Saturday, we'll be moving to a new host at OVH!
OVH currently hosts Tildeverse member YourTilde. Our new machine is **b e e f y**~
There will be a period of expected downtime as we migrate. Just wait, and we'll make your experience worth every second!
This will affect all tildeverse services hosted on the tilde.team server. This includes mastodon, pleroma, cryptpad, git, paste, nullpointer, etc.
Always working to help improve this server,
~khuxkm and the tilde.team admins
edit: i had some free time tonight and did the migration early. we're on the new box! everything should be up and running on the new box. please let an admin know if something is amiss.
if you get a MITM warning from ssh, please remove the offending entry from known_hosts. the expected key signature is: SHA256:R3qNfKIF3IiXhKCbFX6rCKl73yzexi9Wodsow6XFres. ~ben

View File

@ -1,16 +0,0 @@
---
published: true
date: jul 2 2019
title: wiki upgrades
author: ben
---
it's been pretty quiet on the tilde.team lately. everything's humming along
smoothly in the background. irc has been the place to be. if you haven't
stopped by in a while, please do check in and say hi!
in other news, i was struck by inspiration today and finally sat down to
figure out how to get auto-linked headers on the wiki so that you can link
directly to a section by header.
give it a try!

24
offline.html Normal file
View File

@ -0,0 +1,24 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://tilde.team/css/hacker.css">
<title>saveyourinternet offline day</title>
</head>
<body>
<div class="container">
<h1>tilde.team is shutting down</h1>
<p>not really. but, with the eu passing article 13, this could very well happen to us, since we cannot possible filter every piece of content users put here.</p>
<p>please contact your lawmakers, and let them know you do not support this, because you want services like ours to continue to operation, and provide a valuable service to users.</p>
<p>now, you can continue onto the site by clicking <a href="/?dismiss=true">here</a>.</p>
<h4><a href="https://copyright-blackout.eu/">#321EUOfflineDay</a></h4>
</div>
</body>
</html>

View File

@ -1,16 +1,18 @@
<?php
$services = [
'gitea' => ['fa' => 'code-fork', 'url' => 'https://tildegit.org/team/'],
'forum' => ['fa' => 'comment', 'url' => 'https://bbj.tildeverse.org'],
'gitea' => ['fa' => 'code-fork', 'url' => 'https://tildegit.org'],
'forum' => ['fa' => 'comment', 'url' => 'https://bbj.tilde.team'],
'wiki' => ['fa' => 'book', 'url' => '/wiki/'],
'mastodon' => ['fa' => 'retweet', 'url' => 'https://tilde.zone'],
'chat' => ['fa' => 'comments-o', 'url' => '/wiki/?page=irc'],
'nextcloud' => ['fa' => 'cloud', 'url' => 'https://cloud.tilde.team/'],
'webmail' => ['fa' => 'envelope', 'url' => 'https://mail.tilde.team/'],
'webmail' => ['fa' => 'envelope', 'url' => 'https://mail.tilde.team'],
'cryptpad' => ['fa' => 'sticky-note', 'url' => 'https://pad.tildeverse.org'],
'pastebin' => ['fa' => 'paste', 'url' => 'https://paste.tildeverse.org/'],
'termbin' => ['fa' => 'terminal', 'url' => 'https://bin.tilde.team/'],
'nullpointer' => ['fa' => 'file-code-o', 'url' => 'https://ttm.sh'],
'gopher' => ['fa' => 'floppy-o', 'url' => 'https://gopher.tildeverse.org/tilde.team'],
'gopher' => ['fa' => 'floppy-o', 'url' => 'https://gopher.tilde.team'],
];
$nav = isset($navbar);
@ -21,3 +23,4 @@ foreach ($services as $name => $service) { ?>
<a href="<?=$service['url']?>" <?php if (!$nav) echo 'class="btn btn-default"'; ?>><i class="fa fa-<?=$service['fa']?>"></i> ~<?=$name?>~</a>
<?php if ($nav) echo '</li>'; ?>
<?php }

View File

@ -65,21 +65,10 @@ if (isset($_REQUEST["username"]) && isset($_REQUEST["email"])) {
$name = trim($_REQUEST["username"]);
if ($name == "")
$message .= "<li>please fill in your desired username</li>";
if (strlen($name) > 32)
$message .= "<li>username too long (32 character max)</li>";
if (!preg_match('/^[a-z][a-z0-9]{2,31}$/', $name))
if (!preg_match('/^[A-Za-z][A-Za-z0-9]{2,31}$/', $name))
$message .= "<li>username contains invalid characters (lowercase only, must start with a letter)</li>";
if ($_REQUEST["sshkey"] == "" || mb_substr($_REQUEST["sshkey"], 0, 4) !== "ssh-")
$message .= '<li>ssh key required: please create one and submit the public key. '
. 'see our <a href="https://tilde.team/wiki/?page=ssh">ssh wiki</a> or '
. 'hop on <a href="https://web.tilde.chat/?join=team">irc</a> and ask for help</li>';
if ($_REQUEST["interest"] == "")
$message .= "<li>please explain why you're interested so we can make sure you're a real human being</li>";
if (posix_getpwnam($name) || forbidden_name($name))
$message .= "<li>sorry, the username $name is unavailable</li>";
@ -95,25 +84,26 @@ if (isset($_REQUEST["username"]) && isset($_REQUEST["email"])) {
$message .= "<li>invalid email address. did you mean: " . htmlspecialchars($result["email"]) . "</li>";
}
if ($_REQUEST["sshkey"] == "") {
$message .= "<li>ssh key required: please create one and submit the public key</li>";
}
// no validation errors
if ($message == "") {
$sshkey = trim($_REQUEST["sshkey"]);
$makeuser = "makeuser {$_REQUEST["username"]} {$_REQUEST["email"]} \"{$sshkey}\"";
if ($message == "") { // no validation errors
$msgbody = "
username: {$_REQUEST["username"]}
email: {$_REQUEST["email"]}
desired username: {$_REQUEST["username"]}
contact email: {$_REQUEST["email"]}
reason: {$_REQUEST["interest"]}
ssh key:
{$_REQUEST["sshkey"]}
$makeuser
sudo makeuser {$_REQUEST["username"]} {$_REQUEST["email"]} \"{$_REQUEST["sshkey"]}\"
";
if (mail('sudoers', 'new tilde.team signup', $msgbody)) {
echo '<div class="alert alert-success" role="alert">
email sent! we\'ll get back to you soon (usually within a day) with login instructions! <a href="/">back to tilde.team home</a>
email sent! i\'ll get back to you soon with login instructions! <a href="/">back to tilde.team home</a>
</div>';
file_put_contents("/var/signups", $makeuser.PHP_EOL, FILE_APPEND);
} else {
echo '<div class="alert alert-danger" role="alert">
something went wrong... please send an email to <a href="mailto:sudoers@tilde.team">sudoers@tilde.team</a> with details of what happened
@ -130,4 +120,3 @@ $makeuser
}
}
?>

View File

@ -23,12 +23,6 @@ cp template.md my-new-page.md
* edit as needed!
* test your changes with a local php server
```sh
composer install
php -S localhost:9000
```
* commit your changes and [create a pull request](https://tildegit.org/team/site/pulls) :)
```sh
git add --all
@ -38,19 +32,6 @@ git push origin my-new-page # this should match the branch name you created earl
* create a pull request on the [site](https://tildegit.org/team/site) repo
## deployment notes
as of a7305c7b the wiki uses pretty urls (while still supporting the old style
of `?page=` urls). to enable this functionality, add the following location
block to your nginx configs for this site:
```
location ~* ^/wiki/(.+)$ {
try_files $uri $uri/ /wiki/index.php?page=$1;
include snippets/php.conf;
}
```
thanks!~
ps. if you have any questions, ask on irc! (preferably in #team)

View File

@ -6,8 +6,8 @@ $additional_head = "
:target:before {
content:\"\";
display:block;
height:50px; /* fixed header height*/
margin:-50px 0 0; /* negative fixed header height */
height:90px; /* fixed header height*/
margin:-90px 0 0; /* negative fixed header height */
}
</style>
<meta property='og:type' content='website'>
@ -15,7 +15,20 @@ $additional_head = "
<meta property='og:site_name' content='tilde.team wiki'>
";
$parser = Tildeverse\Wiki\Parser::factory();
class MDParser implements Mni\FrontYAML\Markdown\MarkdownParser {
public function __construct() {
$this->mdparser = new Michelf\MarkdownExtra();
$this->mdparser->header_id_func = function ($header) {
return preg_replace('/[^a-z0-9]/', '-', strtolower($header));
};
}
public function parse($markdown) {
return $this->mdparser->transform($markdown);
}
}
$parser = new Mni\FrontYAML\Parser(null, new MDParser());
if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
@ -44,7 +57,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
foreach (glob("pages/*.md") as $page) {
$yaml = $parser->parse(file_get_contents($page))->getYAML();
if (!$yaml["published"]) continue; ?>
<a href="<?=basename($page, ".md")?>"><?=$yaml["title"]?></a><br>
<a href="?page=<?=basename($page, ".md")?>"><?=$yaml["title"]?></a><br>
<?php }
} else {
@ -64,7 +77,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
<a href=".">&lt; ~wiki</a>
<hr>
<?=$pg->getContent()?>
<?=str_replace("<table", '<table class="table table-striped"', $pg->getContent())?>
<hr>
<a href="https://tildegit.org/team/site/src/branch/master/wiki/pages/<?=$_GET["page"]?>.md">
<i class="fa fa-edit"></i> source

View File

@ -11,49 +11,103 @@ category:
1. [adding users](#adding-users)
2. [backups](#backups)
3. [bypassing resource limits as services user](#bypassing-resource-limits)
4. [runaway processes/excessive resource usage](#runaway-processes)
4. [lxd](#lxd)
## adding users
> see the [makeuser](https://tildegit.org/team/makeuser) script's documentation
> this is deprecated. use the new [makeuser](https://tildegit.org/team/makeuser/src/branch/bash-edition) script
1. generate a random password
```
pwgen -1B 15
```
1. create a new user account:
```
sudo adduser newusername
```
1. add their ssh pubkey:
```
echo "ssh pubkey from their signup email" | sudo tee /home/newusername/.ssh/authorized_keys
```
1. drop the requested username and generated password in the placeholder below. reply all so that other admins will know that it's been handled.
welcome mail template:
hey ~newusername,
welcome to tilde.team!
your new account has been established. you can ssh into tilde.team with
the ssh key you supplied on registration.
your password is "[[password]]". please change it when you log in for
the first time. the password is used for imap/smtp auth, not shell login,
which is set to only use ssh key authentication.
to get started, type `motd` at the command prompt to see a few ways to
get started. have fun!
the greatest value of tilde.team is not the services provided by the
server, but rather the interesting and welcoming community built by its
users. this is possible because of people like you who choose to make
this a great place. the best way you can help tilde.team is by working
to support a great system culture. chat on irc; build cool programs and
share them with others; focus on learning, and help others learn; be a
good example for others; have fun!
also, your ~/public_html directory is served at
https://tilde.team/~newusername/
(you can also use https://newusername.tilde.team)
check out our wiki at https://tilde.team/wiki/ for more information (and
maybe help us write a new wiki article:)
our irc is tilde.chat, an irc network connecting several
tilde servers. the `chat` command on your ~team shell will open up
weechat with some nice default configs and plugins.
see our wiki article (https://tilde.team/wiki/?page=irc)
or https://tilde.chat site for information on how to connect from elsewhere.
we also have a webclient at https://irc.tilde.team that you can
register for by running the `webirc` command from a shell session.
we look forward to seeing you around! welcome to the ~team!
~tilde.team admins
## backups
tilde.team uses [borg](https://borgbackup.readthedocs.io/en/stable/) (via
[borgmatic](https://torsion.org/borgmatic)) for backups and is configured
to save 7 daily backups, 4 weekly backups, 6 monthly, and 1 yearly backup.
backups run once daily during the night.
tilde.team uses [tarsnap](https://tarsnap.com) for backups and is configured to save 12 hourly backups, 7 daily backups, 6 weekly backups, and 2 years' worth of monthly backups.
to see a list of the backups:
sudo borgmatic list
to see general backup stats:
sudo borgmatic info
```
sudo tarsnap --list-archives
```
to restore a backup:
sudo borgmatic extract --archive <archive name> --progress --restore-path=/path/to/restore
```
tarsnap -x -f name-of-backup
```
we keep backups of:
* `/home`
* `/etc`
* mysql and postgres databases (dumped before each backup run)
* [nextcloud](https://cloud.tilde.team/) data
* [tildegit](https://tildegit.org) database and repos
* `/var/spool/cron` - your crontabs
* `/tilde` - user-submitted scripts
* [mailman3](https://lists.tildeverse.org) list and archive data
* `/var` (excluding `/var/log` and `/var/lib/lxd`)
see the [tarsnap documentation](https://www.tarsnap.com/usage.html) for more information.
## bypassing resource limits
(by [~khuxkm](https://khuxkm.tilde.team/))
So occasionally, when you're working with the services user, you'll run into
"error: fork: retry: Resource temporarily unavailable" errors.
So occasionally, when you're working with the services user, you'll run into "error: fork: retry: Resource temporarily unavailable" errors.
Here's how to fix it:
@ -66,17 +120,72 @@ Here's how to fix it:
07:12 <~khuxkm> then exit the bash session
## runaway processes
## lxd
if a user consistently uses a lot of resources, send them a note via email
to request that they mind their usage levels. if they fail to respond within
a day or two, feel free to kill the process by pid or with `killall`. if they
resume using excessive resources and haven't responded to communications, then
feel free to lock them out by changing their shell to `/usr/sbin/nologin`.
this is the process that i use to create lxd containers for users.
sudo chsh -s /usr/sbin/nologin <username>
you need two things from the user: an ssh public key (on their ~team shell) and a [distro choice](https://us.images.linuxcontainers.org/)
don't forget to kill their existing session with:
sudo loginctl terminate-user <username>
1. create the container
```
# debian
lxc launch images:debian/stretch <username>
# ubuntu
lxc launch ubuntu: <username>
```
1. make sure the container has an sshd running
```
lxc exec <username> bash
# might have to adjust this if the image is not a debian-derivative
root@<username> $ apt install openssh-server
```
1. copy the user's ssh pubkey to root on the container
```
lxc exec <username> bash
mkdir -m 700 .ssh
echo "pubkey" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
```
> now the user can run `ssh root@<username>.lxd` to get a shell inside their container
> the .lxd dns resolver is provided by the lxd daemon itself through dnsmasq
### make the container public
> check with the user and find out what they want the container to be available as (which domain)
> nginx matches concrete `server_name`s first, so you can replace the `*.tilde.team` match
1. copy user-lxd.template
```
cd /etc/nginx/sites-available
sudo cp user-lxd.template <username>.tilde.team
sudo vim <username>.tilde.team
```
1. replace the username
```
:%s/<user>/<username>/g
:wq
```
1. enable the vhost
```
cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/<username>.tilde.team .
```
1. reload nginx
```
# make sure the configs look ok
sudo nginx -t
sudo service nginx reload
```
bam! now `<username>.tilde.team` will forward requests to the container.
make sure that the user is running some kind of webserver on port 80 inside the container!
feel free to add other configs to their vhost or use any of the other [tildepage domains](?page=tildepages)

View File

@ -13,11 +13,11 @@ tilde.team offers an alternate host: [bsd.tilde.team](https://bsd.tilde.team), w
currently it supports:
- webhosting out of `~/public_html` at `https://<user>.bsd.tilde.team` or `https://bsd.tilde.team/~<user>`
- webhosting out of `~/public_html` at `http://<user>.bsd.tilde.team` or `https://bsd.tilde.team/~<user>` (note that the ssl cert is only for bsd.tilde.team)
- email with user@bsd.tilde.team - feel free to forward this elsewhere or to your main @tilde.team address
- finger
- irc: use weechat or irssi and connect to localhost 6667 - it's a part of the [tildeverse irc net](https://tilde.chat)
the user creation script copied over the `~/.ssh/authorized_keys` file in your $HOME on ~team. feel free to adjust as needed or holler if you need an admin for something. you should be able to just ssh user@bsd.tilde.team instead of user@tilde.team
there's a [mailing list thread](https://lists.tildeverse.org/hyperkitty/list/tildeteam@lists.tildeverse.org/thread/LRLAYRTHJLFQWZAXZZW62GYQLW7S2WYC/) for discussion that i'll post updates to. feel free to holler in #team on irc as well.

View File

@ -17,7 +17,7 @@ You'll find a lot of people online arguing that GNU+Linux is _not_ a text-based
## How do I connect to a shell server?
The most common way to connect remote GNU+Linux system is with an SSH client. SSH stands for secure-shell. SSH allows you to make a private connection between your computer and a shell server like [tilde.team](https://tilde.team), and it ensures that nobody else along the wire can listen in on your connection. Check out [our SSH page](https://tilde.team/wiki/ssh) for information on connecting to tilde.team over SSH.
The most common way to connect remote GNU+Linux system is with an SSH client. SSH stands for secure-shell. SSH allows you to make a private connection between your computer and a shell server like [tilde.team](https://tilde.team), and it ensures that nobody else along the wire can listen in on your connection. Check out [our SSH page](https://tilde.team/wiki/?page=ssh) for information on connecting to tilde.team over SSH.
If you are having trouble with making your first SSH connection to tilde.team, or anything else while you're learning from this tutorial, drop by the [tilde.team web chat](https://web.tilde.chat/) or email an admin for help ([sudoers@tilde.team](mailto:sudoers@tilde.team)).
@ -57,7 +57,7 @@ Skipping some specifics for now, you can log into tilde.town from a tilde.team s
> `ssh tilde.team`
Some shell servers allow you to log in with nothing more than a username and password. But increasingly, many servers (like both tilde.team and tilde.town) require you to use ssh keys. To learn more about ssh keys, again, see our [SSH page](ssh).
Some shell servers allow you to log in with nothing more than a username and password. But increasingly, many servers (like both tilde.team and tilde.town) require you to use ssh keys. To learn more about ssh keys, again, see our SSH page: https://tilde.team/wiki/?page=ssh
### Logging Out, with `logout` or `exit`

View File

@ -23,7 +23,7 @@ we invite all those who participate in tilde.team to help us create safe and pos
## 2. tilde.team mission
[full goals/roadmap document](https://tilde.team/wiki/goals-roadmap)
[full goals/roadmap document](https://tilde.team/wiki/?page=goals-roadmap)
**tilde.team exists to foster an engaged community for socializing, learning, and making cool stuff**
@ -110,4 +110,4 @@ this code of conduct is based on [citizencodeofconduct.org](http://citizencodeof
## 11. terms of service
please also see the [terms of service](tos)
please also see the [terms of service](?page=tos)

View File

@ -12,9 +12,13 @@ category:
because [~ben](https://tilde.team/~ben/) hoards domain names, the following domains are associated with tilde.team and/or the tildeverse somehow:
* [fuckup.club](http://fuckup.club) - alias
* [nand.pub](http://nand.pub/) - planned [sr.ht](https://meta.sr.ht) instance; WIP
* [nand.sh](https://nand.sh/) - alias
* [nand.team](http://nand.team/) - not sure yet
* [nand.zone](http://nand.zone/) - not sure yet
* [ttm.sh](https://ttm.sh/) - url shortener
* [tild3.org](https://tild3.org/) - alias
* [tild3.club](https://tild3.club/) - alias
* [tilde.chat](https://tilde.chat/) - irc net
* [tilde.life](http://tilde.life/) - redirect
* [tilde.news](https://tilde.news/) - lobste.rs clone
@ -22,6 +26,7 @@ because [~ben](https://tilde.team/~ben/) hoards domain names, the following doma
* [tilde.pizza](http://tilde.pizza/) - redirect
* [tilde.site](https://tilde.site/) - alias
* [tilde.wiki](https://tilde.wiki/) - alias of [tilde.team wiki](https://tilde.team/wiki/)
* [tilde.wtf](http://tilde.wtf/) - redirect
* [tilde.zone](https://tilde.zone/) - mastodon and related stuff
* [tildegit.org](https://tildegit.org/) - gitea
* [tilderadio.org](https://tilderadio.org/) - tildeverse radio

View File

@ -17,22 +17,21 @@ tilde.team has a mailserver. here are your options:
- alpine - should work out of the box
- [webmail](https://mail.tilde.team)
- imap/smtp
- email address: username@tilde.team (or any of the aliased [domains](domains))
- email address: username@tilde.team (or any of the aliased [domains](?page=domains))
- username: username (without the domain)
- password: your shell password
- imap: imap.tilde.team port 143 (starttls)
- pop3: pop3.tilde.team port 995 (tls)
- smtp: smtp.tilde.team port 587 (starttls)
- (any subdomain of tilde.team works for smtp, pop3, and imap. just make sure you have tls selected)
- (any subdomain of tilde.team works for smtp and imap. just make sure you have tls selected)
- some clients will autoconfigure (tested with thunderbird)
### alternate domains and addresses
because [~ben](https://tilde.team/~ben/) hoards domain names, you can use any of the [domains on this list](domains) with your tildemail:
because [~ben](https://tilde.team/~ben/) hoards domain names, you can use any of the [domains on this list](?page=domains) with your tildemail:
mail sent to yourusername@ any of those domains will end up in your inbox. most clients will allow you to add additional identities/aliases.
additionally, any address with a `+` and arbitrary text behind it will be forwarded to you email: ie. `your_username+somethingcool@tildeteam.org`.
additionally, any address with a `-` or `+` and arbitrary text behind it will be forwarded to you email: ie. `your_username+somethingcool@tildeteam.org` or `yourusername-notcool@tilde.site`.
feel free to use as many as you'd like :)
### forwarding and sieve

View File

@ -9,7 +9,7 @@ category:
# getting started
this guide is not very thorough or complete. if you want something nicer, try [our cli for beginners article](cli-for-beginners).
this guide is not very thorough or complete. if you want something nicer, try [our cli for beginners article](?page=cli-for-beginners).
---
@ -75,4 +75,4 @@ Refresh your tilde page in your browser to see your new website
Note: If at any time you feel you made a mistake in editing, you can exit and n to not save.
see the [advanced ssh key guide](advanced-ssh) for more information and cool tips :)
see the [advanced ssh key guide](?page=advanced-ssh) for more information and cool tips :)

View File

@ -3,55 +3,44 @@ author: ~ben
published: true
title: gopher
description: gopher server and proxy
category:
category:
- main
---
# gopher
the [gopher protocol](http://en.wikipedia.org/wiki/Gopher_(protocol)) was
created in 1991. it didn't survive long due to [draconic licensing](
http://www.nic.funet.fi/pub/vms/networking/gopher/gopher-software-licensing-policy.ancient).
the [gopher protocol](http://en.wikipedia.org/wiki/Gopher_(protocol)) was created in 1991. it didn't survive long due to [draconic licensing](http://www.nic.funet.fi/pub/vms/networking/gopher/gopher-software-licensing-policy.ancient).
we're trying to keep this cool corner of the web alive.
we're trying to keep this cool corner of the web alive.
## add and create your gophersite
tilde.team serves user gopherholes from your `~/public_gopher` directory.
to add your own gopher site, run the following command:
```bash
mkdir -p -m 755 ~/public_gopher
```
(this presumes you don't already have a public_gopher dir in your $HOME. new users from here on out will have a public_gopher by default)
to get listed on the [main gophermap](gopher://tilde.team),
make some changes to your root gophermap. the [root gophermap](
https://tildegit.org/team/gopherhole/src/branch/master/gophermap)
diffs against the default gophermap that was included with your account.
if a file called `gophermap` exists in the directory you're currently browsing to in gopher, it will get processed and displayed.
if a file called `gophermap` exists in the directory you're currently
browsing to in gopher, it will get processed and displayed.
see [this example](https://github.com/gophernicus/gophernicus/blob/master/README.Gophermap)
for more information on file types and special chars.
one of the coolest item types supported in gophernicus is `=` which allows you
to include other gophermaps or the output of executables.
you can even make your whole gophermap executable and it will be run through
whatever interpreter you specify in the shebang.
see [this example](https://github.com/prologic/gophernicus/blob/master/README.Gophermap) for more information on file types and special chars.
---
## browse gophersites
if you're currently connected from a tilde.team shell, you can use the
[`lynx`](https://lynx.browser.org/) browser.
if you're currently connected from a tilde.team shell, you can use the [`lynx`](https://lynx.browser.org/) browser.
```bash
lynx gopher://tilde.team
```
if you want to access the gophersite in your public\_gopher dir, use the following
link structure: [gopher://tilde.team/1/~username](gopher://tilde.team/1/~username)
if you want to access the gophersite in your public_gopher dir, use the following link structure:
[gopher://tilde.team/1/~username](gopher://tilde.team/1/~username)
you can install it on your local machine too :)
otherwise, you can use our [http proxy](https://gopher.tildeverse.org/tilde.team) to browse the gophernet.
otherwise, you can use our [http proxy](https://gopher.tilde.team) to browse the gophernet.
hope to see you on there soon!
(addendum by ~khuxkm: remember to leave the number off when using the proxy (i.e; [https://gopher.tilde.team/tilde.team/~username](https://gopher.tilde.team/tilde.team/~username)))

View File

@ -16,7 +16,7 @@ the tilde.chat irc network is available at irc.tilde.chat:6697 (with ssl) as a r
this is the beginning of the [tilde.chat](https://tilde.chat) irc federation! more info on that site.
## here are some options to connect:
### here are some options to connect:
* `weechat` when logged in with ssh
* `irssi`
@ -27,54 +27,4 @@ this is the beginning of the [tilde.chat](https://tilde.chat) irc federation! mo
local connections (weechat, irssi, znc) can use 6667 without ssl
## weechat relays
weechat introduced [unix socket relays](
https://weechat.org/files/doc/stable/weechat_user.en.html#relay_unix_socket)
in version 2.5 which is a much easier way to offer per-user relay access.
username.ttm.sh/weechat is configured to proxy to the default unix relay socket
location (`~/.weechat/relay_socket`). to get started using it, follow these steps.
1. in weechat:
* `/relay add unix.weechat %h/relay_socket`
* `/set relay.network.password mysupersecretpassword` - don't use this password
of course. note that you might already have this set.
1. at your shell:
* `chmod o+rw ~/.weechat/relay_socket` - note that other members of the team group
are not included in the granted permissions. this allows nginx to connect
to your socket on your behalf
1. in your relay client:
* glowing-bear:
- $user.ttm.sh
- port 443
- your relay password
* weechat-android:
- connection type: websocket (ssl)
- websocket path: weechat
- relay host: $user.ttm.sh
- relay port: 443
- your relay password
## znc
the system znc authenticates using your shell password (same as with email and
[nextcloud](https://cloud.tilde.team). reach out to an admin on irc or send an
email to [sudoers@tilde.team](mailto:sudoers@tilde.teaem).
the webadmin interface is available at [znc.tilde.team](https://znc.tilde.team).
client connections are on port 6699 with ssl.
you can add network connections (up to 10) via webadmin or via a direct client
connection.
see the [znc wiki](https://wiki.znc.in/Connecting_to_ZNC) for more information.
---
for more info, see the [tilde.chat wiki](https://tilde.chat/wiki/) for info on bots and other specifics.

View File

@ -9,44 +9,44 @@ category:
# mailing lists netiquette
the tildeverse has now its own mailing list service. you can take a look at:
The tildeverse has now its own mailing list service. You can take a look at:
[lists.tildeverse.org](https://lists.tildeverse.org/)
this is a description of the basic *netiquette* rules for this service. most of
This is a description of the basic *netiquette* rules for this service. Most of
the text is taken shamelessly from
[man.sr.ht/lists.sr.ht/etiquette.md](https://man.sr.ht/lists.sr.ht/etiquette.md)
with some adaptations and a couple more suggestions taken from other lists out
there.
some email clients have popularized email usage patterns which are considered
poor form on many mailing lists. please review some of our suggestions for
participating more smoothly in discussions on the tildeverse. this advice will
Some email clients have popularized email usage patterns which are considered
poor form on many mailing lists. Please review some of our suggestions for
participating more smoothly in discussions on the tildeverse. This advice will
likely serve you well outside of the tildeverse as well.
if you have any troubles following this guides or don't know how to configure
your email client for this purpose, ask on irc (#meta or #team), you'll find
If you have any troubles following this guides or don't know how to configure
your email client for this purpose, ask on IRC (#meta or #team), you'll find
always somebody willing to help.
## plain text
## Plain text
please make sure that your email client is configured to use plain text emails.
by default, many email clients compose emails with HTML, so you can use rich
text formatting. rich text is not desirable for mailing lists. keep in mind that
some people uses console email clients without html rendering support. also,
Please make sure that your email client is configured to use plain text emails.
By default, many email clients compose emails with HTML, so you can use rich
text formatting. Rich text is not desirable for mailing lists. Keep in mind that
some people uses console email clients without html rendering support. Also,
people with high volume of emails may pre-process them and html is not good for
that. so you should disable this feature and send your email as "plain text".
every email client is different, you should research the options for your
that. So you should disable this feature and send your email as "plain text".
Every email client is different, you should research the options for your
specific client.
## top-posting
## Top-posting
some email clients will paste the entire email you're replying to into your
response and encourage you to write your message over it. this behavior is
Some email clients will paste the entire email you're replying to into your
response and encourage you to write your message over it. This behavior is
called "top posting" and is discouraged on the tildeverse lists (or on any
mailing list really). instead, cut out any parts of the reply that you're not
directly responding to and write your comments inline. feel free to edit the
original message as much as you like. in other words, keep the relevant context
for your reply and delete the rest. this makes cleaner emails that are easier to
mailing list really). Instead, cut out any parts of the reply that you're not
directly responding to and write your comments inline. Feel free to edit the
original message as much as you like. In other words, keep the relevant context
for your reply and delete the rest. This makes cleaner emails that are easier to
read, even if the reader jumps in the middle of a thread.
For example, if I emailed you:
@ -76,45 +76,45 @@ You might respond with:
- A: Because it reverses the logical flow of conversation.
- Q: Why is top posting frowned upon?
## wrap lines
## Wrap lines
please wrap lines in your email at 72 columns. many people use email readers
Please wrap lines in your email at 72 columns. Many people use email readers
designed to faithfully display plain text and won't break lines at a width which
is comfortable for reading, or won't break lines at all, which is useful when
reviewing patches. some readers also have many things open in addition to their
reviewing patches. Some readers also have many things open in addition to their
mail client, and may not allocate as much screen real-estate to email as you do.
if you're curious about why this arbitrary column count. "regular" terminals
If you're curious about why this arbitrary column count. "Regular" terminals
have 80 columns, and 8 characters less gives you some room for the response
prefix ('> ') making threads with nested replies more readable.
don't worry about re-wrapping lines written by anyone you're quoting unless you
Don't worry about re-wrapping lines written by anyone you're quoting unless you
want to.
## pgp signatures
## PGP Signatures
if you use pgp, please attach your signature to the message instead of using an
inline signature. look in your local pgp implementation's documentation for
If you use PGP, please attach your signature to the message instead of using an
inline signature. Look in your local PGP implementation's documentation for
`PGP/MIME` options.
## attachments
## Attachments
try not to send attachment to the list or, if you do it, make sure they are
small files. think about people with bad internet connection or limited
resources. it's better to send a link to download whatever you want to share.
if you send links, it's a good practice to describe the content and the size,
so the reader can choose to download it or not before following the link. for
Try not to send attachment to the list or, if you do it, make sure they are
small files. Think about people with bad internet connection or limited
resources. It's better to send a link to download whatever you want to share.
If you send links, it's a good practice to describe the content and the size,
so the reader can choose to download it or not before following the link. For
example, you can upload a file to [ttm.sh](https://ttm.sh) or drop it in your
`~/public_html` directory and then send the link to the list like so:
https://ttm.sh/mydocument.pdf (pdf, 3,5MB)
# conclusion
# Conclusion
whatever you send to a mailing list gets forwarded to an unknown number of email
accounts. you cannot know beforehand the quality of connection, resources,
Whatever you send to a mailing list gets forwarded to an unknown number of email
accounts. You cannot know beforehand the quality of connection, resources,
operating systems or really anything else the people that owns those accounts
have. so, try to stick to the principles here stated to make the whole list
have. So, try to stick to the principles here stated to make the whole list
communication easier for all.
thank you for taking the time to adjust your habits!
Thank you for taking the time to adjust your habits!

View File

@ -9,38 +9,22 @@ category:
# tilde.team manifesto
> tilde.team is a shared system that provides an inclusive, non-commercial space
> for teaching, learning, practicing and enjoying the social medium of unix.
> tilde.team is a shared system that provides an inclusive, non-commercial space for teaching, learning, practicing and enjoying the social medium of unix.
here are some of our most important values:
1. tilde.team is an alternative social environment for the technically-inclined;
specifically, a non-commercial alternative to the mainstream, corporate-owned
media and social media. we aim to put the users in control of the tools of
communication that are currently being neutered by corporate commodification
of the www.
1. tilde.team is an alternative social environment for the technically-inclined; specifically, a non-commercial alternative to the mainstream, corporate-owned media and social media. we aim to put the users in control of the tools of communication that are currently being neutered by corporate commodification of the www.
1. provide tools, resources and encouragement for users to develop ideas and
best practices for the next generation of public access unix systems. the
"next generation" is always ahead of the present, so this implies that the
system is in a constant state of development and self-improvement, with a
continually rolling set of goals, and regular testing and evaluation of
experimental projects. --all of which is powered by user involvement in a
brainstorming/experimenting/teaching/learning/doing model.
1. provide tools, resources and encouragement for users to develop ideas and best practices for the next generation of public access unix systems. the "next generation" is always ahead of the present, so this implies that the system is in a constant state of development and self-improvement, with a continually rolling set of goals, and regular testing and evaluation of experimental projects. --all of which is powered by user involvement in a brainstorming/experimenting/teaching/learning/doing model.
1. serve partly as a meta-community among other tildes and pubnixes, both
sharing best practices and learning from their experiences.
1. serve partly as a meta-community among other tildes and pubnixes, both sharing best practices and learning from their experiences.
1. last but absolutely not least --> MAKE IT FUN! it should not be a bitter
place to sulk or rant about mainstream culture. it should be a social
environment in which users can go wild and push their creative skills to the
limit. it should be a place to appreciate what does not exist in other
exploitative commercial environments.
1. last but absolutely not least --> MAKE IT FUN! it should not be a bitter place to sulk or rant about mainstream culture. it should be a social environment in which users can go wild and push their creative skills to the limit. it should be a place to appreciate what does not exist in other exploitative commercial environments.
---
this document is still a work in progress. if you have any ideas or
suggestions, [send a pr](https://tildegit.org/team/site/src/branch/master/wiki/pages/manifesto.md)!
this document is still a work in progress. if you have any ideas or suggestions, [send a pr](https://tildegit.org/team/site/src/branch/master/wiki/pages/manifesto.md)!
[living draft of this document here](https://pad.tilde.team/code/#/2/code/edit/RFBUqXec+9+MlZzx4mnhU3ps/)

View File

@ -9,34 +9,25 @@ category:
# other tildes
if you're starting a tilde and want to be added to this list, [open a PR :)](
https://tildegit.org/team/site/src/branch/master/wiki/pages/other-tildes.md)
if you're starting a tilde and want to be added to this list, [open a PR :)](https://tildegit.org/team/site)
| tilde name | description | where to join | notes |
| --- | --- | --- | ---|
| [cosmic.voyage](https://cosmic.voyage) | cosmic.voyage is an Ubuntu server focused on collaborative sci-fi storytelling. The background story is visible on the homepage. New authors are welcome to join and take on the voice of various ships, outposts, and colonies scattered across the universe, sending text messages back to a relay at Earth's L4 point. | email register(at)cosmic.voyage with your ssh pubkey, desired username, and the name of your first ship | |
| [ctrl-c.club](http://ctrl-c.club) | A place for the curious to poke around and play. SSH access, web pages, games, and programming languages on tap. | [signup form](http://goo.gl/forms/oviL1wYSrV) | |
| [envs.net](https://envs.net/) | envs.net is a minimalist, non-commercial shared unix system and will always be free to use. | [signup here](https://envs.net/signup) | |
| [hackers.cool](http://hackers.cool) | A tilde.club started by some nerd at Hacker School. As such, it's got a lot of Hacker Schoolers on it, but everyone is welcome! | [signup form](https://docs.google.com/forms/d/1PHnXadDW1WySCB9frIefjXI3P6bt8n_p4YMyiPPD4O4/viewform) | |
| [nand.club](http://nand.club) | a new anti-capitalist, solarpunk tilde | [signup info here](http://nand.club) | down |
| [palvelin.club](http://palvelin.club) | Finnish language tilde server. | [signup form](https://docs.google.com/forms/d/1tTGiOU0z3M92nCb5Lv3Tv_sJXGLh8kj5Gl79Gx4ZOdM/viewform) | |
| [pebble.ink](http://pebble.ink) | pebble.ink is a project almost, but not quite, like tilde.club | ask [@phildini](https://twitter.com/phildini) or try [this signup form](http://pebble.ink/apply.html) | |
| [protocol.club](http://protocol.club) | protocol.club explores the fundamental and unique learning opportunities provided by the implementation of standardized protocols. It is a place for curious minds to explore and experiment, to educate and be educated about protocols and implementations old and new alike. While inspired by tilde.club and federated with the rest of the tildeverse via NNTP (et cetera), protocol.club has a stronger focus on its particular mission and has several differences from other tilde boxes, namely: we have a Code of Conduct, and we have some resources available locally to aid development of protocol implementations and new draft protocols. We also serve pages over HTTPS. | [signup form](https://docs.google.com/forms/d/11sJKpZnqaqNVR-rYRfCxKl05iSpjJa85XbigY8xbzBM/viewform?c=0&w=1) | |
| [rawtext.club](https://rawtext.club) | rawtext.club (RTC) is an experimental public access shell server with a focus on use of collaborative projects for gnu/linux skill building. Projects include simple, command line social tools and utilities, or whatever lightweight programs users are interested in. RTC does not use IRC, and instead focuses on other slower and more thoughtful forms of user interaction. | Send email to admin@rawtext.club with your ssh pubkey, desired username, and a statement describing your interest in joining. | |
| [remotes.club](https://remotes.club) | Anyone who works remotely is welcome. | [signup form](https://www.remotes.club/request.php) | |
| [rw.rs](http://rw.rs) | An experimental software community with a 199X aesthetic. | [signup via pull request](https://github.com/adsr/rw.rs/) | |
| [skylab.org](http://skylab.org) | An open-source community co-operative with ~150 members that has existed since 1997. Based in Portland, Oregon, United States with a userbase across the world, we have quietly existed. Featuring geektalk community chat, a variety of tools and hosting running on FreeBSD. | Email [skylabstatus@gmail.com](mailto:skylabstatus@gmail.com) with subject line SKYLAB.ORG and an email containing your desired username, full name, public SSH key and an acknowledgement to play nice. | |
| [squiggle.city](http://squiggle.city) | squiggle.city is a Debian server in the spirit of tilde.club. It's for making web pages and learning about the command line. If you are reading [userland](https://p1k3.com/userland-book/), which is about how to unix, squiggle.city is a place to explore the ideas it contains. | email [bbearnes@gmail.com](mailto:bbearnes@gmail.com) with your ssh pubkey and a promise to not be a jerk | |
| [summit tilde](https://tilde.summit.tildex.com) | Summit Tilde is a Linux-powered tilde community offering its members a variety of features and services from web hosting, chatting, various games, learning about Linux, programming, and much more. The server is powerful and runs the Ubuntu GNU/Linux operating system. We hope you have fun with everything Summit Tilde has to offer! If you need help or have any questions, feel free to ask in [#summit](https://web.tilde.chat/?join=summit) on irc.tilde.chat! | [signup form](https://tilde.summit.tildex.com/join.php) | |
| [theasylum](https://theasylum.team) | invite-only tilde catering to programmers of all languages | join #theasylum on tilde.chat, and let us get to know you | |
| [thunix](https://thunix.net) | thunix offers Secure Shell (SSH) accounts, Web Hosting, Email Accounts, and many other things to people free of charge. | [signup info here](https://www.thunix.net/signup.php) | |
| [tilde.best](https://tilde.best) | tilde.best is a Debian server which is aiming to have a *best* community and *best* features. | email [root@tilde.best](mailto:root@tilde.best) with your ssh pubkey, desired username and reason why you want to join | |
| [tilde.cat](https://tilde.cat) | This is (or rather might be) public shell server like [the club](https://tilde.club), [the town](https://tilde.town), or other ~ servers. | [signup form](http://signup.tilde.cat) | down |
| [tilde.center](https://tilde.center) | A public unix server focused around decentralization, federation, and home-brewed open source projects. | [signup form](https://tilde.center/signup.php) | down |
| [tilde.fun](https://tilde.fun) | This is a Linux machine on the internet where you can get a shell account. | `ssh tilde@tilde.fun` | down |
|---|---|---|---|
| [tilde.institute](https://tilde.institute) | Provides a space dedicated to the OpenBSD operating system. Includes a functional BCHS stack for users to experiment with and use to create web applications. | [signup form](https://tilde.institute/signup) | |
| [tilde.pink](gopher://tilde.pink) | A gopher only tilde, providing shell acounts with email and gopher services running on a DragonflyBSD server. The site is accessible via [web proxy](https://proxy.tilde.pink) | [signup form](gopher://tilde.pink/1/signup.gph) | |
| [tilde.town](https://tilde.town) | tilde.town is an open, welcoming and safe place for the exploration of lo-fi HTML art, hi-fi javascript experiments, generative poetic works, and digital socialization in a post-facebook age. | [signup form](https://cgi.tilde.town/users/signup) | |
| [tilde.center](https://tilde.center) | A public unix server focused around decentralization, federation, and home-brewed open source projects. | [signup form](https://tilde.center/signup.php) | |
| [nand.club](http://nand.club) | a new anti-capitalist, solarpunk tilde | [signup info here](http://nand.club) | |
| [thunix](https://thunix.net) | thunix offers Secure Shell (SSH) accounts, Web Hosting, Email Accounts, and many other things to people free of charge. | [signup info here](https://www.thunix.net/signup.php) | |
| [tildespark](https://tildespark.ddns.net) | Tilde Spark is a constantly evolving intentional community devoted to free software, open hardware and meeting new people! | [signup info here](https://tildespark.ddns.net/ikiwiki/tildespark/howtojoin/) | down |
| [wilde.ftp.sh](http://wilde.ftp.sh/) | The world's first (and possibly only) Windows-based tilde! | [signup form](http://wilde.ftp.sh/signup.php) | |
| [yourtilde.com](https://yourtilde.com) | If you're looking for a new ~, to learn and play, come check us out. | [signup form](https://tilde.team/signup/) | down, merged with [~club](https://tilde.club/) |
| [tilde.fun](https://tilde.fun) | This is a Linux machine on the internet where you can get a shell account. | `ssh tilde@tilde.fun` | down |
| [yourtilde.com](https://yourtilde.com) | If you're looking for a new ~, to learn and play, come check us out. | [signup form](https://tilde.team/signup/) | |
| [ctrl-c.club](http://ctrl-c.club) | A place for the curious to poke around and play. SSH access, web pages, games, and programming languages on tap. | [signup form](http://goo.gl/forms/oviL1wYSrV) | |
| [pebble.ink](http://pebble.ink) | pebble.ink is a project almost, but not quite, like tilde.club | ask [@phildini](https://twitter.com/phildini) or try [this signup form](http://pebble.ink/apply.html) | |
| [hackers.cool](http://hackers.cool) | A tilde.club started by some nerd at Hacker School. As such, it's got a lot of Hacker Schoolers on it, but everyone is welcome! | [signup form](https://docs.google.com/forms/d/1PHnXadDW1WySCB9frIefjXI3P6bt8n_p4YMyiPPD4O4/viewform) | |
| [squiggle.city](http://squiggle.city) | squiggle.city is a Debian server in the spirit of tilde.club. It's for making web pages and learning about the command line. If you are reading [userland](https://p1k3.com/userland-book/), which is about how to unix, squiggle.city is a place to explore the ideas it contains. | email [bbearnes@gmail.com](mailto:bbearnes@gmail.com) with your ssh pubkey and a promise to not be a jerk | |
| [cosmic.voyage](https://cosmic.voyage) | cosmic.voyage is an Ubuntu server focused on collaborative sci-fi storytelling. The background story is visible on the homepage. New authors are welcome to join and take on the voice of various ships, outposts, and colonies scattered across the universe, sending text messages back to a relay at Earth's L4 point. | email [tomasino@lavabit.com](mailto:tomasino@lavabit.com) with your ssh pubkey, desired username, and the name of your first ship | |
| [tilde.town](https://tilde.town) | tilde.town is an open, welcoming and safe place for the exploration of lo-fi HTML art, hi-fi javascript experiments, generative poetic works, and digital socialization in a post-facebook age. | [signup form](https://cgi.tilde.town/users/signup) | |
| [protocol.club](http://protocol.club) | protocol.club explores the fundamental and unique learning opportunities provided by the implementation of standardized protocols. It is a place for curious minds to explore and experiment, to educate and be educated about protocols and implementations old and new alike. While inspired by tilde.club and federated with the rest of the tildeverse via NNTP (et cetera), protocol.club has a stronger focus on its particular mission and has several differences from other tilde boxes, namely: we have a Code of Conduct, and we have some resources available locally to aid development of protocol implementations and new draft protocols. We also serve pages over HTTPS. | [signup form](https://docs.google.com/forms/d/11sJKpZnqaqNVR-rYRfCxKl05iSpjJa85XbigY8xbzBM/viewform?c=0&w=1) | |
| [palvelin.club](http://palvelin.club) | Finnish language tilde server. | [signup form](https://docs.google.com/forms/d/1tTGiOU0z3M92nCb5Lv3Tv_sJXGLh8kj5Gl79Gx4ZOdM/viewform) | |
| [skylab.org](http://skylab.org) | An open-source community co-operative with ~150 members that has existed since 1997. Based in Portland, Oregon, United States with a userbase across the world, we have quietly existed. Featuring geektalk community chat, a variety of tools and hosting running on FreeBSD. | Email [skylabstatus@gmail.com](mailto:skylabstatus@gmail.com) with subject line SKYLAB.ORG and an email containing your desired username, full name, public SSH key and an acknowledgement to play nice. | |
| [remotes.club](https://remotes.club) | Anyone who works remotely is welcome. | [signup form](https://www.remotes.club/request.php) |
| [tilde.cat](https://tilde.cat) | This is (or rather might be) public shell server like [the club](https://tilde.club), [the town](https://tilde.town), or other ~ servers. | [signup form](http://signup.tilde.cat) | |

View File

@ -15,7 +15,7 @@ as a founding member of the [tildeverse](https://tildeverse.org), tilde.team hos
### our deployed projects
- [forum](https://forum.tilde.team) ([source](https://tildegit.org/team/forum)) - mostly defunct in favor of [bbj](https://bbj.tildeverse.org)
- [forum](https://forum.tilde.team) ([source](https://tildegit.org/team/forum)) - mostly defunct in favor of [bbj](https://bbj.tilde.team)
### code related stuff
@ -42,7 +42,7 @@ as a founding member of the [tildeverse](https://tildeverse.org), tilde.team hos
- [tilde.news](https://tilde.news) - [lobste.rs](https://lobste.rs) sister site for tilde-related links
- [irc](https://tilde.chat) tilde.chat irc network for the tildeverse
- we host one node of the [network](https://tilde.chat/wiki/servers)
- we host one node of the [network](https://tilde.chat/wiki/?page=servers)
- we host [quotes.tilde.chat](https://quotes.tilde.chat)
- [znc bouncer](https://znc.tilde.team/) - log in with your shell password
- [thelounge webclient](https://irc.tilde.team) - runs in private mode: it stays connected for you. run `webirc` to create a login.
@ -51,7 +51,7 @@ as a founding member of the [tildeverse](https://tildeverse.org), tilde.team hos
- [pinafore front-end](https://pinafore.tilde.zone)
- [halcyon front-end](https://halcyon.tilde.zone)
- [tooty front-end](https://tooty.tilde.zone)
- [email](email) ([webmail](https://mail.tilde.team), smtp/imap, mutt, and alpine)
- [email](?page=email) ([webmail](https://mail.tilde.team), smtp/imap, mutt, and alpine)
- [mailing lists](https://lists.tildeverse.org) - hosted on top of our mailserver
- [bbj](https://tildegit.org/bbj/bbj) ([web mirror here](https://bbj.tildeverse.org)) - forked from [desvox/bbj](https://github.com/bbj-dev/bbj)
- [bbj](https://tildegit.org/team/bbj) ([web mirror here](https://bbj.tilde.team)) - forked from [desvox/bbj](https://github.com/bbj-dev/bbj)
- [gopher proxy](https://gopher.tilde.team) - defaults to our local gopherd: gopher://tilde.team

View File

@ -13,10 +13,7 @@ _or, how to tell other computers to do cool things_
---
> all users are required to use an ssh keypair for login, or will be required
to proceed with manual account recovery with [~ben](/~ben/) or another admin.
drop a line to [sudoers@tilde.team](mailto:sudoers@tilde.team) or hop on
[irc](https://web.tilde.chat/?join=sudoers) for assistance.
> all users are required to use an ssh keypair for login, or will be required to proceed with manual account recovery with [~ben](/~ben/) or another admin. drop a line to [sudoers@tilde.team](mailto:sudoers@tilde.team) or hop on [irc](https://web.tilde.chat/?join=sudoers) for assistance.
## tilde.team details
@ -37,62 +34,34 @@ ssh user@tilde.team # this uses port 22, which can be blocked on some networks
## intro
** if you just want to get right to a tutorial you can
[skip over this background info](#how-to-make-an-ssh-key)**
** if you just want to get right to a tutorial you can [skip over this background info](#how-to-make-an-ssh-key)**
while [tilde.team](https://tilde.team) is accessible on the web and features
lovely web pages written by its users, most interaction with tilde.team takes
place **inside the machine** that runs tilde.team as opposed to via web forms
that have an effect from **outside** tilde.team's computer.
while [tilde.team](https://tilde.team) is accessible on the web and features lovely web pages written by its users, most interaction with tilde.team takes place **inside the machine** that runs tilde.team as opposed to via web forms that have an effect from **outside** tilde.team's computer.
this is what sets tilde.team apart from most other online communities. you
connect directly to another computer from yours alongside other people and then
write your web pages, chat, and play games all via text-based interfaces right
on tilde.team's computer.
this is what sets tilde.team apart from most other online communities. you connect directly to another computer from yours alongside other people and then write your web pages, chat, and play games all via text-based interfaces right on tilde.team's computer.
prior to the web (which debuted in 1995) this is how pretty much all computer
stuff got done. you connected directly to a machine (usually over a direct,
physical phone line) and did your work there.
prior to the web (which debuted in 1995) this is how pretty much all computer stuff got done. you connected directly to a machine (usually over a direct, physical phone line) and did your work there.
for a long time, people used a tool called
[`telnet`](https://en.wikipedia.org/wiki/telnet) to connect to other computers.
these days we use a tool called **ssh**.
for a long time, people used a tool called [`telnet`](https://en.wikipedia.org/wiki/telnet) to connect to other computers. these days we use a tool called **ssh**.
`ssh` is a text-based tool that provides a direct connection from your computer
to another. ssh is an acronym that stands for secure shell. the _shell_ part
refers to the fact that it's a text-based tool; we use the word shell to refer
to a text-based interface that you give commands to. the _secure_ part refers
to the fact that, when you're using ssh, no one can spy on your connection to
another computer (unlike the old `telnet` command).
`ssh` is a text-based tool that provides a direct connection from your computer to another. ssh is an acronym that stands for secure shell. the _shell_ part refers to the fact that it's a text-based tool; we use the word shell to refer to a text-based interface that you give commands to. the _secure_ part refers to the fact that, when you're using ssh, no one can spy on your connection to another computer (unlike the old `telnet` command).
**why bother with all of this?** passwords are really insecure and hard to manage.
using keys makes life easier for you, fair user (your account is less likely to
be hacked) and for me, your humble sysadmin (less administration than passwords).
**why bother with all of this?** passwords are really insecure and hard to manage. using keys makes life easier for you, fair user (your account is less likely to be hacked) and for me, your humble sysadmin (less administration than passwords).
---
## how to make an ssh key
SSH supports a handful of types of cryptographic keys. The most used are [RSA](
<https://en.wikipedia.org/wiki/RSA_(cryptosystem)>) and the more modern [Ed25519](
https://en.wikipedia.org/wiki/EdDSA#Ed25519).
SSH supports a handful of types of cryptographic keys. The most used are [RSA](<https://en.wikipedia.org/wiki/RSA_(cryptosystem)>) and the more modern [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519).
RSA is the de-facto standard and is supported everywhere (just choose a big
enough key like 4096 bits to be secure). Ed25519 is designed to be faster and
smaller withouth sacrificing security, so is best suited for embedded devices
or machines with low resources. It's supported on tilde (and really on any
modern system) but you may find older systems which do not support it.
RSA is the de-facto standard and is supported everywhere (just choose a big enough key like 4096bits to be secure). Ed25519 is designed to be faster and smaller withouth sacrificing security, so is best suited for embedded devices or machines with low resources. It's supported on tilde (and really on anymodern system) but you may find older systems which do not support it.
Below you'll find instructions to generate either type (or both if you want).
Keep in mind that these instructions leave your private keys unencrypted in
your local hard disk. So keep them private; never share them. A good solution
is to provide a password for them at creation time, but this implies entering
a password any time you used them (impractical) or use something like [ssh-agent](
https://man.openbsd.org/ssh-agent.1) (a bit more complex)
Keep in mind that these instructions leave your private keys unencrypted in your local hard disk. So keep them private; never share them.
A good solution is to provide a password for them at creation time, but this implies entering a password any time you used them (impractical) or use something like [ssh-agent](https://man.openbsd.org/ssh-agent.1) (a bit more complex)
We don't have documentation for this [(yet)](https://tildegit.org/team/site/src/branch/master/wiki)
so either go with no password keys, or ask on IRC ([#team](https://web.tilde.chat/?join=team)) for help.
We don't have documentation for this [(yet)](https://tildegit.org/team/site/src/branch/master/wiki) so either go with no password keys, or ask on IRC ([#team](https://web.tilde.chat/?join=team)) for help.
pick your fighter: [[mac](#mac)] | [[windows](#windows)] | [[linux](#linux)]
@ -124,14 +93,11 @@ for dd25519 keys:
ssh-keygen -t ed25519 -a 100
```
1. if you press enter to accept the defaults, your public and private key will
be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or
`~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type)
1. if you press enter to accept the defaults, your public and private key will be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type)
1. `cat ~/.ssh/id_rsa.pub` (or `cat ~/.ssh/id_ed25519.pub` for ed25519)
1. copy the output of the last command and paste it in the sshkey field on the
signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account)
1. copy the output of the last command and paste it in the sshkey field on the signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account)
#### using your keypair
@ -151,64 +117,13 @@ where username is your username (~ben would use `ssh ben@tilde.team`)
---
### windows 10
### windows
windows 10 1809 or later has openssh built in, so you no longer need to install third-party tools. if openssh is not enabled, please see microsoft's documentation on [openssh in windows](https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_overview).
there are a couple options for using ssh on windows these days. i like to use [git bash](https://git-scm.com).
#### generating your keypair
1. open your new shell
1. create your .ssh directory
```powershell
mkdir .ssh
```
1. create your keypair
for rsa keys:
```powershell
ssh-keygen -t rsa -b 4096
```
for ed25519 keys:
```powershell
ssh-keygen -t ed25519 -a 100
```
1. if you press enter to accept the defaults, your public and private key will
be located at `%UserProfile%\.ssh\id_rsa.pub` and `%UserProfile$\.ssh\id_rsa` respectively (or
`%UserProfile%\.ssh\id_ed25519.pub` and `%UserProfile%\.ssh\id_ed25519` if you chose ed25519 type)
1. `type %UserProfile%\.ssh\id_rsa.pub` (or `type %UserProfile%\.ssh\id_ed25519.pub` for ed25519)
1. copy the output of the last command and paste it in the sshkey field on the
signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account)
#### using your keypair
once [~ben](https://tilde.team/~ben/) or another admin approves your signup, you can join the tilde.team
1. open powershell (right click start button and select "windows powershell")
1. `ssh` to tilde.team:
```bash
ssh username@tilde.team
```
where username is your username (~ben would use `ssh ben@tilde.team`)
1. profit???
---
### legacy windows
older versions of windows unfortunately do not come with openssh, and you will need to install a third-party tool. you may choose from any of the following options:
choose from any of the following options:
- [windows subsystem for linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
- [msys2](http://www.msys2.org/)
@ -236,20 +151,17 @@ for ed25519 keys:
ssh-keygen -t ed25519 -a 100
```
1. if you press enter to accept the defaults, your public and private key will
be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or
`~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type)
1. if you press enter to accept the defaults, your public and private key will be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type)
1. `cat ~/.ssh/id_rsa.pub` (or `cat ~/.ssh/id_ed25519.pub` for ed25519)
1. copy the output of the last command and paste it in the sshkey field on the
signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account)
1. copy the output of the last command and paste it in the sshkey field on the signup form (or email it to [~sudoers](mailto:sudoers@tilde.team) if you already have an account)
#### using your keypair
once [~ben](https://tilde.team/~ben/) or another admin approves your signup, you can join the tilde.team
1. open terminal (location will vary depending on your choice)
1. open terminal (it's in `/Applications/Utilities`)
1. `ssh` to tilde.team:
@ -265,8 +177,7 @@ where username is your username (~ben would use `ssh ben@tilde.team`)
### linux
there are a lot of linux distros, but `ssh` and `ssh-keygen` should be available
in almost all cases. if they're not, look up how to install ssh for your distro.
there are a lot of linux distros, but `ssh` and `ssh-keygen` should be available in almost all cases. if they're not, look up how to install ssh for your distro.
#### generating your keypair
@ -290,14 +201,11 @@ for ed25519 keys:
ssh-keygen -t ed25519 -a 100
```
1. if you press enter to accept the defaults, your public and private key will
be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or
`~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type)
1. if you press enter to accept the defaults, your public and private key will be located at `~/.ssh/id_rsa.pub` and `~/.ssh/id_rsa` respectively (or `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` if you chose ed25519 type)
1. `cat ~/.ssh/id_rsa.pub` (or `cat ~/.ssh/id_ed25519.pub` for ed25519)
1. copy the output of the last command and paste it in the sshkey field on the
signup form (or email it to [sudoers@tilde.team](mailto:sudoers@tilde.team) if you already have an account)
1. copy the output of the last command and paste it in the sshkey field on the signup form (or email it to [sudoers@tilde.team](mailto:sudoers@tilde.team) if you already have an account)
#### using your keypair

View File

@ -14,7 +14,8 @@ category:
- `mutt` - command line mail client for @tilde.team mail
- `alpine` - alternate command line mail client based on pine
- `bbj` - command line bbs (bulletin board and jelly)
- source here: [gitea mirror](https://tildegit.org/bbj/bbj) and [github fork](https://github.com/bbj-dev/bbj)
- source here: [gitea mirror](https://tildegit.org/team/bbj) and [github fork](https://github.com/tilde-team/bbj)
- `talk` - old school chat utility (`man talk` for more info)
- `who` - see who else is connected right now
- `webirc` - register for access to our [thelounge webchat client](https://irc.tilde.team)
- `pb` - [pastebin](https://paste.tilde.team)
@ -22,7 +23,7 @@ category:
- `finger` - get info on other users (local and remote on other tildeverse member servers)
- `toot` - submit a post to the [tilde.team mastodon account](https://tilde.zone/@tildeteam)
- `botany` - tend to your plants and visit teammates' gardens
- `bb` - [bashblog tool](tildeblogs)
- `bb` - [bashblog tool](?page=tildeblogs)
- `feels` - ttbp feels engine, forked from [tilde.town/~endorphant](https://tilde.town/~endorphant/ttbp/). post to gopher, web, or internal only.
- `dcss` - connect to [tildecrawl](https://crawl.tildeverse.org) and get your roguelike on

View File

@ -2,70 +2,42 @@
author: ~cmccabe
published: true
title: teaching and learning on tilde.team
description:
category:
description:
category:
- main
---
# teaching and learning on tilde.team
**tl;dr** bring project ideas. bring your skills. learn by doing.
help others who are trying to learn. share what you're working on.
**tl;dr** bring project ideas. bring your skills. learn by doing. help others who are trying to learn. share what you're working on.
## 1. start learning, start teaching!
an important goal of tilde.team is to help you learn linux, programming, and
general computing skills through the command line interface. we think it is
important that this happens in a fun social environment. for this reason we
encourage users to meet each other, to collaborate, to ask questions when
you're stuck on something, and to offer help to others who are learning.
an important goal of tilde.team is to help you learn linux, programming, and general computing skills through the command line interface. we think it is important that this happens in a fun social environment. for this reason we encourage users to meet each other, to collaborate, to ask questions when you're stuck on something, and to offer help to others who are learning.
stuck for ideas? or looking for a bigger challenge? tilde.team also maintains
a [list of internship opportunities and code challenge websites](
https://tilde.team/wiki/learning-opportunities). this list is a new
feature of the site, so please contribute by letting us know (by email,
IRC or pull request) of any other opportunities you know of.
stuck for ideas? or looking for a bigger challenge? tilde.team also maintains a [list of internship opportunities and code challenge websites](https://tilde.team/wiki/?page=learning-opportunities). this list is a new feature of the site, so please contribute by letting us know (by email, IRC or pull request) of any other opportunities you know of.
## 2. learning resources
tilde.team's IRC server is the social hub around which a lot of learning
occurs. [log on](https://tilde.team/wiki/irc) and get to know some people.
tilde.team's IRC server is the social hub around which a lot of learning occurs. [log on](https://tilde.team/wiki/?page=irc) and get to know some people.
we have numerous compilers and interpreters installed in the shell, including
g++, python, ruby, perl and many others. if you need something that is not
currently installed, just ask ~ben or any admin on IRC.
we have numerous compilers and interpreters installed in the shell, including g++, python, ruby, perl and many others. if you need something that is not currently installed, just ask ~ben or any admin on IRC.
in addition to the specific programming utilities, remember that *NIX itself
is a platform designed for communal programming. if you are working with others,
you have several tools at your disposal. you can, of course, share files with
each other. and you can communicate through private messages on IRC, through
email, or using the shell-based 'talk' or 'write' utilities.
in addition to the specific programming utilities, remember that *NIX itself is a platform designed for communal programming. if you are working with others, you have several tools at your disposal. you can, of course, share files with each other. and you can communicate through private messages on IRC, through email, or using the shell-based 'talk' or 'write' utilities.
## 3. resource limits and performance profiling
good code is efficient code, and part of learning to be a good programmer is
learning how to develop elegant solutions that use the minimum system resources
necessary. this is hard! but it is even more important on a multi-user system
like tilde.team.
good code is efficient code, and part of learning to be a good programmer is learning how to develop elegant solutions that use the minimum system resources necessary. this is hard! but it is even more important on a multi-user system like tilde.team.
some resource limits are established through /etc/security/limits.conf - you can
read this file yourself to see what they are.
some resource limits are established through /etc/security/limits.conf --you can read this file yourself to see what they are.
beyond those limits, we simply ask that you monitor your code and be considerate
of others on the system.
beyond those limits, we simply ask that you monitor your code and be considerate of others on the system.
as we develop more learning resources on the tilde.team wiki, we will provide
some guidance about how to profile your code. of course, a quick web search
for "code profiling [your language]" will give you a lot of help as well.
as we develop more learning resources on the tilde.team wiki, we will provide some guidance about how to profile your code. of course, a quick web search for "code profiling [your language]" will give you a lot of help as well.
## 4. learning how to build a learning environment
the number one thing we know about learning is that being able to socialize with
other learners and teachers is useful. but beyond this, we are working all the
time to build and improve the other supporting resources on tilde.team.
the number one thing we know about learning is that being able to socialize with other learners and teachers is useful. but beyond this, we are working all the time to build and improve the other supporting resources on tilde.team.
you can help! if you have suggestions about other resources or ways to help
people practice programming or other linux skills, pop in to IRC and talk
about it. many of the ideas that have already helped make this place better
came from people like you. everybody is learning here; including the admins!
you can help! if you have suggestions about other resources or ways to help people practice programming or other linux skills, pop in to IRC and talk about it. many of the ideas that have already helped make this place better came from people like you. everybody is learning here; including the admins!

View File

@ -13,8 +13,7 @@ bashblog is available system-wide as `bb`
tildeblogs can be built with [bashblog](https://tildegit.org/team/bashblog)
change to your ~/public_html/blog directory: `cd ~/public_html/blog`
(bashblog will do this for you if you forget)
change to your ~/public_html/blog directory: `cd ~/public_html/blog` (bashblog will do this for you if you forget)
---
@ -33,8 +32,7 @@ change to your ~/public_html/blog directory: `cd ~/public_html/blog`
edit the `.config` file to change the name and url and other settings for your blog
for an example of customization, see [~ben's blog](https://tilde.team/~ben/blog/)
([config source](https://tildegit.org/ben/tilde/src/branch/master/blog/.config)).
for an example of customization, see [~ben's blog](https://tilde.team/~ben/blog/) ([config source](https://tildegit.org/ben/tilde/src/branch/master/blog/.config)).
for more details: see [the bashblog repo](https://tildegit.org/team/bashblog)

View File

@ -10,10 +10,9 @@ category:
# tildepages
because [~ben](https://tilde.team/~ben/) hoards domain names, you can
use the following domains with your tildepage:
because [~ben](https://tilde.team/~ben/) hoards domain names, you can use the following domains with your tildepage:
see also the [master list of domains](domains).
see also the [master list of domains](?page=domains).
* fuckup.club
* nand.sh
@ -25,62 +24,9 @@ see also the [master list of domains](domains).
* tilde.team
* tildeteam.org
this means you can access your user page from any of the following
url formats, substituting domain and username:
this means you can access your user page from any of the following url formats, substituting domain and username:
* `https://domain.tld/~username/`
* `https://domain.tld/u/username/`
* `https://username.domain.tld/`
## your public\_html
`~/public_html` is the webroot for your tildepage. files you place in there
are served at the addresses described above.
static files are served normally, along with the following dynamic options:
* php - name the file with a .php extension or use index.php
* perl - name the file with a .pl extension
* sh/cgi - name the file with a .sh or .cgi extension
* python - name the file with a .py extension
* lua - name the file with a .lua extension
* cgi-bin - name it whatever you want and place it in `~/public_html/cgi-bin/`
don't forget to make the cgi-bin script executable
if you're having trouble with any of these cgi scripts, make sure that the script
has a correct shebang, is executable, and that you're sending the content-type
header as the first thing.
## static page generators
there are several static site generators available, including some cool blog
engines.
### blog engines
* [bashblog](tildeblogs) - a single shell script that helps you build a blog
with plain html or markdown. also supports mirroring your posts into your
[`~/public_gopher` gopherhole](gopher).
* [ttbp](ttbp) - tilde.team blogging platform. originally built for [tilde.town](
https://tilde.town/) by [~endorphant](https://tilde.town/~endorphant/). forked
with a handful of patches for our setup.
### ssgs
* [mkdocs](https://www.mkdocs.org) - markdown project documentation tool.
additional themes are available from the [mkdocs-bootstrap](
http://mkdocs.github.io/mkdocs-bootstrap/) and [mkdocs-bootswatch](
http://mkdocs.github.io/mkdocs-bootswatch/) projects. just set your theme name
to one those listed and rebuild. generally recommended to not build the mkdocs
source directly in your webroot. set the destination to somewhere in `~/public_html`,
symlink, or move/copy the generated files manually. for example, if you wanted to
make a mkdocs site called mywiki available on the web, you could do:
`ln -s ~/mywiki ~/public_html/wiki`
* [hugo](https://gohugo.io/) - static site generator built in go
* [jekyll](https://jekyllrb.com/) - static site generator used by github for
[github pages](https://pages.github.com) built in ruby
* [zola](https://getzola.org/) - single-binary static site generator written in rust

View File

@ -9,11 +9,9 @@ category:
# terms of service
tilde.team relies on the common courtesy and consideration of users to make
its services fair for everyone. the following offences will result in a service ban:
tilde.team relies on the common courtesy and consideration of users to make its services fair for everyone. the following offences will result in a service ban:
tl;dr: don't do anything illegal or harmful, especially anything that could
[anger the hosting company](https://www.ovh.com/world/support/terms-and-conditions/)
tl;dr: don't do anything illegal or harmful, especially anything that could [anger the hosting company](https://www.hetzner.com/rechtliches/root-server/)
here are some things that we don't allow:
@ -32,14 +30,7 @@ here are some things that we don't allow:
outgoing net- and portscanning is prohibited on tilde.team.
> this is outdated now that tilde.team lives on ovh
after the [major outage](/~ben/blog/november-13-post-mortem.html) of november 13th,
we have run in to the clause in the [hetzner tos](
https://www.hetzner.com/rechtliches/root-server/) that prohibits net- and
portscanning. please don't try to reach anything in the [RFC-1918](
https://tools.ietf.org/html/rfc1918) private address space. for some reason,
packets sent there will end up at the default gateway and may be interpreted as an attack.
after the [major outage](/~ben/blog/november-13-post-mortem.html) of november 13th, we have run in to the clause in the [hetzner tos](https://www.hetzner.com/rechtliches/root-server/) that prohibits net- and portscanning. please don't try to reach anything in the [RFC1918](https://tools.ietf.org/html/rfc1918) private address space. for some reason, packets sent there will end up at the default gateway and may be interpreted as an attack.
i've added firewall rule to prevent outgoing requests to these subnets:

View File

@ -1,20 +1,22 @@
---
author: ~ben
published: true
title: feels - tilde.team blogging platform
description: a cli blogging platform that can publish to your tilde page and your gopherhole
category:
- main
title: tilde.team blogging platform
description: a cli blogging platform that can publish to your tilde page and your gopherhol
category:
- main
---
# FEELS MANUAL
*a command-line based blogging platform running on tilde.team*
`ttbp` stands for "tilde.team blogging platform", the original working name for
this project. the complete codebase is available on
[tildegit](https://tildegit.org/team/ttbp).
`ttbp` stands for "tilde.town blogging platform", the original working name for
this project.
`ttbp` was originally written for [tilde.town](https://tilde.town/~endorphant/ttbp/)
with sources available on [github](https://github.com/modgethanc/ttbp).
![ttbp main menu screenshot](https://tilde.town/~endorphant/ttbp/screenshots/ttbp-main.png)
![ttbp entries view screenshot](https://tilde.town/~endorphant/ttbp/screenshots/ttbp-entries.png)
![ttbp compose view screenshot](https://tilde.town/~endorphant/ttbp/screenshots/ttbp-compose.png)
`ttbp` runs from the command line, providing a hub for writing personal blog
posts and reading posts written by other users of tilde.team. it's a little bit
@ -22,21 +24,36 @@ like livejournal or dreamwidth or tumblr. you can opt to publish your posts to a
public html file hosted on your tilde page, to tilde.team's gopher server, or
keep all your entries private to the tilde.team server.
to use, run `feels` while logged in to tilde.team
this is a project that runs on tilde.team, so all users of this program are
expected to operate under the tilde.team [code of
conduct](http://tilde.team/wiki/code-of-conduct). content/personal issues should be
conduct](http://tilde.team/wiki/?page=code-of-conduct). content/personal issues should be
worked out according to the CoC, with support from the [administrative
team](https://tilde.team/wiki/code-of-conduct#9--contact-info) if needed.
team](http://tilde.team/wiki/?page=administration) if needed.
### QUICK START
no coding or html experience is necessary to get started. just log in to your
tilde.team account and enter:
`feels`
ttbp will ask you a few questions to get you started. after that, writing and
reading entries all happen within the program.
that's it!
### support
if you're having trouble getting started, or run into program errors or strange
behavior, please ask on [#team](https://web.tilde.chat/?join=team) or send a mail
to [sudoers@tilde.team](mailto:sudoers@tilde.team) and we'll try to
behavior, please send internal tilde.team mail to sudoers@tilde.team and i'll try to
sort things out!
there's also a function from the main menu that lets you send feedback/inquiries
to us directly
to me directly; this uses internal tilde.team mail, which is what i'll respond
to.
### writing entries
@ -65,8 +82,8 @@ by creating files with any date you want.)*
* you can use [markdown](https://daringfireball.net/projects/markdown/syntax)
* you can use html
* you can also put things between `<!-- comments -->` to have them show up
in the feed but not render in a browser (but people can still read them with
view-source)
in the feed but not render in a browser (but people can still read
them with view-source)
### reading other feels
@ -101,7 +118,8 @@ directory.
if you opt to publish, the program creates a directory `~/.ttbp/www` where it
stores all html files it generates, and symlinks this from your `~/public_html`
with your chosen blog directory.
with your chosen blog directory. your blog will also be listed on the [main ttbp
page](https://tilde.town/~endorphant/ttbp).
you can also opt to publish to gopher, and the program will automatically
generate a gophermap of your feels.
@ -205,3 +223,35 @@ these are a few ideas being kicked around, or under active development:
other ideas are listed on github as
[upcoming features](https://github.com/modgethanc/ttbp/issues?q=is%3Aissue+is%3Aopen+label%3A"upcoming+features") or [feature requests](https://github.com/modgethanc/ttbp/issues?q=is%3Aissue+is%3Aopen+label%3A"feature+request")!
### dependencies
(this section is only relevant if you plan on forking the repo and running an
instance of this yourself)
* [mistune](https://pypi.python.org/pypi/mistune)
* [inflect](https://pypi.python.org/pypi/inflect)
* [six](https://pypi.python.org/pypi/six)
### contributing
please check out my [contributor
guidelines](https://github.com/modgethanc/ttbp/blob/master/.github/CONTRIBUTING.md)
on github if you'd like to get involved with development!
if you find any bugs or strange behavior, please message me locally on tildemail
or open a github issue and i'll get back to you as soon as i can.
if you're interested in helping with the code, please drop me some tildemail!
i accept tips for development work on
[liberapay](https://liberapay.com/modgethanc)
### contributor shout-outs
thanks to:
* ~vilmibm, packaging help and gopher support
* ~sanqui, the bug swatter
* ~sinacutie, for css updates

View File

@ -13,35 +13,34 @@ so you've got a process that you want to keep running. you might have it in a
tmux or screen session. let's use systemd user units to manage it!
1. ensure that your user unit loadpath is set up:
```bash
mkdir -p ~/.config/systemd/user/
```
mkdir -p ~/.config/systemd/user/
1. create a basic service. save something like this in ~/.config/systemd/user/my-new-service.service (adjusting where necessary)
```bash
[Unit]
Description=foo
1. create a basic service. save something like this in
`~/.config/systemd/user/my-new-service.service` (using the name of the unit
you're creating)
[Service]
ExecStart=/bin/bash -c "while true do; echo hi; done"
[Unit]
Description=foo
[Service]
ExecStart=/bin/bash -c "while true do; echo hi; done"
[Install]
WantedBy=default.target
[Install]
WantedBy=default.target
```
1. enable it
systemctl --user enable --now my-new-service.service
```bash
systemctl --user enable --now my-new-service.service
```
1. enable-linger for your user account
loginctl enable-linger
```bash
loginctl enable-linger
```
this allows your user units to run even when you're not logged in.
done!
you can now use `systemctl --user` to manage your daemonized process.
pro-tip: add `alias sysu='systemctl --user'` to your shell's configuration
for a handy shortcut (or any other alias as you choose)