Compare commits

...

76 Commits

Author SHA1 Message Date
creme b0d00c01f6
check username only if not emtpy 2020-02-02 12:06:02 +01:00
creme 58760e50b7
we $name and $email for ban info 2020-02-02 11:51:51 +01:00
creme 6b465e8b03
remove double check for emtpy sshkey 2020-02-02 10:52:59 +01:00
creme 7988ddb6ae
add check for banned ssh-keys 2020-02-02 10:17:45 +01:00
Ben Harris caf203cafd fix banned username check 2020-01-16 22:32:45 -05:00
creme ad455b69c6 rename alert to notice. 2020-01-16 21:55:33 -05:00
creme b913bacda9 fix for user ban's (merge from envs) 2020-01-16 21:55:33 -05:00
Ben Harris 1f4846e02d misc bugfixes, partially address #54
this commit fixes a few miscellaneous bugs, including:
- stop loading js from a cdn, load those from our own site
- fix a wiki link in the header
- add note about znc requiring manual account add
- show our ECDSA fingerprint in the site footer
2020-01-16 18:08:52 -05:00
Anton McClure bc65648fa3
no password auth - change instructions to say ssh key passphrase 2020-01-15 00:38:56 +00:00
Anton McClure bd6e821562
fixed getting started article 2020-01-15 00:33:43 +00:00
Anton McClure 183b028998
Change URLs for /news to be SEO-friendly 2020-01-10 04:35:56 +00:00
Ben Harris f34b57ab35 remove masto feed header 2020-01-06 10:29:15 -05:00
Ben Harris e8f1327669 another migration 2020-01-06 10:28:02 -05:00
fosslinux dfa9951410 remove masto feed 2020-01-02 11:11:37 +11:00
fosslinux 8d15d90875 fix validator 2020-01-02 11:10:16 +11:00
Ben Harris 75f78aa83c add ssh fingerprint info 2020-01-01 15:57:54 -05:00
Ben Harris 89456c7075 add drone badge to README.md 2019-12-06 13:23:53 -05:00
Ben Harris 32fc9e8075 add drone build 2019-12-06 13:21:22 -05:00
Ben Harris 5580a71873 update domain list 2019-11-26 11:59:21 -05:00
Robert Miles c8b2789567 Update 'gen_tdp'
If ahriman's site freaks out, then don't crash. Otherwise, crash.
2019-11-25 10:45:32 -05:00
Anton McClure e568b7f1b0 Fixing instructions for Windows
Adds instructions for Windows 10 OpenSSH, and differentiates OpenSSH from Legacy Windows methods
2019-11-21 00:06:01 -05:00
Ben Harris 810a162fae note that yourtilde closed 2019-11-20 22:06:36 -05:00
Anton McClure 675d7567bf
Updated Summit Tilde listing and added link to signup page 2019-10-27 18:19:46 +00:00
Ben Harris 53bc076da9
update bsd.tilde.team wiki info
- user pages have https now
- no longer running an irc node on bsd as there are already three
tilde.chat nodes in that same datacenter.
2019-10-13 14:42:33 -04:00
Ben Harris 363fc210ba remove nand.{pub,team,zone} 2019-10-13 00:27:20 -04:00
Ben Harris c5aea6e866 port back improvements from ~club 2019-10-03 10:09:20 -04:00
Em 5b1cf7b57f Fix broken links for bbj stuff 2019-09-27 20:35:02 -04:00
Em c055a1c073 Break long words in blog entries.
Long strings were overflowing and causing horizontal scroll on mobile.
Put word-wrap/overflow-wrap so they wrap to a new line.
2019-09-27 16:23:42 -04:00
TechEmporium ead36ac436 Added Wilde to the list of other tilde servers. 2019-09-25 11:43:34 -04:00
Robert Miles e5556c00b1 Revert "hotfix: gbmor.dev is down, causing TDP to error out when rendering ahriman"
gbmor.dev loads now, so we should be good.
2019-09-15 10:46:11 -04:00
Robert Miles e527ed44f9 hotfix: gbmor.dev is down, causing TDP to error out when rendering ahriman 2019-09-14 21:22:39 -04:00
Ben Harris db34c7e33e add info about pop3 2019-09-11 21:34:01 -04:00
Ben Harris d71470fad6 remove expiring domains 2019-09-03 12:02:34 -04:00
Ben Harris 3f4af3a548 remove duplicate talk line 2019-09-03 09:59:07 -04:00
Ben Harris d6cb8dcbb4 update admin docs 2019-09-02 19:51:32 -04:00
Ben Harris 12e9442ff5 add more cgi info 2019-08-25 21:09:14 -04:00
James Tomasino 2f46cc7def replacing cosmic signup email with register at cosmic 2019-08-23 20:37:52 +00:00
Anton McClure 291eb03c89
added summit and fixed alphabetical ordering 2019-08-23 17:08:30 +00:00
best f704d56ae2 Add ~best 2019-08-14 10:21:35 -04:00
Ben Harris 41dc87b860 remove discord/ 2019-08-06 23:44:30 -04:00
Ben Harris 4bb4240537 add note about zola 2019-08-06 11:06:50 -04:00
Ben Harris e6b3e639af fix codeblocks on user-units wiki page 2019-08-04 16:39:27 -04:00
Ben Harris ec713d9136 update gopher info 2019-07-31 10:51:28 -04:00
Ben Harris 912dc97d04 add info about available static and dynamic pages 2019-07-26 16:13:21 -04:00
Ben Harris 0db8212131 alphabetize other tilde list 2019-07-23 18:21:12 -04:00
Ben Harris 0114c1d277 fix typo 2019-07-23 18:18:51 -04:00
Ben Harris c9aea76c96 add envs.net 2019-07-23 18:18:08 -04:00
Ben Harris d54e3d4f7b update ttbp page 2019-07-22 13:28:19 -04:00
Ben Harris ca7e4290d2 fix broken links 2019-07-17 21:20:31 -04:00
Ben Harris dca4ab41f6 add znc section 2019-07-05 14:56:48 -04:00
Ben Harris 76d3b045d6 add nginx config note 2019-07-05 12:19:40 -04:00
Ben Harris a7305c7b28 remove page= param from links 2019-07-05 12:10:51 -04:00
Ben Harris 2f736b5677 fix news parser 2019-07-03 07:53:09 -04:00
Ben Harris 19db11d958 use tildeverse/wiki external dep 2019-07-03 01:15:10 -04:00
Ben Harris 443268fd1d fix scrolldown height for permalinks 2019-07-02 23:28:07 -04:00
Ben Harris c90e6db194 news post 2019-07-02 00:56:04 -04:00
Ben Harris d96e48da9b composer update 2019-07-02 00:44:15 -04:00
Ben Harris 756bf4c41d wiki markdown refactor, update articles 2019-07-02 00:38:20 -04:00
Ben Harris 03e8309882 check if we have the beginning of a pubkey 2019-06-28 11:42:22 -04:00
Ben Harris cbbf122342 add webchat and wiki link to ssh error msg 2019-06-28 11:34:20 -04:00
Ben Harris da7c536850 disallow uppercase letters in usernames 2019-06-28 11:21:33 -04:00
Ben Harris 342649c9d4 fix md 2019-06-27 09:41:13 -04:00
Ben Harris eed32252b2 fix indents 2019-06-27 09:39:45 -04:00
Ben Harris 96dcd24231 add weechat unix relay docs 2019-06-27 09:37:15 -04:00
Ben Harris 0cbe2a9d1e remove `-` from email addressing 2019-05-09 13:47:40 -04:00
cmccabe 7e6afff0ce added link to rtc 2019-05-07 11:59:00 -04:00
cmccabe 1501144646 added rawtext.club 2019-05-07 07:33:10 -04:00
cmccabe f43b84f697 added rawtext.club 2019-05-07 07:31:39 -04:00
Ben Harris be9e6a7e86
tidy markdown table formatting 2019-05-06 00:22:01 -04:00
Rob Drake ab75ac9576 Update other-tildes.md
added theasylum to the other tilde list
2019-05-05 20:52:38 -05:00
Rob Drake 8e54c01035 Update other-tildes.md 2019-05-05 20:49:39 -05:00
Adam Saponara c8e11c3f94 Add rw.rs to wiki/pages/other-tildes.md 2019-04-23 15:10:15 -04:00
Tiwesdaeg Twohands 02d724c49e Added tilde.pink to wiki other-tilde.md 2019-04-23 13:33:56 -05:00
Ben Harris 39fec10dd7
update that we've migrated 2019-04-17 02:57:44 -04:00
Robert Miles b5f11a9652 Add migration notice 2019-04-14 03:44:31 -04:00
Ben Harris 71cb8b7988 fix links to repos 2019-03-26 12:01:35 -04:00
44 changed files with 879 additions and 520 deletions

26
.drone.yml Normal file
View File

@ -0,0 +1,26 @@
---
kind: pipeline
type: ssh
name: deploy
server:
host:
from_secret: host
user:
from_secret: username
ssh_key:
from_secret: ssh_key
clone:
disable: true
trigger:
branch:
- master
steps:
- name: deploy
commands:
- cd /var/www/tilde.team
- sudo -Hu www-data git pull origin master

View File

@ -1,5 +1,7 @@
# [tilde.team](https://tilde.team/)
[![Build Status](https://drone.tildegit.org/api/badges/team/site/status.svg)](https://drone.tildegit.org/team/site)
tilde.team homepage
```

View File

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

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": "f693531fd51bd92297c17d6a290a6f16",
"content-hash": "3ab3df15c4e40417f427b37691e83088",
"packages": [
{
"name": "erusev/parsedown",
"version": "1.7.1",
"version": "1.7.3",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown.git",
"reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1"
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
"reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
"url": "https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
"shasum": ""
},
"require": {
@ -50,53 +50,51 @@
"markdown",
"parser"
],
"time": "2018-03-08T01:11:30+00:00"
"time": "2019-03-17T18:48:37+00:00"
},
{
"name": "michelf/php-markdown",
"version": "1.8.0",
"name": "erusev/parsedown-extra",
"version": "0.7.1",
"source": {
"type": "git",
"url": "https://github.com/michelf/php-markdown.git",
"reference": "01ab082b355bf188d907b9929cd99b2923053495"
"url": "https://github.com/erusev/parsedown-extra.git",
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/01ab082b355bf188d907b9929cd99b2923053495",
"reference": "01ab082b355bf188d907b9929cd99b2923053495",
"url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/0db5cce7354e4b76f155d092ab5eb3981c21258c",
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
"erusev/parsedown": "~1.4"
},
"type": "library",
"autoload": {
"psr-4": {
"Michelf\\": "Michelf/"
"psr-0": {
"ParsedownExtra": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
"MIT"
],
"authors": [
{
"name": "Michel Fortin",
"email": "michel.fortin@michelf.ca",
"homepage": "https://michelf.ca/",
"role": "Developer"
},
{
"name": "John Gruber",
"homepage": "https://daringfireball.net/"
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
}
],
"description": "PHP Markdown",
"homepage": "https://michelf.ca/projects/php-markdown/",
"description": "An extension of Parsedown that adds support for Markdown Extra.",
"homepage": "https://github.com/erusev/parsedown-extra",
"keywords": [
"markdown"
"markdown",
"markdown extra",
"parsedown",
"parser"
],
"time": "2018-01-15T00:49:33+00:00"
"time": "2015-11-01T10:19:22+00:00"
},
{
"name": "mnapoli/front-yaml",
@ -135,25 +133,28 @@
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.8.0",
"version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae"
"reference": "82ebae02209c21113908c229e9883c419720738a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
"reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
"reference": "82ebae02209c21113908c229e9883c419720738a",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.8-dev"
"dev-master": "1.11-dev"
}
},
"autoload": {
@ -186,20 +187,20 @@
"polyfill",
"portable"
],
"time": "2018-04-30T19:57:29+00:00"
"time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/yaml",
"version": "v4.1.0",
"version": "v4.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "80e4bfa9685fc4a09acc4a857ec16974a9cd944e"
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/80e4bfa9685fc4a09acc4a857ec16974a9cd944e",
"reference": "80e4bfa9685fc4a09acc4a857ec16974a9cd944e",
"url": "https://api.github.com/repos/symfony/yaml/zipball/c60ecf5ba842324433b46f58dc7afc4487dbab99",
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99",
"shasum": ""
},
"require": {
@ -218,7 +219,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.1-dev"
"dev-master": "4.3-dev"
}
},
"autoload": {
@ -245,13 +246,45 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2018-05-30T07:26:09+00:00"
"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"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"stability-flags": {
"tildeverse/wiki": 20
},
"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/css">
<a href="https://tildegit.org/team/site/src/branch/master/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/css">Forked</a> by
<a href="https://tildegit.org/team/site/src/branch/master/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/css", function (data) {
$.getJSON("https://tildegit.org/api/v1/repos/team/site", 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/css">
<a href="https://tildegit.org/team/site/src/branch/master/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/css">Forked</a> by
<a href="https://tildegit.org/team/site/src/branch/master/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/css", function (data) {
$.getJSON("https://tildegit.org/api/v1/repos/team/site", function (data) {
$("#stars").text(data['stars_count'] + " stars");
});
});</script>

View File

@ -175,14 +175,20 @@ tr.active {
// List groups
// Highlight active item
.list-group-item.active {
font-weight: bold;
border: 1px solid #222;
&:hover,
&:focus {
background: #1a1a1a;
.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;
}
}

View File

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

View File

@ -1,5 +1,6 @@
<hr>
<footer class="text-center">
<p>ECDSA fingerprint: SHA256:R3qNfKIF3IiXhKCbFX6rCKl73yzexi9Wodsow6XFres</p>
<a href="https://tildegit.org/team/site">page source</a>
&mdash;
<a href="https://bhh.sh/donate/">donate</a>
@ -9,8 +10,9 @@
<br>
<br>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
</body>
</html>

6
gen_tdp Executable file → Normal file
View File

@ -17,7 +17,11 @@ for user in users:
if user=="asm":
continue
tdpuser = dict(username=user)
title = bs(requests.get("https://tilde.team/~{}".format(user)).text,"lxml").title
try:
title = bs(requests.get("https://tilde.team/~{}".format(user)).text,"lxml").title
except:
if user=="ahriman": pass
else: raise
if title is None:
title = "No title"
else:

View File

@ -1,7 +1,7 @@
<?php
include 'header.php';
require __DIR__.'/vendor/autoload.php';
$parser = new Mni\FrontYAML\Parser();
$parser = Tildeverse\Wiki\Parser::factory();
?>
<div class="jumbotron">
@ -15,14 +15,34 @@ $parser = new Mni\FrontYAML\Parser();
</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>
@ -34,7 +54,7 @@ $parser = new Mni\FrontYAML\Parser();
<br>
<hr>
<h3>other tilde.team stuff</h3>
<h3>tilde.team services</h3>
<?php include 'services.php'; ?>
@ -44,20 +64,25 @@ $parser = new Mni\FrontYAML\Parser();
<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/<?=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 class="list-group-item-text"><?=$parsed->getContent()?></div>
</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>
@ -83,8 +108,6 @@ $parser = new Mni\FrontYAML\Parser();
<?php endforeach; ?>
</div>
<h1>our <a href="https://tilde.zone/@tildeteam">mastodon</a> feed</h1>
<iframe allowfullscreen sandbox="allow-top-navigation allow-scripts" width="100%" height="800" src="https://www.mastofeed.com/api/feed?url=https%3A%2F%2Ftilde.zone%2Fusers%2Ftildeteam.atom&theme=dark&size=100&header=true&replies=true&boosts=true"></iframe>
</div>
<div class="col-md-5">
@ -106,7 +129,7 @@ $parser = new Mni\FrontYAML\Parser();
$user = basename($user); ?>
<li style="list-style: none; margin-left: -40px;">
<a href="/~<?=$user?>/" class="list-group-item">
<h6 class="list-group-item-heading">~<?=$user?></h5>
<h6 class="list-group-item-heading">~<?=$user?></h6>
</a>
</li>
<?php endforeach; ?>
@ -116,4 +139,3 @@ $parser = new Mni\FrontYAML\Parser();
</div>
<?php include 'footer.php'; ?>

7
js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -15,20 +15,7 @@ $additional_head = "
<meta property='og:site_name' content='tilde.team news'>
";
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());
$parser = Tildeverse\Wiki\Parser::factory();
if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
@ -57,7 +44,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
foreach (array_reverse(glob("pages/*.md")) as $page) {
$yaml = $parser->parse(file_get_contents($page))->getYAML();
if (!$yaml["published"]) continue; ?>
<a href="?page=<?=basename($page, ".md")?>"><?=$yaml["title"]?></a> - <?=$yaml["date"]?><br>
<a href="<?=basename($page, ".md")?>"><?=$yaml["title"]?></a> - <?=$yaml["date"]?><br>
<?php }
} else {
@ -80,7 +67,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
<p><?=$yml["date"]?> - <a href="/~<?=$yml["author"]?>/">~<?=$yml["author"]?></a></p>
<hr>
<?=str_replace("<table", '<table class="table table-striped"', $pg->getContent())?>
<?=$pg->getContent()?>
<hr>
<a href="https://tildegit.org/team/site/src/branch/master/news/pages/<?=$_GET["page"]?>.md">

24
news/pages/026_migrate.md Normal file
View File

@ -0,0 +1,24 @@
---
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

@ -0,0 +1,16 @@
---
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!

17
news/pages/028_back_up.md Normal file
View File

@ -0,0 +1,17 @@
---
published: true
date: jan 6 2020
title: back up after downtime
author: ben
---
we moved once more to a new physical host. the process was simple,
but the backup/archive took much longer than i expected.
everything should be back up and running, please feel free to ping
on irc if something is still amiss.
the new primary ip is now 167.114.7.65
happy new year 2020!

View File

@ -1,18 +1,16 @@
<?php
$services = [
'gitea' => ['fa' => 'code-fork', 'url' => 'https://tildegit.org'],
'forum' => ['fa' => 'comment', 'url' => 'https://bbj.tilde.team'],
'wiki' => ['fa' => 'book', 'url' => '/wiki/'],
'gitea' => ['fa' => 'code-fork', 'url' => 'https://tildegit.org/team/'],
'forum' => ['fa' => 'comment', 'url' => 'https://bbj.tildeverse.org'],
'mastodon' => ['fa' => 'retweet', 'url' => 'https://tilde.zone'],
'chat' => ['fa' => 'comments-o', 'url' => '/wiki/?page=irc'],
'chat' => ['fa' => 'comments-o', 'url' => '/wiki/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.tilde.team'],
'gopher' => ['fa' => 'floppy-o', 'url' => 'https://gopher.tildeverse.org/tilde.team'],
];
$nav = isset($navbar);

View File

@ -2,8 +2,27 @@
require __DIR__.'/../vendor/autoload.php';
require_once "email/smtp.php";
function getUserIpAddr() {
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
//ip from share internet
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
//ip pass from proxy
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
function add_ban_info($name, $email) {
$user_ip = getUserIpAddr();
$user_info = "$name - $email - $user_ip";
file_put_contents("/var/signups_banned", $user_info.PHP_EOL, FILE_APPEND);
}
function forbidden_name($name) {
return in_array($name, [
$badnames = [
'0x0',
'abuse',
'admin',
@ -56,21 +75,55 @@ function forbidden_name($name) {
'wpad',
'www',
'znc',
]);
];
return in_array(
$name,
array_merge(
$badnames,
file("/var/signups_current", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES),
file("/var/banned_names.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)
)
);
}
function forbidden_email($email) {
$femail = file("/var/banned_emails.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
return in_array($email, $femail);
}
function forbidden_sshkey($sshkey) {
$fsshkey = file("/var/banned_sshkeys.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($fsshkey as $line_num => $line) {
$fsk_line = explode(' ',trim($line));
$fsk[] = $fsk_line[1];
}
$sk = explode(' ',trim($sshkey));
return in_array($sk[1], $fsk);
}
$message = "";
if (isset($_REQUEST["username"]) && isset($_REQUEST["email"])) {
// Check the name.
$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-Za-z][A-Za-z0-9]{2,31}$/', $name))
$message .= "<li>username contains invalid characters (lowercase only, must start with a letter)</li>";
if (posix_getpwnam($name) || forbidden_name($name))
$message .= "<li>sorry, the username $name is unavailable</li>";
$message .= "<li>fill in your desired username</li>\n";
else {
if ($name != "" && strlen($name) < 2)
$message .= "<li>username is too short (2 character min)</li>\n";
if (strlen($name) > 32)
$message .= "<li>username too long (32 character max)</li>\n";
if (strlen($name) > 1 && !preg_match('/^[a-z][a-z0-9]{1,31}$/', $name))
$message .= "<li>username contains invalid characters (lowercase only, must start with a letter).</li>\n";
if (posix_getpwnam($name) || forbidden_name($name))
$message .= "<li>sorry, the username $name is unavailable</li>\n";
}
// Check the e-mail address.
$email = trim($_REQUEST["email"]);
@ -82,28 +135,50 @@ if (isset($_REQUEST["username"]) && isset($_REQUEST["email"])) {
$message .= "<li>invalid email address: " . htmlspecialchars($result["error"]) . "</li>";
elseif ($result["email"] != $email)
$message .= "<li>invalid email address. did you mean: " . htmlspecialchars($result["email"]) . "</li>";
elseif ($name != "" && forbidden_email($email)) {
$message .= "<li>your email is banned!</li><br />";
add_ban_info($name, $email);
}
}
if ($_REQUEST["sshkey"] == "") {
$message .= "<li>ssh key required: please create one and submit the public key</li>";
if ($_REQUEST["interest"] == "")
$message .= "<li>please explain why you're interested so we can make sure you're a real human being</li>";
$sshkey = trim($_REQUEST["sshkey"]);
if ($sshkey == "" || mb_substr($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>';
else {
if ($name != "" && $email != "") {
if (forbidden_sshkey($sshkey)) {
$message .= "<li>your sshkey is banned!</li>\n";
add_ban_info($name, $email);
}
}
}
if ($message == "") { // no validation errors
// no validation errors
if ($message == "") {
$makeuser = "makeuser {$_REQUEST["username"]} {$_REQUEST["email"]} \"{$sshkey}\"";
$msgbody = "
desired username: {$_REQUEST["username"]}
contact email: {$_REQUEST["email"]}
username: {$_REQUEST["username"]}
email: {$_REQUEST["email"]}
reason: {$_REQUEST["interest"]}
ssh key:
{$_REQUEST["sshkey"]}
sudo makeuser {$_REQUEST["username"]} {$_REQUEST["email"]} \"{$_REQUEST["sshkey"]}\"
$makeuser
";
if (mail('sudoers', 'new tilde.team signup', $msgbody)) {
echo '<div class="alert alert-success" role="alert">
email sent! i\'ll get back to you soon with login instructions! <a href="/">back to tilde.team home</a>
email sent! we\'ll get back to you soon (usually within a day) with login instructions! <a href="/">back to tilde.team home</a>
</div>';
// temp. add to forbidden to prevent double signups (cleanup after user creation)
file_put_contents("/var/signups_current", $name.PHP_EOL, FILE_APPEND);
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
@ -113,10 +188,11 @@ sudo makeuser {$_REQUEST["username"]} {$_REQUEST["email"]} \"{$_REQUEST["sshkey"
} else {
?>
<div class="alert alert-warning" role="alert">
<strong>please correct the following errors: </strong>
<strong>notice: </strong>
<?=$message?>
</div>
<?php
}
}
?>

View File

@ -23,6 +23,12 @@ 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
@ -32,6 +38,19 @@ 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:90px; /* fixed header height*/
margin:-90px 0 0; /* negative fixed header height */
height:50px; /* fixed header height*/
margin:-50px 0 0; /* negative fixed header height */
}
</style>
<meta property='og:type' content='website'>
@ -15,20 +15,7 @@ $additional_head = "
<meta property='og:site_name' content='tilde.team wiki'>
";
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());
$parser = Tildeverse\Wiki\Parser::factory();
if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
@ -57,7 +44,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="?page=<?=basename($page, ".md")?>"><?=$yaml["title"]?></a><br>
<a href="<?=basename($page, ".md")?>"><?=$yaml["title"]?></a><br>
<?php }
} else {
@ -77,7 +64,7 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
<a href=".">&lt; ~wiki</a>
<hr>
<?=str_replace("<table", '<table class="table table-striped"', $pg->getContent())?>
<?=$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,103 +11,49 @@ category:
1. [adding users](#adding-users)
2. [backups](#backups)
3. [bypassing resource limits as services user](#bypassing-resource-limits)
4. [lxd](#lxd)
4. [runaway processes/excessive resource usage](#runaway-processes)
## adding users
> 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
> see the [makeuser](https://tildegit.org/team/makeuser) script's documentation
## backups
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.
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.
to see a list of the backups:
```
sudo tarsnap --list-archives
```
sudo borgmatic list
to see general backup stats:
sudo borgmatic info
to restore a backup:
```
tarsnap -x -f name-of-backup
```
sudo borgmatic extract --archive <archive name> --progress --restore-path=/path/to/restore
we keep backups of:
* `/home`
* `/etc`
* `/var` (excluding `/var/log` and `/var/lib/lxd`)
* 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
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:
@ -120,72 +66,17 @@ Here's how to fix it:
07:12 <~khuxkm> then exit the bash session
## lxd
## runaway processes
this is the process that i use to create lxd containers for users.
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`.
you need two things from the user: an ssh public key (on their ~team shell) and a [distro choice](https://us.images.linuxcontainers.org/)
sudo chsh -s /usr/sbin/nologin <username>
don't forget to kill their existing session with:
1. create the container
```
# debian
lxc launch images:debian/stretch <username>
# ubuntu
lxc launch ubuntu: <username>
```
sudo loginctl terminate-user <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 `http://<user>.bsd.tilde.team` or `https://bsd.tilde.team/~<user>` (note that the ssl cert is only for bsd.tilde.team)
- webhosting out of `~/public_html` at `https://<user>.bsd.tilde.team` or `https://bsd.tilde.team/~<user>`
- 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/?page=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/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: https://tilde.team/wiki/?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](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/?page=goals-roadmap)
[full goals/roadmap document](https://tilde.team/wiki/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](?page=tos)
please also see the [terms of service](tos)

View File

@ -12,13 +12,9 @@ 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
* [tild3.org](https://tild3.org/) - alias *note*: this is tentatively planned to be decommissioned
* [tilde.chat](https://tilde.chat/) - irc net
* [tilde.life](http://tilde.life/) - redirect
* [tilde.news](https://tilde.news/) - lobste.rs clone
@ -26,12 +22,13 @@ 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
* [tildeteam.org](https://tildeteam.org/) - alias
* [tildeteam.net](https://tildeteam.net/) - alias
* [tildeteam.org](https://tildeteam.org/) - alias *note*: this is tentatively planned to be decommissioned
* [tildenet.org](http://tildenet.org/) - redirect to tilde.chat
* [tildeverse.net](https://tildeverse.net/) - the tildeverse! (registered due to impending .org price hikes)
* [tildeverse.org](https://tildeverse.org/) - the tildeverse!
aliases can be used as-is, where redirects will simply change to a tilde.team url.

View File

@ -17,21 +17,22 @@ 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](?page=domains))
- email address: username@tilde.team (or any of the aliased [domains](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 and imap. just make sure you have tls selected)
- (any subdomain of tilde.team works for smtp, pop3, 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](?page=domains) with your tildemail:
because [~ben](https://tilde.team/~ben/) hoards domain names, you can use any of the [domains on this list](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 `-` or `+` and arbitrary text behind it will be forwarded to you email: ie. `your_username+somethingcool@tildeteam.org` or `yourusername-notcool@tilde.site`.
additionally, any address with a `+` and arbitrary text behind it will be forwarded to you email: ie. `your_username+somethingcool@tildeteam.org`.
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](?page=cli-for-beginners).
this guide is not very thorough or complete. if you want something nicer, try [our cli for beginners article](cli-for-beginners).
---
@ -30,7 +30,14 @@ New to the command line and all this webby cowfoolery? You're in luck! Here's a
## Logging in
### PC (windows)
### Windows 10
- Launch PowerShell (or press win+x, and click "Windows PowerShell")
- `ssh your_username@tilde.team`
- Enter your ssh key passphrase (if you set one).
### Legacy Windows
- [git bash](https://gitforwindows.org) included with a standard git install
- [msys2](https://msys2.github.io) is quite nice and has support for [mosh](https://mosh.org)
@ -40,13 +47,13 @@ New to the command line and all this webby cowfoolery? You're in luck! Here's a
- Open a terminal. Try ctrl + alt + t.
- `ssh your_username@tilde.team`
- Enter your password.
- Enter your ssh key passphrase (if you set one).
### Mac
### MacOS
- Browse to Applications/Utilities/Terminal and launch Terminal (or press cmd+space, start typing Terminal, and press return)
- `ssh your_username@tilde.team`
- Enter your password.
- Enter your ssh key passphrase (if you set one).
## Finding your index.php file
@ -75,4 +82,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](?page=advanced-ssh) for more information and cool tips :)
see the [advanced ssh key guide](advanced-ssh) for more information and cool tips :)

View File

@ -3,44 +3,55 @@ 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
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)
tilde.team serves user gopherholes from your `~/public_gopher` directory.
if a file called `gophermap` exists in the directory you're currently browsing to in gopher, it will get processed and displayed.
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.
see [this example](https://github.com/prologic/gophernicus/blob/master/README.Gophermap) for more information on file types and special chars.
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.
---
## 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.tilde.team) to browse the gophernet.
otherwise, you can use our [http proxy](https://gopher.tildeverse.org/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,15 +16,66 @@ 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`
* [`znc`](https://znc.tilde.team/) - log in with your shell password and configure as needed
* [`znc`](https://znc.tilde.team/) - contact ben (via irc or email) to request an account,
then log in with your shell password and configure as needed
* run `webirc` to register your thelounge account for [our webchat](https://irc.tilde.team)
note that thelounge does not authenticate with your shell password.
* any other client that you like: connect to our node at team.tilde.chat:6697 with ssl
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,22 +9,38 @@ 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,25 +9,34 @@ 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)
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)
| tilde name | description | where to join | notes |
|---|---|---|---|
| [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.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 |
| [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/) | |
| --- | --- | --- | ---|
| [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) | |
| [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) | |
| [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) | |
| [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) | |
| [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. | |
| [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) | |
| [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) | |
| [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/) |

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.tilde.team)
- [forum](https://forum.tilde.team) ([source](https://tildegit.org/team/forum)) - mostly defunct in favor of [bbj](https://bbj.tildeverse.org)
### 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/?page=servers)
- we host one node of the [network](https://tilde.chat/wiki/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](?page=email) ([webmail](https://mail.tilde.team), smtp/imap, mutt, and alpine)
- [email](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/team/bbj) ([web mirror here](https://bbj.tilde.team)) - forked from [desvox/bbj](https://github.com/bbj-dev/bbj)
- [bbj](https://tildegit.org/bbj/bbj) ([web mirror here](https://bbj.tildeverse.org)) - 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,7 +13,10 @@ _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
@ -30,38 +33,75 @@ ssh -p 443 user@ssh.tilde.team
ssh user@tilde.team # this uses port 22, which can be blocked on some networks
```
tilde.team's ECDSA key fingerprint is SHA256:R3qNfKIF3IiXhKCbFX6rCKl73yzexi9Wodsow6XFres.
the key fingerprints are in dns as sshfp records as well, which you can check against
by setting VerifyHostKeyDNS to yes in your `~/.ssh/config`.
you can check the records yourself with the `dig` tool like this:
dig sshfp tilde.team
---
## 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 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.
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.
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)]
@ -93,11 +133,14 @@ 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
@ -117,13 +160,64 @@ where username is your username (~ben would use `ssh ben@tilde.team`)
---
### windows
### windows 10
there are a couple options for using ssh on windows these days. i like to use [git bash](https://git-scm.com).
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).
#### generating your keypair
choose from any of the following options:
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:
- [windows subsystem for linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
- [msys2](http://www.msys2.org/)
@ -151,17 +245,20 @@ 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 (it's in `/Applications/Utilities`)
1. open terminal (location will vary depending on your choice)
1. `ssh` to tilde.team:
@ -177,7 +274,8 @@ 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
@ -201,11 +299,14 @@ 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,8 +14,7 @@ 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/team/bbj) and [github fork](https://github.com/tilde-team/bbj)
- `talk` - old school chat utility (`man talk` for more info)
- source here: [gitea mirror](https://tildegit.org/bbj/bbj) and [github fork](https://github.com/bbj-dev/bbj)
- `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)
@ -23,7 +22,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](?page=tildeblogs)
- `bb` - [bashblog tool](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,42 +2,70 @@
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/?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.
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.
## 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/?page=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/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,7 +13,8 @@ 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)
---
@ -32,7 +33,8 @@ change to your ~/public_html/blog directory: `cd ~/public_html/blog` (bashblog w
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,9 +10,10 @@ 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](?page=domains).
see also the [master list of domains](domains).
* fuckup.club
* nand.sh
@ -22,11 +23,65 @@ see also the [master list of domains](?page=domains).
* tilde.ninja
* tilde.site
* tilde.team
* tildeteam.net
* 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,9 +9,11 @@ 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.hetzner.com/rechtliches/root-server/)
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/)
here are some things that we don't allow:
@ -30,7 +32,14 @@ here are some things that we don't allow:
outgoing net- and portscanning is prohibited on tilde.team.
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.
> 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.
i've added firewall rule to prevent outgoing requests to these subnets:

View File

@ -1,22 +1,20 @@
---
author: ~ben
published: true
title: tilde.team blogging platform
description: a cli blogging platform that can publish to your tilde page and your gopherhol
category:
- main
title: feels - tilde.team blogging platform
description: a cli blogging platform that can publish to your tilde page and your gopherhole
category:
- main
---
*a command-line based blogging platform running on tilde.team*
# FEELS MANUAL
`ttbp` stands for "tilde.town blogging platform", the original working name for
this project.
`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 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` was originally written for [tilde.town](https://tilde.town/~endorphant/ttbp/)
with sources available on [github](https://github.com/modgethanc/ttbp).
`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
@ -24,36 +22,21 @@ 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/?page=code-of-conduct). content/personal issues should be
conduct](http://tilde.team/wiki/code-of-conduct). content/personal issues should be
worked out according to the CoC, with support from the [administrative
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!
team](https://tilde.team/wiki/code-of-conduct#9--contact-info) if needed.
### support
if you're having trouble getting started, or run into program errors or strange
behavior, please send internal tilde.team mail to sudoers@tilde.team and i'll try to
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
sort things out!
there's also a function from the main menu that lets you send feedback/inquiries
to me directly; this uses internal tilde.team mail, which is what i'll respond
to.
to us directly
### writing entries
@ -82,8 +65,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
@ -118,8 +101,7 @@ 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. your blog will also be listed on the [main ttbp
page](https://tilde.town/~endorphant/ttbp).
with your chosen blog directory.
you can also opt to publish to gopher, and the program will automatically
generate a gophermap of your feels.
@ -223,35 +205,3 @@ 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,34 +13,35 @@ 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/
```
1. create a basic service. save something like this in ~/.config/systemd/user/my-new-service.service (adjusting where necessary)
```bash
[Unit]
Description=foo
mkdir -p ~/.config/systemd/user/
[Service]
ExecStart=/bin/bash -c "while true do; echo hi; done"
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)
[Install]
WantedBy=default.target
```
[Unit]
Description=foo
[Service]
ExecStart=/bin/bash -c "while true do; echo hi; done"
[Install]
WantedBy=default.target
1. enable it
```bash
systemctl --user enable --now my-new-service.service
```
systemctl --user enable --now my-new-service.service
1. enable-linger for your user account
```bash
loginctl enable-linger
```
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)