etc | ||
mod | ||
.gitignore | ||
gembooru.scm | ||
LICENSE | ||
README.md |
GemBooru
GemBooru is a booru implementation for the gemini+titan protocols. A booru is a type of imageboard that relies on tagging images in order to search for images based on their content.
(Planned) Features
[DONE]
Upload images via /upload endpoint[ ]
Create/delete tags; modify tag descriptions/aliases[ ]
Add tags and metadata to images[ ]
Comments and voting[DONE]
Template system to customise page layouts in Scheme[ ]
Query images based on tags and metadata[DONE]
Restrict uploads via token authorisation[ ]
Certificate-based authentication[ ]
Metrics page[ ]
Non-TLS geminis://+titans:// variants over port 1966[ ]
JSON/XML API
(Planned) Endpoints
[DONE]
/[DONE]
/upload[DONE]
/post/${ID}[ ]
/post/vote/${ID}[ ]
/post/note/${ID}?${COMMENT}[ ]
/post/edit/${ID}?${QUERY}[DONE]
/post/view/${ID}.${EXT}[ ]
/tag/${ID}[ ]
/tag/vote/${ID}[ ]
/tag/note/${ID}?${COMMENT}[ ]
/tag/edit/${ID}?${QUERY}[ ]
/search?${QUERY}[ ]
/register
Running
Gembooru depends on the following external code/libraries:
- GNU Guile
- GnuTLS with
guile-gnutls
libmagic
(provided byfile
)(chibi crypto md5)
(embedded, seemod/chibi/
)
You'll want to generate a self-signed certificate, or use a CA certificate, before running (the former is preferred). The following command assumes you generated a self-signed certificate for localhost in the current directory:
guile -L mod gembooru.scm \
--server-name "localhost" \
--certificate "localhost.crt" \
--private-key "localhost.key"
# other options...
Licensing
All original code in this repository has been relinquished to the public domain. The preferred license is the STRONGEST license (see: LICENSE), but CC0, WTFPL, Unlicense, 0BSD, or equivalent public domain licenses may be used instead.
The files in mod/chibi/
are not original code. See the file headers for their
respective licensing. Any modifications of these files has been explicitly
marked as such, and follow the same licensing as the rest of our original code.