Coder Social home page Coder Social logo

sufianhassan / aleph Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lumoslabs/aleph

0.0 2.0 0.0 4.86 MB

Redshift analytics platform: helps you help yourself to the data

License: MIT License

Ruby 38.76% JavaScript 48.19% CSS 3.12% HTML 9.93% Shell 0.01%

aleph's Introduction

Aleph

Aleph is a Redshift analytics platform that focuses on aggregating institutional data investigation techniques.

aleph

Build Status

Quickstart

If you want to connect to your own Redshift cluster, the follow instructions should get you up and running.

Docker Install

The fastest way to get started: Docker

Configure your Redshift and run
  docker run -ti -p 3000:3000 lumos/aleph-playground /bin/bash -c "aleph setup_minimal -H {host} -D {db} -p {port} -U {user} -P  {password}; redis-server & aleph run_demo"
Open in browser
  open http://$(docker-machine ip):3000

Gem Install

You must be using PostgreSQL 9.2beta3 or later client libraries

Install and run Redis
brew install redis  && redis-server &
Install gem
gem install aleph_analytics
Configure your Redshift and run
aleph setup_minimal -H {host} -D {db} -p {port} -U {user} -P {password}
aleph run_demo

Aleph should be running at localhost:3000

Aleph Gem

Aleph is packaged as a Rubygem.

To list gem executables, just type aleph --help

Find out more about the gem executables here.

Installation

Dependencies

For a proper production installation, Aleph needs an external Redis instance and operational database. The locations of these services can be configured using environment variables. More detailed instructions on configuration can be found here. Example configurations can be found here.

The app

There are a number of ways to install and deploy Aleph. The simplest is to set up a Dockerfile that installs aleph as a gem:

FROM ruby:2.1.6

# we need postgres client libs
RUN apt-get update && apt-get install -y postgresql-client --no-install-recommends && rm -rf /var/lib/apt/lists/*

# make a log location
RUN mkdir -p /var/log/aleph
ENV SERVER_LOG_ROOT /var/log/aleph

# make /tmp writeable
RUN chmod 777 /tmp

# bundle install inside the aleph gem
RUN gem install aleph_analytics

# copy our aleph configuration over to the image
ENV ALEPH_CONFIG_PATH /etc/aleph/
COPY aleph_config/. /etc/aleph/.

# install the aleph dependencies
RUN aleph deps

You can then deploy and run the main components of Aleph as separate services using the gem executables:

  • web_server - aleph web_server --worker-process 2
  • query workers - aleph workers
  • clock (used to trigger alerts) - aleph clock

At runtime, you can inject all the secrets as environment variables.

We highly recommend that you have a git repo for your queries and s3 location for you results.

Advanced setup and configuration details (including how to use Aleph roles for data access, using different auth providers, creating users, and more) can be found here.

Contribute

Aleph is Rails on the backend, Angular on the front end. It uses Resque workers to run queries against Redshift. Here are few things you should have before developing:

  • Redshift cluster
  • Postgres and Redis installed
  • Git Repo (for query versions)
  • S3 Location (store results)

While the demo/playground version does not use a git repo or S3, we highly recommend that you use them in general.

Setup

Postgres

createuser -s -P postgres
initdb --encoding=utf8 --auth=md5 --auth-host=md5 --auth-local=md5 --username=postgres --pwprompt /usr/local/var/postgres
  • development password should be "password"
  • Restart Postgres

Database

bundle exec rake db:create db:migrate
RAILS_ENV=test bundle exec rake db:setup db:test:prepare

Karma/Jasmine

npm install

Testing

RAILS_ENV=test bundle exec rspec spec
bundle exec rake karma:run

Running

bundle exec foreman start

You can manage your env variables in a .env file

Links

Unless otherwise noted, all Aleph source files are made available under the terms of the MIT License

aleph's People

Contributors

rfroetscher avatar slpsys avatar

Watchers

Sufian avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.