2-3 / nmebious

Anonymous imageboard

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nmebious

nmebious (pronounced N-mebious) is an anonymous imageboard, a clone of mebious written in Common Lisp using Hunchentoot.

Features

  • Minimal and flexible API
  • RSS feed
  • Decoupled backend
  • Easily extensible REPL administration tools

Setting up

There are three main ways of setting up an instance:

  1. Running make, which will build the binary and executing it.
  2. Running make run, which will load the system and put you directly into the CL REPL. This will also create a SWANK server on port 4005 so you can connect and hack on it live.
  3. Manually loading the system using asdf:load-system and running (nmebious:start-server)

Of course, before that we need to do some additional configuration:

  • Install SBCL along with Quicklisp.

  • PostgreSQL must be set up with 2 databases named nmebious and test (the second one is optional and only needed if you want to run the test suite).

  • Create a .env file with the following format:

    DB_USER=user
    DB_PASS=password
    SECRET=secret
    

    Where DB_USER and DB_PASS are the credentials for the Postgres database, and SECRET is the key used by HMAC to hash the IP addresses.

  • ImageMagick needs to be installed.

  • It is HIGHLY recommended that you use nginx on top of nmebious to handle rate limiting, static file serving, limiting the accepted file sizes, etc.

Configuration

The configuration is located inside src/config.lisp. The only thing that you need to change is the *web-url* parameter, which gets displayed on the RSS feed. Everything else you can modify/adjust to your liking, or just leave as defaults.

Testing

Load the system and run (asdf:test-system :nmebious). One important thing to keep in mind is that the server MUST be off when running the tests.

About

Anonymous imageboard

License:GNU General Public License v3.0


Languages

Language:Common Lisp 99.2%Language:Makefile 0.8%