Software requirements - acaprojects/ruby-engine GitHub Wiki

There are 3 primary components:

  1. Engine Application (Ruby based)
  2. Database (Couchbase)
    • Versions 3.x and 4.x are supported
    • For OSX developers 3.x works on Sierra
  3. Search Engine (ElasticSearch)

Engine Requirements

  1. Ruby Installation - I prefer https://rvm.io/ on unix OS's
  2. Libuv installation requires python 2.x to be installed and available on the PATH
  3. libcouchbase requires cmake
  4. If the following commands succeed then the core ruby dependencies are installed
    1. gem install bundler
    2. gem install rails
    3. gem install libuv
    4. gem install libcouchbase --verbose

Windows users will additionally require:

  • A copy of Visual Studio 2010 or later. Visual Studio Express works fine.
  • A copy of OpenSSL matching the installed ruby (x86 / x64)
  • If using jRuby then GCC is also required
    • Setup the paths as described on the gcc page
    • Add required environmental variable set LIBRARY_PATH=X:\win-builds-64\lib;X:\win-builds-64\x86_64-w64-mingw32\lib

Couchbase and ElasticSearch

  • Couchbase is the persistent source of truth in the system
  • ElasticSearch is not a critical component and is only used for management
  • ElasticSearch data is pulled directly from Couchbase - it is safe to delete ElasticSearch indexes
  • Couchbase can be live updated with minimal disruption to a running system

Basic Setup

  1. Install Couchbase and create a new cluster
  2. Download ElasticSearch and install the following plugins / helpers
    1. https://github.com/mobz/elasticsearch-head
    2. https://github.com/couchbaselabs/elasticsearch-transport-couchbase
  3. Configure ElasticSearch transport Couchbase
  4. Configure ElasticSearch
  5. XDCR (cross datacenter replicate) the data from Couchbase to ElasticSearch