Skip to content
/ erlach Public

(⭑•͈ 𓎟 •͈ ) Real-time SPA Imageboad on Websocket written on Erlang

License

Notifications You must be signed in to change notification settings

m-2k/erlach

Repository files navigation

Erlach

Fully anonymous imageboard and anonymous comments service

Overview

Features

  • Completely anonymous without personalization
  • BPG images
  • Smart posting
  • Canvas rendering
  • Single page application (SPA)
  • WebSocket transport

Screenshot

Erlach Chat

Erlach Search

Erlach Subscription

Requirements

  • Unix
  • Erlang/OTP 19
  • libjpeg-progs
  • optipng
  • ImageMagick
  • libbpg
  • inotify-tools (optional for live code reload)

Run Erlach

  1. Srart attached docker container
docker pull erlang:19.3.6.13
docker run --rm -it -p 8000:8000 -v "$(pwd)":/app -w /app erlang:19.3.6.13 bash
  1. Install requirements into docker container
# package manager
cat <<EOF > /etc/apt/sources.list
deb [trusted=yes] http://archive.debian.org/debian/ stretch main contrib non-free
deb [trusted=yes] http://archive.debian.org/debian/ stretch-updates main contrib non-free
deb [trusted=yes] http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
EOF

# install packages from apt
apt-get update
apt-get install -y build-essential libjpeg-progs pkg-config wget ca-certificates cmake
apt-get install -y libjpeg-dev libpng-dev libgif-dev libz-dev
apt-get install -y libsdl-dev libsdl-image1.2-dev optipng imagemagick

# build and install libbpg
wget https://bellard.org/bpg/libbpg-0.9.8.tar.gz -P /tmp
tar -xvzf /tmp/libbpg-0.9.8.tar.gz -C /tmp
cd /tmp/libbpg-0.9.8 && make && make install
  1. Setup Git configuration into docker container and get dependencies
git config --system url."https://github.com/".insteadOf git://github.com/
cd /app
./mad deps
  1. Compile and run Erlach with mad
cd /app
./mad compile
./mad repl # for correct logging DO NOT combine arguments like here: ./mad com rep for 
  1. Init Erlach database into ERTS terminal
erlach_db:init_db().
  1. Open URL http://localhost:8000/ on host system

Feedback

  • Twitter @erlach_co
  • On errors make as issue in this repository

Credits