commit 08ce6f527354b37ddbcf39b8680708239f1e8c12 from: Omar Polo date: Thu Apr 29 19:46:51 2021 UTC tweaked the readme a bit commit - d06d6f4bba4851cb31464867d83b369d22bf3e2c commit + 08ce6f527354b37ddbcf39b8680708239f1e8c12 blob - dd30668b0f4993af005dd4ac5af357a4030dfba1 blob + f83e652b25b47579b5e4e2e80cbb22d811dd1c1a --- README.md +++ README.md @@ -9,23 +9,18 @@ featureful server. (random order) + - sandboxed by default on OpenBSD, Linux and FreeBSD - reconfiguration: reload the running configuration without interruption - - sandboxed by default on OpenBSD, Linux and FreeBSD - automatic redirect/error pages (see `block return`) - IRI support (RFC3987) - - punycode support - - dual stack (IPv4 and IPv6) - automatic certificate generation for config-less mode - CGI scripts - - low memory footprint + - virtual hosts + - location rules - event-based asynchronous I/O model + - low memory footprint - small codebase, easily hackable - - virtual hosts - - per-location rules - - optional directory listings - - configurable mime types - - chroot support ## Internationalisation (IRIs, UNICODE, punycode, all that stuff) @@ -50,28 +45,46 @@ doesn't do that (yet). ## Configuration gmid has a rich configuration file, heavily inspired by OpenBSD' -httpd. While you should definitely check the manpage because it -documents every option in depth, here's a small example of how a -configuration file looks like. +httpd, with every detail carefully documented in the manpage. Here's +a minimal example of a config file: ```conf +server "example.com" { + cert "/path/to/cert.pem" + key "/path/to/key.pem" + root "/var/gemini/example.com" +} +``` + +and a slightly complex one + +```conf ipv6 on # enable ipv6 server "example.com" { - cert "/path/to/cert.pem" - key "/path/to/key.pem" - root "/var/gemini/example.com" - lang "it" - cgi "/cgi/*" + alias "foobar.com" - location "/files/*" { - auto index on - } + cert "/path/to/cert.pem" + key "/path/to/key.pem" + root "/var/gemini/example.com" - location "/repo/*" { - # change the index file name - index "README.gmi" - } + # lang for text/gemini files + lang "it" + + # execute CGI scripts in /cgi/ + cgi "/cgi/*" + + # only for locations that matches /files/* + location "/files/*" { + # generate directory listings + auto index on + } + + location "/repo/*" { + # change the index file name + index "README.gmi" + lang "en" + } } ```