Skip to content
This repository was archived by the owner on Aug 6, 2022. It is now read-only.

I.1. Requirements

Andrey Bogdanov edited this page Apr 28, 2016 · 18 revisions

Hardware

  • 2 GHz CPU is recommended. Though there is no actual limit, file processing may be annoyingly slow if your CPU is slow.
  • 1-1.5 GB of free RAM. Technically, 200-300 MB should be enough, but due to a strange Node.js or Express bug memory consumption sometimes increases up to 700-800 MB for some 0.5-1 seconds and then decreases back to normal value.

OS

Linux x32/x64. Any UNIX-like system will be OK (in theory). Tested on Centos 7.1 x64.

Node.js

Node.js 5.0.0+. 4.2.x may be OK, but this is not tested. It is strongly recommended to download Node.js form the Node.js site, because the version in your OS repository is very likely to be outdated (0.x or something).

Important: Make sure that Node.js is in your PATH (on a UNIX-like system, type: which node, on Windows run node.exe).

Libraries and tools

  • Redis server. The default configuration should be OK. Official site.
  • Elasticsearch server. The default configuration should be OK. Official site. Downloads are available here. Note: You will also have to install JRE/JDK. Here is the official manual on how to install and run Elasticsearch on Linux.
  • sqlite3 (including the dev libs). Official site.
  • Cairo (for the canvas package). Please, refer to npmjs.
  • ImageMagick (for thumbnail creation). Official site.
  • CImg, pHash and ImageMagick (for image hash generation using phash-image package). Please, refer to npmjs. See the sections CImg and pHash for details.
  • file (should support video/webm MIME-type). You may get the source code here. There may be some issues with mp3 files, please, refer to II.5. 3rdparty related issues.
  • ffmpeg (with support of mp3, ogg, webm and png). Please, refer to this article for example of how to build ffmpeg with all required formats support. Another one (in Russian).

Important: Make sure all the libraries and tools are in the PATH.

Possible issues

CImg

The CImg package is typically called cimg-dev. It may be missing on some distros. In that case, download it from the official site (click the "Standard package" button), and install manually. You should put the CImg.h file and plugins directory into your /usr/include dir.

Unzip the downloaded archive and type:

sudo cp /path/to/unzipped-cimg/CImg.h /usr/include
sudo cp -r /path/to/unzipped-cimg/plugins /usr/include
pHash

The pHash package is typically called libphash0-dev. It may be missing on some distros. In that case, download it from the official size (click the "pHash 0.9.6 - Linux" link), and build it manually.

Untar the downloaded archive and type:

./configure --prefix=/usr --enable-video-hash=no --enable-audio-hash=no
make
sudo make install

Note: If the build fails (it does on some distros), open the ./Makefile file, find the line

SUBDIRS = src bindings examples

and replace it with

SUBDIRS = src bindings

(remove the examples target). Then run make again.

Clone this wiki locally