MeMe/README.md

65 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

# MeMe
MeMe is a privacy-respecting frontend to Know Your Meme
Currently this project is still in development. While it might be in a state where you can host it publicly, There is likely to be many bugs.
# Support
Join our [Matrix room](https://mto.vern.cc/#/#cobra-frontends:vern.cc) for support and other things related to MeMe
# Instances
See instances.json
# Run your own instance
## Dependencies
This program is written in Guile Scheme.
You will need need `guile`, `guile-gnutls`, `guile-lib`, and `guile-libxml2`.
`guile-libxml2` is submodule in this repository `libxml2`, `libgumbo`, and `gumbo-libxml` installed.
## Running
1. Clone the repository using `git clone --recurse-submodules http://git.vern.cc/cobra/MeMe`
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 meme.scm`
6. Connect to http://localhost:8003 (or point your reverse proxy to it)
7. Profit
## Environment
`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 `8003`).
`LIBXML2_LOCATION` (Used by guile-libxml2) - Path to `libxml2.so` (default `libxml2`, which checks `LD_LIBRARY_PATH`).
`GUMBO_LIBXML_LOCATION` (Used by guile-libxml2) - Path to `libgumbo_xml.so` (default `./gumbo-libxml/.libs/libgumbo_xml.so`, can be edited to `libgumbo_xml`, which does the same thing as `libxml2` in `LIBXML2_LOCATION`)
## Notes
When using a service manager (e.g. systemd), make sure the stop signal is set to SIGINT, or 2. This will prevent EADDRINUSE.
# Performance
## Hardware
RAM usage seems to max out below 150 MiB (134 in production testing, different from local, which was around 65 MiB).
## Page
Due to the nature and method of proxying images, the performance on first load is poor (PageSpeed Inisghts speed index of 2.5s).
After the first load, though, your browser's cache control should kick in, and any subsequent requests for an image are cached.
Altogether, the performance listed on PageSpeed Insights is 63.
# Todo
* Speed up image proxying somehow
* Video list page*
* Video page*
* User page (it is internally linked)
\*Videos might not be added because they use embeds from stuff like tiktok and I don't know how to scrape tiktok (use existing proxitok instance?)
# Known issues
1. It's slow
2. It could probably be faster