2.4 KiB
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 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
- Clone the repository using
git clone --recurse-submodules http://git.vern.cc/cobra/MeMe
cd
intoguile-libxml2
- Follow the build instructions there
cd
back to the main repo- Run
guile -L . -L guile-libxml2 meme.scm
- Connect to http://localhost:8003 (or point your reverse proxy to it)
- 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
- It's slow
- It could probably be faster