This commit is contained in:
Ben Harris 2017-09-13 11:22:06 -04:00
commit 7d1c04132f
33 changed files with 1485 additions and 0 deletions

BIN
android-icon-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
android-icon-192x192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
android-icon-36x36.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
android-icon-48x48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
android-icon-72x72.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
android-icon-96x96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
apple-icon-114x114.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
apple-icon-120x120.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
apple-icon-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
apple-icon-152x152.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
apple-icon-180x180.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
apple-icon-57x57.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
apple-icon-60x60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
apple-icon-72x72.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
apple-icon-76x76.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
apple-icon-precomposed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
apple-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

2
browserconfig.xml Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

966
css/hacker.css Normal file

File diff suppressed because one or more lines are too long

95
faq/index.html Normal file
View File

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>faq ~ tilde.team</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="tilde.team unix group">
<meta name="author" content="Ben Harris">
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#00cc00">
<link rel="stylesheet" href="/css/hacker.css">
</head>
<body>
<div class="container">
<h1>
tilde.team faq
<div class="pull-right">
<small><a href="/">back to home</a></small>
</div>
</h1>
<hr>
<div class="list-group">
<a href="/gettingstarted" class="list-group-item">
<h2 class="list-group-item-heading">getting started</h2>
<p class="list-group-item-text">
<p>check out this primer if you aren't familiar with linux and unix!</p>
</p>
</a>
</div>
<div class="list-group">
<a href="https://support.google.com/domains/answer/3251241?hl=en" class="list-group-item">
<h2 class="list-group-item-heading">send mail as</h2>
<p class="list-group-item-text">
check here if you want to send mail as user@tilde.team. see the section for "sending mail from your forwarded email address".
</p>
</a>
</div>
<div class="list-group">
<a href="https://github.com/cfenollosa/bashblog" class="list-group-item">
<h2 class="list-group-item-heading">tildeblogs</h2>
<p class="list-group-item-text">
<p>tildeblogs are built with bashblog</p>
<p>change to your ~/public_html/blog directory.</p>
<p>type <code>bb post</code></p>
<p>write a post</p>
<p>edit the ~/public_html/blog/.config file to change the name and url and other settings for your blog</p>
</p>
</a>
</div>
<div class="list-group">
<div href="" class="list-group-item">
<h2 class="list-group-item-heading">other help</h2>
<p class="list-group-item-text">
<p>let me know if you have any other questions.</p>
<p><a href="mailto:ben@tilde.team">email me</a></p>
<p><a href="https://t.me/bharris">message me</a></p>
</p>
</div>
</div>
</div>
</body>
</html>

BIN
favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

BIN
favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
favicon-96x96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

135
gettingstarted/index.html Normal file
View File

@ -0,0 +1,135 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Getting Started | tilde.team</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="tilde.team unix group">
<meta name="author" content="Ben Harris">
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#111111">
<link rel="stylesheet" href="/css/hacker.css">
</head>
<body>
<div class="container">
<h1>~~~How to ~tilde; a n00b's primer~~~~</h1>
<h2>Welcome</h2>
<p>New to the command line and all this webby cowfoolery? You're in luck! Here's a basic HELLO WORLD tutorial.</p>
<ol class="menu">
<li><a href="#login">Logging in</a></li>
<li><a href="#browse">Finding your index.html file</a></li>
<li><a href="#edit">Editing your index.html file</a></li>
<li><a href="#refresh">Refreshing your editor view (when chat interrupts)</a></li>
<li><a href="#more">How to be l33t</a></li>
</ol>
<h2 id="login">Logging in</h2>
<pre>
_______________________________________
/ WELCOME TO TILDE.TEAM A PLACE FOR WEB \
\ PAGES /
---------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
</pre>
<p>* On a PC, you'll need to get an ssh client. <a href="http://www.putty.org/" target="_blank">PuTTY</a> is a good one.</p>
<p>Linux</p>
<ol>
<li>Open a terminal. Try <kbd>ctrl + alt + t</kbd>.</li>
<li><pre>ssh your_username@tilde.team</pre></li>
<li>Enter your password.</li>
</ol>
<p>Mac</p>
<ol>
<li>Browse to <code>Applications/Utilities/Terminal</code> and launch Terminal (or press cmd+space, start typing Terminal, and press return)</li>
<li><pre>ssh your_username@tilde.team</pre></li>
<li>Enter your password.</li>
</ol>
<h2 id="browse">Finding your index.html file</h2>
<p>There are some basic command line commands you'll want to Google and learn, but for this tutorial you only need a few:</p>
<ul>
<li><code>ls</code> = list files and folders in current directory</li>
<li><code>cd</code> = change directories</li>
<li><code>nano</code> = a command line text editor</li>
</ul>
<ol>
<li>Type: <code>ls</code> to see where you are. You should see a directory called "public_html"</li>
<li>Type: <code>cd public_html</code> to move into that folder. (<code>cd</code> stands for <code>c</code>hange <code>d</code>irectory.)</li>
<li>Type: <code>ls</code> to see where you are. You should see your index.html file</li>
</ol>
<h2 id="edit">Editing your index.html file</h2>
<ol>
<li>Type: <code>nano index.html</code> to open your index.html file and begin editing</li>
<li>Edit your file, willy nilly</li>
<li>When done editing, use <kbd>ctrl + x</kbd> to close the file</li>
<li>You'll be asked if you want to save; say <kbd>y</kbd> and to return to the command line</li>
<li>Refresh your tilde page in your browser to see your new website</li>
</ol>
<p>Note: If at any time you feel you made a mistake in editing, you can exit and <kbd>n</kbd> to not save.</p>
<h2 id="refresh">Refreshing your editor view (when chat interrupts)</h2>
<p>You may have been caught off guard while editing and had some random chat messages muss up your view. It didn't actually edit your HTML page but you need to refresh your editor view.</p>
<h2 id="more">How to be l33t (from our friends over at <a href="http://tilde.club">tilde.club</a>)</h2>
<p>Now that you've made it this far, the community has been busy compiling additional resources for you to experiment with.</p>
<p>There are TONS of resources elsewhere on the internet. Use your favorite search engine to find out more.</p>
<ul>
<li>~pfhawkins // <a href="http://tilde.club/~pfhawkins/tipsntricks.html">Tips &amp; Tricks (a more complete listing)</a></li>
<li>~proclad // <a href="http://tilde.club/~procload/">More command line tricks (intermediate)</a></li>
<li>~jeffbonhag // <a href="http://tilde.club/~jeffbonhag/sshfs.txt">How to mount your tilde as a drive (intermediate)</a></li>
<li>~jonathan // <a href="http://tilde.club/~jonathan/screen/">How to use GNU Screen (intermediate to advanced)</a></li>
</ul>
</div>
</body>
</html>

86
index.php Normal file
View File

@ -0,0 +1,86 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="tilde.team unix group">
<meta name="author" content="Ben Harris">
<title>tilde.team</title>
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#00cc00">
<link rel="stylesheet" href="/css/hacker.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css">
</head>
<body>
<div class="container">
<h1>~~~tilde.team~~~</h1>
<pre style="background-color:#333;">
__ _ __ __ __
/ /_(_) /___/ /__ / /____ ____ _____ ___
/ __/ / / __ / _ \ / __/ _ \/ __ `/ __ `__ \
/ /_/ / / /_/ / __// /_/ __/ /_/ / / / / / /
\__/_/_/\__,_/\___(_)__/\___/\__,_/_/ /_/ /_/
</pre>
<br>
<p>tilde.team is one tiny standard unix computer in the cloud that anyone can use and learn to use in the shared pursuit of cool sites and unix tools.</p>
<p>i created this site 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. see <a href="/~ben">my tilde page</a> or my <a href="https://benharr.is">personal site</a> for more info about me.</p>
<br>
<a href="/signup" class="btn btn-primary btn-lg"><i class="fa fa-user-plus"></i> signup</a>
<a href="/faq" class="btn btn-warning btn-lg"><i class="fa fa-info"></i> faq</a>
<br>
<br>
<hr>
<h1>other tilde services</h1>
<a class="btn btn-info" href="https://cloud.tilde.team"><i class="fa fa-cloud"></i> tilde~cloud</a>
<a class="btn btn-info" href="https://bhh.sh"><i class="fa fa-link"></i> url shortener</a>
<a class="btn btn-info" href="https://bag.tilde.team"><i class="fa fa-shopping-bag"></i> tilde~wallabag read it later</a>
<a class="btn btn-info" href="https://paste.tilde.team"><i class="fa fa-clipboard"></i> tilde~pastebin</a>
<a class="btn btn-info" href="https://drop.tilde.team"><i class="fa fa-file"></i> tilde~filedrop</a>
<br>
<hr>
<h1>users:</h1>
<?php foreach (array_diff(scandir("/home"), ['..', '.']) as $user): ?>
<div class="list-group">
<a href="/~<?=$user?>" class="list-group-item">
<h4 class="list-group-item-heading">~<?=$user?></h4>
</a>
</div>
<?php endforeach; ?>
<hr>
</div>
<br>
<br>
</body>
</html>

8
js/vue.min.js vendored Normal file

File diff suppressed because one or more lines are too long

41
manifest.json Normal file
View File

@ -0,0 +1,41 @@
{
"name": "App",
"icons": [
{
"src": "\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

BIN
ms-icon-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
ms-icon-150x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
ms-icon-310x310.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
ms-icon-70x70.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

152
signup/index.php Normal file
View File

@ -0,0 +1,152 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="tilde.team unix group">
<meta name="author" content="Ben Harris">
<title>signup~tilde.team</title>
<meta name="theme-color" content="#00cc00">
<script src="/js/vue.min.js"></script>
<link rel="stylesheet" href="https://tilde.team/css/hacker.css">
</head>
<body>
<div class="container" id="app">
<h1>
tilde.team signup
<div class="pull-right">
<small><a href="/">&lt; back</a></small>
</div>
</h1>
<h3>so you wanna join the tilde.team?</h3>
<p>hi there. fill out this form and i'll get back to you with your account info.</p>
<hr>
<form method="post">
<?php
if ($_SERVER["SERVER_NAME"] != "localhost") {
require_once "/home/ben/ultimate-email/support/smtp.php";
}
$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-z_][a-z0-9_]{0,30})/", $name) == 1) {
echo '';
} else {
$message .= "<li>username contains invalid characters (lowercase only)</li>";
}
if (posix_getpwnam($name)) {
$message .= "<li>sorry, the username $name is unavailable</li>";
}
// Check the e-mail address.
$email = trim($_REQUEST["email"]);
if ($email == "") {
$message .= "<li>please fill in your email address</li>";
} else {
$result = SMTP::MakeValidEmailAddress($_REQUEST["email"]);
if (!$result["success"]) {
$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>";
}
}
if ($message == "") {
$headers = "From: {$_REQUEST["username"]} <{$_REQUEST["email"]}>\n";
$headers .= "Sender: www-data@tilde.team\n";
$headers .= "To: admin@tilde.team\n";
$headers .= "Reply-To: {$_REQUEST["email"]}\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$forwardmail = $_REQUEST["forward_email"] == "on" ? '<a href="https://domains.google.com/registrar#z=e&d=3471834,tilde.team&chp=z,d">yes</a>' : "no";
$msgbody = "<h1>New tilde.team signup</h1>
<hr>
Desired username: <strong>{$_REQUEST["username"]}</strong><br>
Contact email: <strong><a href=\"mailto:{$_REQUEST["email"]}\">{$_REQUEST["email"]}</a></strong><br>
Reason: <strong>{$_REQUEST["interest"]}</strong><br>
Forward mail?: <strong>$forwardmail</strong><br>
SSH Key: <pre>{$_REQUEST["sshkey"]}</pre>";
if (mail('bharrismac@gmail.com', 'tilde.team signup', $msgbody, $headers)) {
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>
</div>';
} else {
echo "The email has failed!";
}
} else {
?>
<div class="alert alert-warning" role="alert">
<strong>please correct the following errors: </strong>
<?=$message?>
</div>
<?php
}
}
?>
<div class="form-group">
<label>your desired username (numbers and letters only, no spaces)</label>
<input v-model="username" class="form-control" name="username" value="<?=$_REQUEST["username"] ?? ""?>" type="text" required>
</div>
<div class="form-group">
<label>email to contact you with account info</label>
<input v-model="email" class="form-control" name="email" value="<?=$_REQUEST["email"] ?? ""?>" type="text" required>
<div class="checkbox">
<label>
<input type="checkbox" <?=isset($_REQUEST["forward_email"]) && $_REQUEST["forward_email"] == "on" ? 'checked="checked"' : ""?> name="forward_email">
forward mail sent to {{ username || 'username' }}@tilde.team to {{ email || 'this address' }}?
</label>
</div>
</div>
<div class="form-group">
<label>what interests you about tilde.team?</label>
<textarea class="form-control" name="interest" id="" cols="30" rows="10"><?=$_REQUEST["interest"] ?? ""?></textarea>
</div>
<div class="form-group">
<label>SSH public key (optional)</label>
<textarea class="form-control" name="sshkey" id="" cols="30" rows="10"><?=$_REQUEST["sshkey"] ?? ""?></textarea>
</div>
<button class="btn btn-primary" type="submit">submit</button>
</form>
<br>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
username: '',
email: ''
}
})
</script>
</body>
</html>