imag/README.md

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

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:

  1. clone the repository: git clone https://git.everypizza.im/n/imag
  2. 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)
  3. ensure you have sqlite3 and memcached installed: apt install sqlite3 memcached
  4. create a new virtual environment: python3 -m virtualenv venv && source venv/bin/activate
  5. install the dependencies in the environment: pip install -r requirements.txt
  6. configure the instance: cp src/imag/config.sample.json src/imag/config.json && nano src/imag/config.json
  7. run the app by either running scripts/run.sh or by manually starting memcached and running src/main.py with gunicorn (i assume you're reverse proxying it anyway)