123 lines
7.1 KiB
HTML
123 lines
7.1 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="color-scheme" content="light dark">
|
|
<link rel="stylesheet" href="css/pico.jade.min.css">
|
|
<link rel="stylesheet" href="site-styles/style.css">
|
|
<title>Keyboard Vagabond - About</title>
|
|
</head>
|
|
<body>
|
|
<header class="container">
|
|
<nav>
|
|
<!-- Desktop Navigation -->
|
|
<ul class="desktop-nav">
|
|
<li><a target="_blank" href="https://mastodon.keyboardvagabond.com/public">Mastodon</a></li>
|
|
<li><a target="_blank" href="https://piefed.keyboardvagabond.com">Piefed</a></li>
|
|
<li><a target="_blank" href="https://pixelfed.keyboardvagabond.com">Pixelfed</a></li>
|
|
<li><a target="_blank" href="https://bookwyrm.keyboardvagabond.com">Bookwyrm</a></li>
|
|
<li><a target="_blank" href="https://blog.keyboardvagabond.com">Write Freely</a></li>
|
|
<li><a target="_blank" href="https://picsur.keyboardvagabond.com">Picsur</a></li>
|
|
</ul>
|
|
|
|
<!-- Mobile Navigation -->
|
|
<ul class="mobile-nav">
|
|
<li>
|
|
<details class="dropdown">
|
|
<summary role="button" class="secondary">Sites</summary>
|
|
<ul>
|
|
<li><a target="_blank" href="https://mastodon.keyboardvagabond.com/public">Mastodon</a></li>
|
|
<li><a target="_blank" href="https://piefed.keyboardvagabond.com">Piefed</a></li>
|
|
<li><a target="_blank" href="https://pixelfed.keyboardvagabond.com">Pixelfed</a></li>
|
|
<li><a target="_blank" href="https://bookwyrm.keyboardvagabond.com">Bookwyrm</a></li>
|
|
<li><a target="_blank" href="https://blog.keyboardvagabond.com">Write Freely</a></li>
|
|
<li><a target="_blank" href="https://picsur.keyboardvagabond.com">Picsur</a></li>
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li><a href="index.html">Home</a></li>
|
|
<li>
|
|
<button id="theme-toggle" class="outline secondary" role="switch" aria-label="Toggle theme">
|
|
<span id="theme-icon">🌙</span>
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</header>
|
|
|
|
|
|
<main class="container">
|
|
<h1>About Keyboard Vagabond</h1>
|
|
<p>Keyboard Vagabond is a place where nomads, travelers, backpackers, whoever, can come together in a digital space that is free of advertising and the attention economy to share information and experiences. It is a place of mutual respect, courtesy, and understanding not just for the members who join, but also for those people and places we encounter on our journeys.</p>
|
|
|
|
<h4>Why Keyboard Vagabond</h4>
|
|
<p>Keyboard Vagabond was made because I saw multiple instances of people saying that, while there are travel communities on different instances, there was not a space specifically for nomads, so I thought I would make it.</p>
|
|
|
|
<h2>What to expect and commitments</h2>
|
|
<p><strong>Moderation style</strong> -
|
|
An online community of respect and courtesy that is simultaneously light on moderation and banning, yet firm on not tolerating bigotry, hatred, etc. Be kind and we'll all have a good time.</p>
|
|
<p><strong>Sign ups</strong> -
|
|
Sign ups require manual approval to prevent spam.</p>
|
|
<p><strong>Data protection</strong> -
|
|
Your data is yours and you can download it at any time through the apps.
|
|
The servers are run in a cluster with data redundancy across nodes + nightly and weekly backups to offline storage.</p>
|
|
<p><strong>Should shutdown happen</strong> -
|
|
There will be a 3 month announcement in advance, in accordance with the <a href="https://joinmastodon.org/covenant" rel="nofollow" target="_blank">Mastodon Server Covenant</a>.</p>
|
|
<p><strong>Funding</strong> -
|
|
Keyboard Mastodon is currently funded by the admin, for a cost of ~$40 - $45 per month. Donations may be opened in the future, but have not been set up at this time.</p>
|
|
|
|
<section>
|
|
<h2>The Dirty Technicals</h2>
|
|
<p>If you're not a mega-nerd, turn back now.</p>
|
|
<p>I warned you.</p>
|
|
<p>Keyboard Vagabond is run on a 3 node Kubernetes cluster running on 3x Arm VPSs hosted by NetCup in Amsterdam. I chose Amsterdam because I thought that Europe would be more centrally located for people who are traveling the world.</p>
|
|
</section>
|
|
<section>
|
|
<h4>The Specs</h4>
|
|
<dl>
|
|
<dt><strong>Servers</strong></dt>
|
|
<dd>3x 10 ARM vCPUs, 16GB Ram, 500GB (~50GB for Talos and the rest for Longhorn) storage running <a href="https://www.talos.dev" rel="nofollow">Talos</a> and Kubernetespan.</dd>
|
|
<dt><strong>Storage</strong></dt>
|
|
<dd>Longhorn ensures that there are at least 2 copies across the nodes.</dd>
|
|
<dt><strong>Backups and Content</strong></dt>
|
|
<dd>Stored in S3 storage hosted by BackBlaze with CloudFlare providing CDN. I've already run through disaster recovery and restored database backups from S3.</dd>
|
|
<dt><strong>CDN</strong></dt>
|
|
<dd>CloudFlare provides CDN and special rules have been set up to be sure that as much as possible is cached.</dd>
|
|
<dt><strong>Security</strong></dt>
|
|
<dd>Ports are closed off to the world and secured with CloudFlare tunnels and secure VPN as the only means of access outside of website access.</dd>
|
|
<dt><strong>Observability and Logging</strong></dt>
|
|
<dd>OpenObserve dashboards and log aggregation.</dd>
|
|
<dt><strong>Domain</strong></dt>
|
|
<dd>Domain is provided by CloudFlare</dd>
|
|
<dt><strong>Services</strong></dt>
|
|
<dd>Typical arrangement for services is that web services get 2 instances and workers get 1 instance with autoscaling. Web pods scale horizontally and workers scale vertically, then horizontally.</dd>
|
|
<dt><strong>Source Code</strong></dt>
|
|
<dd>If I get the source code to where I'm comfortable sharing, I'll post a link here. And if you're experienced in k8s, I'd always appreciate a review. :)</dd>
|
|
</dl>
|
|
</section>
|
|
|
|
<p>
|
|
<span><strong>Costs</strong></span><br />
|
|
|
|
<span>
|
|
VPS servers - 3x ~$13 / mth = $40/mth<br />
|
|
Domain name - $12/year<br />
|
|
Backblaze - $6/TB/mth = ~$2/mth<br />
|
|
Total: ~$45/mth
|
|
</span>
|
|
</p>
|
|
</main>
|
|
|
|
<footer class="container">
|
|
<p>
|
|
<span>Contact: <a href="mailto:admin@mail.keyboardvagabond.com">admin@mail.keyboardvagabond.com</a>, any of the @sysadmin accounts on the instances</span></br>
|
|
<span>Copyright 2025 Keyboard Vagabond</span>
|
|
</p>
|
|
</footer>
|
|
|
|
<script src="scripts/bundle.js"></script>
|
|
</body>
|
|
</html> |