Blob


1 These last twenty days were pretty productive on the gmid front: I ended up doing way more things that I had planned for this v1.5 release.
3 The headlines are the automatic sandboxing on OpenBSD, FreeBSD and linux and the introduction of the configuration file, but you’ll find the whole change log at the end of this entry.
5 On OpenBSD pledge and unveil were already in place, but their usage has been improved during this release cycle: the daemon was split into two processes that run with different pledges. This enabled also the usage of capsicum on FreeBSD and seccomp on linux. Always in the same spirit, support for chroot and privilege dropping has been added, so it’s safe to start the daemon with root privileges.
7 => /post/gmid-sandbox.gmi Read “Comparing sandboxing techniques” for more information.
9 With this release gmid has two modes: a daemon mode and a config-less mode. The config-less mode is similar to how gmid operated until now (i.e. running from the command line) and has been improved with an automatic certificate generation, while the daemon more is more akin to “normal” network daemons and needs a configuration file.
11 The configuration file syntax has been inspired from OpenBSD’ httpd and is quite flexible. It supports a wide range of customizable parameters and location blocks to alter the behaviour per matching path.
15 ## v1.5 “Interstellar Overdrive” Changelog
17 ### New features
19 * vhost support
20 * configuration file
21 * sandboxed by default on OpenBSD, FreeBSD and linux
22 * customize the accepted TLS version
23 * customizable default type
24 * customizable mime mappings
25 * provide a dockerfile
26 * provide a lang parameter when serving text/gemini files
27 * added a ‘configure’ script
28 * customizable directory index
29 * directory listings (disabled by default)
30 * [config] location blocks support
31 * chroot support
32 * punycode support
34 ### Improvements
36 * log ip, port, full request and response code (even for CGI scripts)
37 * host name matching with globbing rules
38 * automatically generate TLS certificates when running in config-less mode and no certificate was found
40 ### Bugfixes
42 * [IRI] normalize scheme
43 * [IRI] normalize hostnames
44 * [IRI] accept a wider range of codepoints in hostnames
45 * set SERVER_NAME when executing CGI scripts
47 ### Breaking changes
49 * removed -C, -K flags
50 * -d changed meaning: the directory to serve is now given as positional parameter and -d is used to specify the directory for the TLS certificates (either autogenerated or not.)