a gemini ring for tilde.town
Go to file
aoife cassidy b8b6c80b00
Initial commit
2025-01-09 22:28:44 +02:00
.gitignore Initial commit 2025-01-09 22:28:44 +02:00
LICENSE Initial commit 2025-01-09 22:28:44 +02:00
README.md Initial commit 2025-01-09 22:28:44 +02:00
go.mod Initial commit 2025-01-09 22:28:44 +02:00
go.sum Initial commit 2025-01-09 22:28:44 +02:00
main.go Initial commit 2025-01-09 22:28:44 +02:00

README.md

cassini

cassini is a gemini ring written in go. it's like a webring, except it connects the geminispace instead of the web.

this version of cassini is a edit-rewrite-fork-thing of the original, written a few years back, amended to use SCGI instead of run as its own server, for tilde.town.

usage

$ go build
$ ./cassini [-socket cassini.sock] [-list ring.txt] [-index index.gmi]

the optional -list argument allows you to specify the path of a plaintext file containing the list of capsules. if unset, cassini will look for a ring.txt on the same directory where it resides.

the optional -index argument allows you to specify a gemtext file to serve when requesting the root directory of your domain. if unset, cassini will look for an index.gmi on the same directory where it resides.

the plaintext file should contain a list of key-value pairs, where the key is a unique username and the value is a gemini URL, like so:

user1 gemini://example.org/1
user2 gemini://example.net/~user2
user3 gemini://example.com/welcome.gmi

the index file can optionally contain the keyword {{ list }}, which will be substituted for a list of all members in the list.

linking

  • gemini://tilde.town/~nbsp/ring/next/<user> to go to to the next capsule in the ring
  • gemini://tilde.town/~nbsp/ring/previous/<user> to go to to the next capsule in the ring
  • gemini://tilde.town/~nbsp/ring/random to jump to a random capsule

license

AGPL version 3 only