motm/readme.md

123 lines
4.5 KiB
Markdown
Raw Permalink Normal View History

2020-12-24 03:20:49 +00:00
# motm - the messageboard on the moon
a flexible messageboard for the gemini protocol
2020-12-24 03:11:45 +00:00
2020-12-24 03:21:14 +00:00
live @ gemini://illegaldrugs.net/cgi-bin/motm
2020-12-24 03:11:45 +00:00
### features
- account registration with client certs
- unlimited length post creation
- basic moderation
- bans and unbans
- customizable templates for each page
- flexible messageboard creation
### prerequisites
- python >= 3.7.3
- cryptography >= 3.1
- sqlite3
- a gemini server fully compatible with jetforce's cgi implementation
### using motm (end user)
- **navigation**
- navigating motm is fairly straightforward, select a board to view its
posts, select a post to view its replies.
- **registration**
- if you try to post to a board you will get an error
- this is because you are not registered
2020-12-24 03:17:50 +00:00
- registration is a simple process, but it is easy to mess up and lose your
username, read this fully before attempting to register
- in order to register, go to gemini://[path to motm]/register, e.g.
gemini://illegaldrugs.net/cgi-bin/motm/register for the messageboard
hosted at gemini://illegaldrugs.net/cgi-bin/motm
- you will be prompted for a username
- input your username
- if it is not taken, you will be given a client cert, as well as a key
- **DO NOT SHARE THIS KEY.**
- save this page, it will not be regenerated
2020-12-24 03:11:45 +00:00
- copy the key and cert into separate files, you should probably name them
something like "[username].cert" and "[username].key" respectively
- now, restart your client, this time supplying the respective certificate
and key files
2020-12-24 03:17:50 +00:00
- for example, with av98 i would run `av98 --tls-cert [username].cert
2020-12-24 03:11:45 +00:00
--tls-key [username].key`
- **posting**
- once you have registered, you can create a new post by selecting the
'Create new post' option
- input the title you would like to use for your post
- now the post has been created
- in order to add text to the post, navigate to it and select the 'Append'
option
- you may repeat this process as much as you like, the post is automatically
updated on each append
- no spaces or newlines are added for you when appending to a post, however
a newline can be inserted by using the string "\n" in your text
### hosting motm
- make sure you are not root
- clone this repo somewhere onto your computer
- open the 'config/settings.json' file
- edit the `hostname` entry in the `server` section to reflect the hostname
or ip of your server
- edit the names and settings for the **3** default boards, under
`defaultPosts` adding more boards if you like
- `motm` is not a board, leave that alone
- run `./cli.py` once to generate the necessary files
- once you're done, `^C` to exit
- copy the 'motm.cgi' file to your cgi-bin
- edit the 'motm.cgi' file so that it points to the repo you cloned earlier
2020-12-24 03:56:14 +00:00
- start your server, making sure to specify the newly created 'certs/ca.cert'
as your cafile
2020-12-24 03:11:45 +00:00
### moderating motm
- moderating your messageboard is done through the 'cli.py' script
- motm provides a few commands for moderation
2020-12-24 03:18:44 +00:00
- `del_post [post id]`
- deletes a post
- `ban [username]`
- bans a user
- `unban [username]`
- unbans a user
2020-12-24 03:11:45 +00:00
### customizing motm
- basic customization is done by editing the templates in the 'config/templates'
dir
- further customization can be done by editing the settings.json file, though
this file is fragile and improper editing can easily break the script
### notes/bugs
- this software was tested with
[jetforce's](https://github.com/michael-lazar/jetforce) cgi implementation, it
should work with other servers provided they implement the necessary cgi vars for
verifying tls certificates
2020-12-24 03:19:48 +00:00
- password protected cas are not supported right now, if you create your ca with
2020-12-24 03:11:45 +00:00
a password motm will break
- the scoring system might be broken, or it might just be very inefficient
- the code is a bit weird because i hastily switched from building off of
jetforce to writing a purely cgi app. there are also probably some bugs
because of that
### q&a
*q: why did you write this?*
a: bored.
*q: wait, what is this gemini thing anyway?*
a: gemini is a protocol. https://gemini.circumlunar.space/
*q: how do i pronounce 'motm'*
a: one word like "bottom", or 4 letters like "em-oh-tee-em"
*q: is motm named after the kid cudi album or the counter-strike player?*
a: the [counter-strike player](https://www.hltv.org/player/13230/motm), though
[those
albums](https://en.wikipedia.org/wiki/Kid_Cudi#2009%E2%80%9310:_Man_on_the_Moon_series)
are fantastic, and you should check them out
2020-12-26 20:25:22 +00:00
the first experiment.
2020-12-24 03:11:45 +00:00
(c) 2020 oneseveneight/sose