Gemini File Server, short gmifs, is intended to be minimal and serve static files with auto index support through TLS via the gemini protocol.
Find a file
2021-07-08 14:31:22 +08:00
gemini sort out basic logging 2021-07-08 14:31:22 +08:00
.gitignore add gitignore 2021-07-07 00:48:34 +08:00
go.mod add mod file 2021-07-07 00:48:42 +08:00
main.go sort out basic logging 2021-07-08 14:31:22 +08:00
README.md update readme 2021-07-07 00:54:05 +08:00

gmifs

Gemini File Server, short gmifs, is intended to be minimal and serve static files only. It is used to accompany a hugo blog served via httpd and make it available via the gemini protocol. Why built yet another gemini server? Because it's educational and that's the spirit of the protocol.

Features

  • zero conf
  • zero dependencies (pure go, standard library only)
  • only modern tls ciphers (from Mozilla's TLS ciphers recommendation)
  • concurrent request limiter

This tool is used alongside the markdown to gemtext converter md2gmi.

Generate a self-signed server certificate with openssl:

openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem \
     -days 3650 -nodes -subj "/CN=nox.im"

Usage

locally test it by serving a ./gemini directory

./gmifs -root ./gemini

full example

gmifs -addr 0.0.0.0:1965 -root /var/www/htdocs/nox.im/gemini \
    -cert /etc/ssl/nox.im.fullchain.pem \
    -key /etc/ssl/private/nox.im.key