Privacy-respecting alternative front-end for Tenor
Go to file
Skylar "The Cobra" Widulski 6e281b4730
Fix view page error
Signed-off-by: Skylar "The Cobra" Widulski <>
2024-01-18 11:01:32 -05:00
guile-libxml2@1c3ff42fa4 Update copyright 2024-01-03 11:30:47 -05:00
soprano Fix view page error 2024-01-18 11:01:32 -05:00
static Init 2023-12-17 06:18:35 -05:00
.gitignore Init 2023-12-17 06:18:35 -05:00
.gitmodules Init 2023-12-17 06:18:35 -05:00
LICENSE Init 2023-12-17 06:18:35 -05:00 Oopsy i didnt change the header 2024-01-03 13:08:33 -05:00
instances.json Add vern instance to list 2024-01-17 08:15:37 -05:00
soprano.scm Update copyright 2024-01-03 11:30:47 -05:00


Soprano is a privacy-respecting frontend to Tenor

This project is incomplete. The only supported endpoints are /view (gif) and /search (search).


Join our Matrix room for support and other things related to Soprano


See instances.json

Run your own instance


This program is written in Guile Scheme.

You will need need guile, guile-gnutls, guile-lib, imagemagick (for removing the watermark), and guile-libxml2. guile-libxml2 is submodule in this repository libxml2, libgumbo, and gumbo-libxml installed.


  1. Clone the repository using git clone --recurse-submodules
  2. cd into guile-libxml2
  3. Follow the build instructions there
  4. cd back to the main repo
  5. Run guile -L . -L guile-libxml2 Soprano
  6. Connect to http://localhost:8005 (or point your reverse proxy to it)
  7. Profit


PATCHES_URL - Link to any patches that were applied. Necessary if there are any. Do not set if there aren't.

The following are optional.

PORT - What port to run on (default 8005).

LIBXML2_LOCATION (Used by guile-libxml2) - Path to (default libxml2, which checks LD_LIBRARY_PATH).

GUMBO_LIBXML_LOCATION (Used by guile-libxml2) - Path to (default ./gumbo-libxml/.libs/, can be edited to libgumbo_xml, which does the same thing as libxml2 in LIBXML2_LOCATION)


When using a service manager (e.g. systemd), make sure the stop signal is set to SIGINT, or 2. This will prevent EADDRINUSE.