Merge branch 'main' of gitlab.com:bashrc2/epicyon

merge-requests/30/head
Bob Mottram 2022-10-24 12:11:07 +01:00
commit 4a5f870c2c
4 changed files with 72 additions and 14 deletions

Binary file not shown.

View File

@ -1,4 +1,33 @@
<h1 id="table-of-contents">Table of Contents</h1>
<ol type="1">
<li><a href="#introduction">Introduction</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#upgrading">Upgrading</a></li>
<li><a href="#housekeeping">Housekeeping</a></li>
<li><a href="#registering-accounts">Registering accounts</a></li>
<li><a href="#the-importance-of-good-defaults">The importance of good
defaults</a></li>
<li><a href="#logging-in">Logging in</a></li>
<li><a href="#account-profiles">Account Profiles</a></li>
<li><a href="#following">Following</a></li>
<li><a href="#creating-posts">Creating posts</a></li>
<li><a href="#the-timeline">The Timeline</a></li>
<li><a href="#calendar">Calendar</a></li>
<li><a href="#side-columns">Side columns</a></li>
<li><a href="#media-timeline">Media timeline</a></li>
<li><a href="#moderation">Moderation</a></li>
<li><a href="#themes">Themes</a></li>
<li><a href="#sharing-economy">Sharing economy</a></li>
<li><a href="#search">Search</a></li>
<li><a href="#browsing-in-a-command-shell">Browsing in a command
shell</a></li>
<li><a href="#building-fediverse-communities">Building fediverse
communities</a></li>
</ol>
<h1 id="introduction">Introduction</h1>
<p><em>“Every new beginning comes from some other beginnings
end.”</em></p>
<p> Seneca</p>
<p><em>The fediverse</em> is a set of federated servers, typically using
a communication protocol called <a
href="https://www.w3.org/TR/activitypub">ActivityPub</a> which was
@ -28,20 +57,23 @@ a single user or a small number of users (less than ten) running from
your home location or on a modest VPS and where maintenance is extremely
trivial such that its possible to keep an instance running for long
durations with minimal intervention.</p>
<p>Epicyon is part of the “small web” category of internet software, in
that it is intended to scale via federation rather than to scale
vertically via resource intensive and expensive hardware. Think many
small communicating nodes rather than a small number of large servers.
Also, in spite of the prevailing great obsession with scale, not
everything needs to. You can federate with a small number of servers for
a particular purpose - such as running a club or hackspace - and thats
ok.</p>
<p>Epicyon is part of the <a
href="https://neustadt.fr/essays/the-small-web">small web</a> category
of internet software, in that it is intended to scale via federation
rather than to scale vertically via resource intensive and expensive
hardware. Think many small communicating nodes rather than a small
number of large servers. Also, in spite of the prevailing great
obsession with scale, not everything needs to. You can federate with a
small number of servers for a particular purpose - such as running a
club or hackspace - and thats ok.</p>
<p>It is hardly possible to visit many sites on the web without your
browser loading and running a large amount of javascript. Epicyon takes
a minimalist approach where its web interface only uses HTML and CSS.
You can disable javascript, or use a browser which doesnt have
javascript capability, and the user experience is unchanged. Lack of
javascript also rules out a large area of potential attack surface.</p>
a minimalist approach where its web interface only uses <a
href="https://html.spec.whatwg.org/multipage">HTML</a> and <a
href="https://www.w3.org/Style/CSS/Overview.en.html">CSS</a>. You can
disable javascript, or use a browser which doesnt have javascript
capability, and the user experience is unchanged. Lack of javascript
also rules out a large area of potential attack surface.</p>
<p>Another common concern is being able to keep instances running.
Instance abandonment creates a lot of disruption, and its often related
to the amount of effort that it takes to keep things going. To avoid the

View File

@ -1,13 +1,39 @@
# Table of Contents
1. [Introduction](#introduction)
2. [Installation](#installation)
3. [Upgrading](#upgrading)
4. [Housekeeping](#housekeeping)
5. [Registering accounts](#registering-accounts)
6. [The importance of good defaults](#the-importance-of-good-defaults)
7. [Logging in](#logging-in)
8. [Account Profiles](#account-profiles)
9. [Following](#following)
10. [Creating posts](#creating-posts)
11. [The Timeline](#the-timeline)
12. [Calendar](#calendar)
13. [Side columns](#side-columns)
14. [Media timeline](#media-timeline)
15. [Moderation](#moderation)
16. [Themes](#themes)
17. [Sharing economy](#sharing-economy)
18. [Search](#search)
19. [Browsing in a command shell](#browsing-in-a-command-shell)
20. [Building fediverse communities](#building-fediverse-communities)
# Introduction
*"Every new beginning comes from some other beginnings end."*
-- Seneca
*The fediverse* is a set of federated servers, typically using a communication protocol called [ActivityPub](https://www.w3.org/TR/activitypub) which was devised by the [social working group](https://www.w3.org/wiki/Socialwg) within the World Wide Web Consortium (W3C). At present it is mostly used for [microblogging](https://en.wikipedia.org/wiki/Microblogging), although ActivityPub is sufficiently general that it can also be used for a variety of other purposes.
The word *fediverse* (federated universe) appears to have originated around 2012 as the first [identi.ca](https://en.wikipedia.org/wiki/Identi.ca) website was ending and the [pump.io](https://en.wikipedia.org/wiki/Pump.io) project was beginning. The ActivityPub protocol was initially called *ActivityPump*, due to the influence which pump.io had upon its creation. Fediverse servers are typically referred to as "instances".
Servers such as [Mastodon](https://github.com/mastodon/mastodon) are well known, but these are aimed at large scale deployments on powerful hardware running within data centers, making use of content distribution networks (CDN) and due to their large number of dependencies requiring someone with a high level of systems administration skill to maintain. Epicyon is designed for the opposite situation where it is only intended to have a single user or a small number of users (less than ten) running from your home location or on a modest VPS and where maintenance is extremely trivial such that it's possible to keep an instance running for long durations with minimal intervention.
Epicyon is part of the "small web" category of internet software, in that it is intended to scale via federation rather than to scale vertically via resource intensive and expensive hardware. Think many small communicating nodes rather than a small number of large servers. Also, in spite of the prevailing great obsession with scale, not everything needs to. You can federate with a small number of servers for a particular purpose - such as running a club or hackspace - and that's ok.
Epicyon is part of the [small web](https://neustadt.fr/essays/the-small-web) category of internet software, in that it is intended to scale via federation rather than to scale vertically via resource intensive and expensive hardware. Think many small communicating nodes rather than a small number of large servers. Also, in spite of the prevailing great obsession with scale, not everything needs to. You can federate with a small number of servers for a particular purpose - such as running a club or hackspace - and that's ok.
It is hardly possible to visit many sites on the web without your browser loading and running a large amount of javascript. Epicyon takes a minimalist approach where its web interface only uses HTML and CSS. You can disable javascript, or use a browser which doesn't have javascript capability, and the user experience is unchanged. Lack of javascript also rules out a large area of potential attack surface.
It is hardly possible to visit many sites on the web without your browser loading and running a large amount of javascript. Epicyon takes a minimalist approach where its web interface only uses [HTML](https://html.spec.whatwg.org/multipage) and [CSS](https://www.w3.org/Style/CSS/Overview.en.html). You can disable javascript, or use a browser which doesn't have javascript capability, and the user experience is unchanged. Lack of javascript also rules out a large area of potential attack surface.
Another common concern is being able to keep instances running. Instance abandonment creates a lot of disruption, and it's often related to the amount of effort that it takes to keep things going. To avoid the maintenance burden becoming prohibitive, Epicyon is implemented in a simple manner with very few dependencies and no database. All data is just files in a directory, and upgrades are also straightforward. This degree of simplicity runs counter to the current trend within the software industry towards complex frameworks and large scale databases with elaborate and rapidly evolving dependencies.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 24 KiB