commit - d06d6f4bba4851cb31464867d83b369d22bf3e2c
commit + 08ce6f527354b37ddbcf39b8680708239f1e8c12
blob - dd30668b0f4993af005dd4ac5af357a4030dfba1
blob + f83e652b25b47579b5e4e2e80cbb22d811dd1c1a
--- README.md
+++ README.md
(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)
## 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"
+ }
}
```