diff --git a/Telodendria.html b/Telodendria.html index 6522e97..1d3ab5f 100644 --- a/Telodendria.html +++ b/Telodendria.html @@ -44,8 +44,9 @@ Is written with minimalism as a primary design goal. Whenever possible and practical, no third-party libraries are pulled in to the source code. Everything Telodendria needs is custom written. As a result, Telodendria depends only on a standard C compiler and -library to be built, and only a web server with CGI capabilities to -run. +POSIX C library to be built, both of which are built in to a good +Unix-style operating system already, which means you shouldn't have +to install anything extra.
@@ -134,6 +134,7 @@ Submit code patches to the Telodendria project.
-This section explains
+I want a lightweight Matrix homeserver designed specifically for
+OpenBSD and other Unix-like operating systems. I want a homeserver
+that can be developed in vi(1)
and compiled with the
+built-in C compiler. I want it to function entirely on a base OS
+install without having to install any extra packages whatsoever.
+I've found that as far as these priorities are concerned, the
+existing homeserver implementations fall tremendously short. This
+project aims to point out that existing homeserver implementations
+are way over-engineered and written in such a way that many programs
+and libraries have to be pulled in to use them.
-I want a lightweight Matrix homeserver designed for OpenBSD. I want a
-homeserver that can be developed in vi(1)
and compiled
-with a C compiler. I want it to function entirely on a base OpenBSD
-install without having to install any extra packages whatsoever. I've
-found that the existing homeserver implementations are way
-over-engineered and written in such a way that many programs and
-libraries have to be pulled in to use them. I also want to learn how
-Matrix works, and I want to understand the code I'm running on my
-server.
+I also want to learn how Matrix works, and I want to understand the
+code I'm running on my server, which is why I'm writing every
+component from scratch, even the HTTP server.
-So I wrote Telodendria. -
-
-Telodendria is written entirely in portable ANSI C. It depends on no
-third-party C libraries other than the standard C library. The only
-thing you need to run it is a web server that supports executing CGI
-programs, and a directory that data can be written to. Everything
-Telodendria needs to run itself is compiled into a single static
-binary, and the source code can be built anywhere, right out of the
-box.
+Telodendria is written entirely in portable ANSI C. It depends on
+no third-party C libraries other than the standard POSIX C library.
+The only thing you need to run it is a reverse proxy with HTTPS support,
+such as relayd(8)
, and a directory that data can be
+written to. Everything Telodendria needs to run itself is compiled
+into a single static binary, and the source code can be built
+anywhere, right out of the box. This makes it suitable for running
+in a chroot(8)
environment.
Telodendria doesn't use a database like all the other homeservers. Instead, it operates more like email: it uses a flat-file data -structure similar to maildir to store data. The advantage of this is +structure similar to Maildir to store data. The advantage of this is that it saves server maintainers from also having to maintain a database. It greatly simplifies the process of getting a Matrix homeserver up and running, and it makes it highly portable. It also is @@ -385,14 +388,7 @@ extremely easy to back up and restore with base tools; just
Telodendria is developed and tested on OpenBSD, but you'll find that it -should run under any web server that supports CGI. I chose to write -Telodendria as a CGI program because anyone running an existing Matrix -server is likely running a web server acting as a reverse proxy in -front of it anyway, so why not just hook the homeserver directly into -the web server? That's one less daemon to run, which means memory and -CPU savings. CGI also allows Telodendria to remain single-threaded. -Each request that comes in is handled as its own process, and -operations are entirely isolated. +should just run on any POSIX operating system without modification.
@@ -415,7 +411,7 @@ the dependency on a Markdown parser and renderer.