Compare commits
76 Commits
offline-da
...
master
Author | SHA1 | Date |
---|---|---|
creme | b0d00c01f6 | |
creme | 58760e50b7 | |
creme | 6b465e8b03 | |
creme | 7988ddb6ae | |
Ben Harris | caf203cafd | |
creme | ad455b69c6 | |
creme | b913bacda9 | |
Ben Harris | 1f4846e02d | |
Anton McClure | bc65648fa3 | |
Anton McClure | bd6e821562 | |
Anton McClure | 183b028998 | |
Ben Harris | f34b57ab35 | |
Ben Harris | e8f1327669 | |
fosslinux | dfa9951410 | |
fosslinux | 8d15d90875 | |
Ben Harris | 75f78aa83c | |
Ben Harris | 89456c7075 | |
Ben Harris | 32fc9e8075 | |
Ben Harris | 5580a71873 | |
Robert Miles | c8b2789567 | |
Anton McClure | e568b7f1b0 | |
Ben Harris | 810a162fae | |
Anton McClure | 675d7567bf | |
Ben Harris | 53bc076da9 | |
Ben Harris | 363fc210ba | |
Ben Harris | c5aea6e866 | |
Em | 5b1cf7b57f | |
Em | c055a1c073 | |
TechEmporium | ead36ac436 | |
Robert Miles | e5556c00b1 | |
Robert Miles | e527ed44f9 | |
Ben Harris | db34c7e33e | |
Ben Harris | d71470fad6 | |
Ben Harris | 3f4af3a548 | |
Ben Harris | d6cb8dcbb4 | |
Ben Harris | 12e9442ff5 | |
James Tomasino | 2f46cc7def | |
Anton McClure | 291eb03c89 | |
best | f704d56ae2 | |
Ben Harris | 41dc87b860 | |
Ben Harris | 4bb4240537 | |
Ben Harris | e6b3e639af | |
Ben Harris | ec713d9136 | |
Ben Harris | 912dc97d04 | |
Ben Harris | 0db8212131 | |
Ben Harris | 0114c1d277 | |
Ben Harris | c9aea76c96 | |
Ben Harris | d54e3d4f7b | |
Ben Harris | ca7e4290d2 | |
Ben Harris | dca4ab41f6 | |
Ben Harris | 76d3b045d6 | |
Ben Harris | a7305c7b28 | |
Ben Harris | 2f736b5677 | |
Ben Harris | 19db11d958 | |
Ben Harris | 443268fd1d | |
Ben Harris | c90e6db194 | |
Ben Harris | d96e48da9b | |
Ben Harris | 756bf4c41d | |
Ben Harris | 03e8309882 | |
Ben Harris | cbbf122342 | |
Ben Harris | da7c536850 | |
Ben Harris | 342649c9d4 | |
Ben Harris | eed32252b2 | |
Ben Harris | 96dcd24231 | |
Ben Harris | 0cbe2a9d1e | |
cmccabe | 7e6afff0ce | |
cmccabe | 1501144646 | |
cmccabe | f43b84f697 | |
Ben Harris | be9e6a7e86 | |
Rob Drake | ab75ac9576 | |
Rob Drake | 8e54c01035 | |
Adam Saponara | c8e11c3f94 | |
Tiwesdaeg Twohands | 02d724c49e | |
Ben Harris | 39fec10dd7 | |
Robert Miles | b5f11a9652 | |
Ben Harris | 71cb8b7988 |
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
```
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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
|
@ -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>. © 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
|
@ -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>. © 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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
<?php
|
||||
header("Location:https://discord.gg/BH4Bs5U");
|
||||
die();
|
||||
|
|
@ -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>
|
||||
—
|
||||
<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>
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
50
index.php
50
index.php
|
@ -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'; ?>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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">
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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!
|
|
@ -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!
|
||||
|
12
services.php
12
services.php
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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=".">< ~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
|
||||
|
|
|
@ -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)
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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`
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 :)
|
||||
|
|
|
@ -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)))
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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/)
|
||||
|
||||
|
|
|
@ -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/) |
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue