Commit Briefs

the xhr

Also free memory for decoded request here (master)



the xhr

Move fds around, again



the xhr

forget to unveil() log path


the xhr

Merge branch 'master' of ssh://git.xosc.org:/var/www/git/twind

* 'master' of ssh://git.xosc.org:/var/www/git/twind: Implement function to close both access and error logs Implement error logging Remove commented line Next part of access logging Add first support for client access/error logs



the xhr

Remove old debug code


the xhr

Implement error logging


the xhr

Fix indentation


Branches



Tags

This repository contains no tags

Tree

.gitignorecommits | blame
Makefilecommits | blame
READMEcommits | blame
gemini.ccommits | blame
log.ccommits | blame
log.hcommits | blame
mime.ccommits | blame
regress/
request.ccommits | blame
twind.8commits | blame
twind.ccommits | blame
twind.hcommits | blame
util.ccommits | blame

README

twind
=====

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.

Installation
------------

twind is written in plain C and you need to have the following software
installed:

* 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 HN=example.com

Usage
-----

twind has support for virtual hosts.  If your gemini server is called
example.com you have to create a dedicated sub directory under /var/twind:

# cd /var/twind
# mkdir example.com
# <copy files into the example.com directory>

In case your server is also reachable via gemini.example.com and you want to
serve the same content as on example.com 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.