65 lines
2.4 KiB
Markdown
65 lines
2.4 KiB
Markdown
# 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
|