• 0.3.0 9383e581cd

    0.3.0 Pre-release

    snit released this 2025-06-23 16:28:58 +02:00 | 32 commits to main since this release

    Version 0.3.0 - "Eris Greyrat"

    Changes:

    • /upload and /search moved to /post/make and /post/look for consistency with the new tag endpoints
    • A new ID-based tag system, which allow tags to language-agnostically represent concepts as a whole rather than individual words:
      • /tags/make to create a new tag with a random ID with a list of aliases provided as a query
      • However, a given alias my only refer to one tag ID at a time. /tags/make should guarantee that
      • Posts now use the new tags (no migration though)
      • /tags/$ID to view a tag's aliases (and, in the future, description); A post's tag listing now provides links to each tag's page.
    Downloads
  • 0.2.1 782f833e83

    0.2.1 Pre-release

    snit released this 2025-06-21 17:30:52 +02:00 | 41 commits to main since this release

    Version 0.2.1 - "Eris Greyrat" (oopsies edition)

    Changes:

    • Search is functional again because it apparently broke?
    • A bunch of database locking changes but the only remotely user-visible changing is that tag modification locks once instead of twice now

    That's it; I just wanted to get that first fix pushed out...

    Downloads
  • 0.2.0 e40c86d033

    0.2.0 Pre-release

    snit released this 2025-06-21 01:31:20 +02:00 | 45 commits to main since this release

    Version 0.2.0 - "Eris Greyrat"

    Changes:

    • View tags on a post
    • Edit tags using queries like rin_tezuka -blue_eyes
    • Search for posts by tag (super inefficient and basic at the moment)
    • Reject expired client certificates (but otherwise don't use them at all yet)
    • The /post/view/ endpoint no longer uses file extensions (because previously, you could put ANY extension and it'd work)
    • Stricter checks regarding request URIs (max URI length, no userinfo or fragment)
    • Return an error when requesting from endpoints that don't have Titan functionality, rather than just assume it's Gemini anyways
    • Deleted the configuration file and a few CLI flags, but, strictly speaking, none of this was usable anyways, so technically not a change
    Downloads
  • 0.1.0 9c30ad0185

    0.1.0 Pre-release

    snit released this 2025-06-18 20:02:18 +02:00 | 58 commits to main since this release

    Version 0.1.0 - "Eris Greyrat"

    This is the initial release of GemBooru. It contains roughly the bare minimum to work as an imageboard:

    • Uploading media (currently has a hardcoded limit of size <10MiB and types image/png, image/jpeg, image/gif, or video/webm)
    • Listing media (on the search page; the query currently does nothing)
    • Viewing a post and its associated media
    • A templates file, which lets you use Scheme to dynamically generate custom pages (see etc/template.scm for a reasonable default)
    • Configuration via command-line flags
      • --server-name The name of the server, i.e. "localhost" or "isekai.rocks" (required)
      • --certificate The path to the generated certificate file, i.e. /etc/gembooru/cert/localhost.crt (required)
      • --private-key The path to the generated private key file, i.e. /etc/gembooru/cert/localhost.key (required)
      • --templates The path to the templates file (defaults to /usr/share/gembooru/template.scm)
      • --database The path in which to store database files, like uploaded media (defaults to /var/lib/gembooru/)
      • --token A token string that will be required in order to upload media (defaults to no token)

    Running

    I don't recommend actually hosting this, but if you'd like to try it out, you can use the following commands.

    To generate a certificate (only do this once):

    openssl req -x509 -keyout keys/localhost.key -out keys/localhost.crt -days 365 -nodes-subj '/CN=localhost'
    

    Then to run the server:

    guile -L mod gembooru.scm            \
        --server-name localhost          \
        --certificate keys/localhost.crt \
        --private-key keys/localhost.key \
        --templates etc/template.scm     \
        --database var/lib/gembooru
    
    Downloads