An open source live media chat.
JavaScript CSS HTML Other
Clone or download
Latest commit 366ddb1 Dec 26, 2017
Permalink
Failed to load latest commit information.
lib Tons of various changes Dec 26, 2017
node_modules/captcha Revert "odili fork pull request" Dec 26, 2017
pages
public
.gitignore
AD.png Revert "odili fork pull request" Dec 26, 2017
LICENSE added initial license file May 19, 2014
Procfile Separate routes and models Jan 29, 2014
README.md readme changes Dec 26, 2017
TODO.md
banners.py
block_tor modified tor blocking to use iptables Jan 31, 2014
block_tor.py
bower.json remove vulnerable BBCode script, reimplement some tags Feb 17, 2014
build_client_js.sh remove vulnerable BBCode script, reimplement some tags Feb 17, 2014
config.js Tons of various changes Dec 26, 2017
genflags.py new files Dec 26, 2017
package.json Tons of various changes Dec 26, 2017
restart_node
run_livechan
stickers.py new files Dec 26, 2017
tor_list.txt
tripflags.py new files Dec 26, 2017

README.md

livechan

livechan is a live IRC like image board written in node.js.

Installation

Requirements:

Suggested OS is ubuntu 14.04

The commands below are based on a Debian installation, other distros / operating systems will vary.

  1. Install git:

    sudo apt-get install git

  2. Install node.js and NPM:

    sudo apt-get install nodejs npm nodejs-legacy

(nodejs-legacy creates a symlink from /usr/bin/node to Debian's location /usr/bin/nodejs, needed for installation scripts that call "node".)

  1. Install MongoDB:

    sudo apt-get install mongodb

  2. Install ImageMagick:

    sudo apt-get install imagemagick

  3. Install the dependencies of the canvas module:

    sudo apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++

  4. Install FFmpeg. See instructions at https://ffmpeg.org/download.html.

Add the sources from http://www.deb-multimedia.org/ to your /etc/apt/sources.list and do:

sudo apt-get update
sudo apt-get install deb-multimedia-keyring
sudo apt-get update
sudo apt-get install ffmpeg

Alternately you can download a static build from http://ffmpeg.gusari.org/static/ and copy the extracted binaries to /usr/local/bin:

sudo cp ffmpeg ffprobe /usr/local/bin

Note that many distributions come with Libav in place of FFmpeg. FFmpeg is recommended. Using Libav instead should be possible, but will require appropriate changes to format-image.js and generate-thumbnail.js in lib/utils.

If you do not want audio/video support, you should edit your config.js so that video_formats and audio_formats are both empty arrays.

  1. Clone the git repo

    git clone https://github.com/emgram769/livechan-js.git

8.a) Install the dependencies with npm install

cd livechan-js; npm install

8.b) Download a country lookup database

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz; gunzip GeoLiteCity.dat.gz
  1. Restore the changes to the captcha module which were overwritten by npm install:

    git checkout node_modules/captcha/captcha.js

  2. Get ircd.js modified for livechan

    cd ..; git clone https://github.com/emgram769/ircd.js; cd ircd.js; npm install; cd ../livechan-js

  3. Make sure the public/tmp/uploads and public/tmp/thumb folders are writable

    chmod 777 public/tmp/uploads public/tmp/thumb

  4. Set the admin password

    node lib/set-password.js

This is used for the admin commands to delete/change posts and ban users.

  1. Run LiveChan

    npm start

Nginx proxy config

Requires nginx 1.3+:

# the IP(s) on which your node server is running. I chose port 8083.
upstream app_livechan {
    server 127.0.0.1:8083;
}

# the nginx server instance
server {
    listen 0.0.0.0:80;
    server_name livechan.net;
    access_log /var/log/nginx/livechan.log;

    # pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
    location / {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://app_livechan/;
      proxy_redirect off;
    }
}

Relevant links

Live instance: https://livebunker.rocks