path: root/README
diff options
authorthe xhr <>2021-08-24 21:22:29 +0200
committerthe xhr <>2021-08-24 21:22:29 +0200
commitf224a3fe688bf2ae4c108d6b4359df4d8f03db99 (patch)
tree1d9d6fdce5671be7ae5754f51c6ef5b47bf7f0c1 /README
parent0f9f2d04f9c340c761a9c900fac1c225b5a05419 (diff)
Initial commit of twind - a small and simple gemini daemon
Diffstat (limited to 'README')
1 files changed, 64 insertions, 0 deletions
diff --git a/README b/README
index e69de29..423f4ba 100644
--- a/README
+++ b/README
@@ -0,0 +1,64 @@
+twind is a simple daemon serving static files over the gemini protocol. It is
+intended to have as few knobs as possible and has no support for a
+configuration file.
+twind is written in plain C and you need to have the following software
+* A C compiler (tested with clang and GCC)
+* LibreSSL or OpenSSL
+* POSIX compatible libc with pthreads support
+* make (both BSD and GNU make will work)
+twind needs a dedicated user called '_twind' and directory to run. The
+Makefile contains a command to create the user. Note that you shall not change
+the user's name and the directory twind needs!
+$ make
+# make install
+# make user
+TLS certificates
+twind expects to find a X509 certificate and a corresponding private key
+under the following locations (which cannot be changed):
+* /etc/twind/twind.cert.pem
+* /etc/twind/twind.key.pem
+Either copy your existing keys to these locations or generate a new key and
+certificate via the Makefile. Note that the command overwrites any existing
+key without warning! To generate both key and certificate use the following
+command and provide the hostname via the HN variable. If you don't provide the
+hostname the command will fail!
+# make setuptls
+twind has support for virtual hosts. If your gemini server is called you have to create a dedicated sub directory under /var/twind:
+# cd /var/twind
+# mkdir
+# <copy files into the directory>
+In case your server is also reachable via and you want to
+serve the same content as on you can create a symlink. In case you
+want to serve different content, you have to create a dedicated sub directory.
+twind needs root permissions to start and will drop its privileges as soon as
+possible. It will also chroot to /var/twind.
+# twind
+For debugging purposes, you can start twind with -df option so that debugging
+and running in the foreground is enabled.
generated by cgit on OpenBSD