2.2 KiB
imag
simple image board, intended for a quotebook of screenshots
the imag image board is made to be simple, though separated, so you could easily add or remove features, update them, etc
example instance: https://quotes.everypizza.im/
licensing
this program is under the Strongest Public License, mostly as a joke. this one, Nyx Tutt, gives you full permission to ignore Clause ⑨.
prerequisites
- tesseract: https://github.com/tesseract-ocr
- tesseract data
bot
there's a matrix bot at n/quotes-bot and a very WIP rewrite in python at n/quotes-bot-python.s
docs & running
see the doc directory for documentation, it also has an example nginx and caddy config, and you can also run the app using ./scripts/run.sh to match that config - but don't run it using the run.sh as the first run.
running with gunicorn (run.sh) is for production use, for master key generation (first run), please run it in dev mode after making the config:
make the config:
cp src/imag/config.sample.json src/imag/config.json && nano config.json
run it:
python3 src/main.py
(make sure to save the key!) and only then with gunicorn
if you already ran it in production and don't know where the key is, run the following command:
rm -rf src/instance
and then run it in debug
step-by-step
this comes from an email the original creator got from a user:
- clone the repository:
git clone https://git.everypizza.im/n/imag
- make sure you have virtualenv installed (either through python-virtualenv / python3-virtualenv / py3-virtualenv packages, or by pip -
python3 -m pip install --user --break-system-packages --upgrade virtualenv
) - ensure you have sqlite3 and memcached installed:
apt install sqlite3 memcached
- create a new virtual environment:
python3 -m virtualenv venv && source venv/bin/activate
- install the dependencies in the environment:
pip install -r requirements.txt
- configure the instance:
cp src/imag/config.sample.json src/imag/config.json && nano src/imag/config.json
- run the app by either running
scripts/run.sh
or by manually starting memcached and runningsrc/main.py
with gunicorn (i assume you're reverse proxying it anyway)