💾 Archived View for nox.im › projects › gmifs captured on 2023-09-28 at 15:56:18. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-06-03)

-=-=-=-=-=-=-

gmifs summary:

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

1: gmifs source code on Github

go install github.com/n0x1m/gmifs@latest

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

1: host the Gemtext version of this blog on OpenBSD

2: hugoext

3: md2gmi

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[1] for how to handle gmifs log files.

1: OpenBSD log rotation and retention

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=