nox.im ยท All Projects

gmifs

Gemini file server - gmifs source code on Github. If you have the go tool chain installed, you can install and try gmifs with:

go install github.com/n0x1m/gmifs@latest

I use gmifs to host the Gemtext version of this blog on OpenBSD. Which is generated with the tools hugoext and md2gmi. The focus for this project was minimalism and simplicity with just enough features to be easy to use.

For this reason gmifs generates TLS self-signed certificates on the fly, if no key pair is provided. Allowing me to test my blog with a simple command of just that name. Auto indexing and directory listings ease debugging and was easy to support (just one function in /fileserver/fileserver.go).

See the snippet regarding OpenBSD log rotation and retention for how to handle gmifs log files.

gmifs only supports TLSv1.3 strong ciphers. You can see this in action with nmap on your server:

nmap --script ssl-enum-ciphers -p 1965 nox.im
PORT     STATE SERVICE
1965/tcp open  tivoli-npm
| ssl-enum-ciphers:
|   TLSv1.3:
|     ciphers:
|       TLS_AKE_WITH_AES_128_GCM_SHA256 (secp521r1) - A
|       TLS_AKE_WITH_AES_256_GCM_SHA384 (secp521r1) - A
|       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (secp521r1) - A
|     cipher preference: client
|_  least strength: A

Nmap done: 1 IP address (1 host up) scanned in 39.03 seconds
openssl s_client -quiet -crlf -servername nox.im -connect nox.im:1965 \
  | awk '{ print "response: " $0 }'
gemini://nox.im/

Upgrading & Downgrading

You can check the current version with go version

orwell$ go version -m /home/dre/go/bin/gmifs
/home/dre/go/bin/gmifs: go1.16.2
        path    github.com/n0x1m/gmifs
        mod     github.com/n0x1m/gmifs  v1.0.1  h1:CVmdCp2MwxlslCP/K8v6EXhOj45MYjWcZjso8eRu73c=

and install a desired upgrade or downgrade by specifying

orwell$ go install github.com/n0x1m/gmifs@v1.0.2
go: downloading github.com/n0x1m/gmifs v1.0.2
orwell$ go version -m /home/dre/go/bin/gmifs
/home/dre/go/bin/gmifs: go1.16.2
        path    github.com/n0x1m/gmifs
        mod     github.com/n0x1m/gmifs  v1.0.2  h1:12t+M1Dkuo/zVY5tc47SaBwcOf0XkypmJKlEUSSH784=

Last modified on Sunday, Nov 7, 2021.
Go back