-- Leo's gemini proxy

-- Connecting to simonvolpert.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

gmitodo - Gemini Shared Task List CGI


Canonical project page


gmitodo is a Gemini CGI script implementing shared task list functionality. Think of a shopping list each of your family members can add to.


Installation and Usage


Have Python 3.5 or later and python-urllib installed. You will also need a Gemini server, such as Jetforce.

Jetforce server


Download the executable

SHA1 sum: c4487dac93eddc5c8a159ace726175f7d5c2150b


Place the executable in your capsule's /cgi-bin/ directory and give it execution permissions. At this point, you can navigate to /cgi-bin/todo and start using it; See the next section for information about configuring authentication.


Development is done via git. You can clone this repository by executing the following command:

> git clone https://simonvolpert.com/gmitodo/


Authentication and Security


By default, gmitodo does not enforce any form of access control, which means anyone can add or remove entries from your task list. To restrict viewing or editing to specific users, you will need to edit the configuration file, named "todo.conf", which is created on the script's first run in one of the following locations:

/etc/gmitodo

$HOME/.config/gmitodo

The current working directory

/tmp/gmitodo


The configuration file is well-commented and self-explanatory. You can set viewing and modification permissions separately, identfying clients by either the IP address, or their client certificate SHA hash.


The creation of your client certificate varies from client to client; You should refer to your Gemini client's specific instructions.


It is worth noting that the CGI script is going to be executed as the user running the Gemini server, and will have all of the server's permissions; Running your server as root is therefore seen as extremely unwise. Make sure to only run the server as an unprivileged user to mitigate the risk. If you REALLY want the state files to be in "/etc/gmitodo", manually create that directory and chown it to the user, running the server. On the other hand, if you really want the state files to be transient, make sure that the user running the server cannot write to any of the other directories in the list, and the files will be created in "/tmp/gmitodo" as a last resort.



____________________


Last modified: 2023-01-11

Unless otherwise noted content on this site is licensed under CC-BY-SA.

Bitcoin Cash tips are welcome:

[(₿)] qzlpc2260u9vccs02njr7pupdshc5p9c4gh8e3mdn7

[(₿)] QR code

-- Response ended

-- Page fetched on Wed May 1 15:11:50 2024