GemThread
GemThread is an SCGI service intended for use with the Molly Brown Gemini server.
GemThread is designed to allow conversations to be held in Gemini-space.
How Does It Work?
The primary use pattern is as follows:
- A person (the "author") posts a page to their own Gemini server.
- The author accesses the
/new
endpoint of a GemThread service (which does not have to be on their own Gemini server) and enters the gemini://
URL pointing to their posted page.
- The GemThread service fetches the page from the author's Gemini server, extracts a title and summary for the page, and creates a new thread for the page and any responses that are added.
- The author may then add the GemThread thread URL to the original page and perhaps a note to let readers know that they may respond using the GemThread service (if desired).
- A different person (the "responder") posts a response to the original page on their own Gemini server.
- The responder access the
/respond
endpoint of the GemThread service and copies the gemini://
URL pointing to their response page.
- The GemThread service fetches the response page from the responder's Gemini server, extracts a title and summary, and adds the response information to the thread for the original page.
See the help.gmi
file for much more information.
System Requirements and Building
For now, GemThread is designed to be run as an SCGI service under the Molly Brown Gemini server. Other configurations will probably work but have not been tested. I'm happy to take pull requests to make GemThread work as a CGI or an FCGI service or even as a standalone server.
The easiest way to install GemThread is to clone this repository, set your GOPATH to point to somewhere appropriate, and run go build
. Not ideal, and I'll probably make some binary releases once it makes sense. You will need the sample gemthread.cfg
and help.gmi
files anyway, however, so cloning the repository is not an entirely bad thing. (Also, I can get away with this because Molly Brown requires you to use go get
and have a GOPATH already set up. Since you have already done that, these instructions should be a piece of cake. As always, pull requests are welcome if you want to make the setup process easier for others.)
The gemthread.cfg
file should be self explanatory. Please log an issue if anything is unclear. The only thing you MUST change in the gemthread.cfg
file is the server_url
entry. It should point to the path of the SCGI service itself. In other words, if you have configured Molly Brown to use the /gemthread
endpoint for the service, and your server name is host.example.com
, you should configure the server_url
entry as gemini://host.example.com/gemthread
.
Running
Configure Molly Brown to point to the SCGI socket defined in gemthread.cfg
, and restart Molly Brown. Then run the gemthread server by doing:
gemthread -c /path/to/gemthread.cfg
The primary issue tracker is located at:
I am happy to take issues on GitHub as well:
Mirrors
Code is hosted at:
It is also mirrored at:
Issues and pull requests are accepted in both locations.