Open source business analytics stack recipe

Mike Fabrikant
2 min readDec 9, 2019

VM

Amazon: t2-small, ubuntu 18.04

Add inbound rules 8080 and 3000 in VM’s Security Group

Install postgres

  • sudo apt-get update
  • sudo apt install postgresql postgresql-contrib
  • sudo -i -u postgres
  • psql
  • createuser --interactive # superset — superuser
  • createuser --interactive # metabase — superuser
  • psql postgres
  • ALTER USER superset WITH PASSWORD ‘some password’;
  • ALTER USER metabase WITH PASSWORD ‘some password’;
  • create database csvs;
  • \q
  • exit

Install Superset

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-devpip install virtualenv
sudo apt-get install python3-venv
python3 -m venv venv
. venv/bin/activate
sudo apt-get install python3 python-dev python3-devpip install psycopg2-binarypip install --upgrade setuptools pip# Install superset
pip install apache-superset

# Initialize the database
superset db upgrade
# Create an admin user (you will be prompted to set a username, first and last name before setting a password)
export FLASK_APP=superset
flask fab create-admin


# Create default roles and permissions
superset init
gunicorn --timeout 60 \
--bind 0.0.0.0:8080 \
--daemon\
--limit-request-line 0 \
--limit-request-field_size 0 \
--forwarded-allow-ips="*" superset:app

Connect db

  • sources -> Databases -> new
  • database: csvs
  • SQLAlchemy URI: postgresql://superset:<postgres-password>@localhost:5432/csvs
  • Check Allow Csv Upload

Install Metabase

sudo apt-get update

sudo apt install default-jre

wget http://downloads.metabase.com/v0.33.6/metabase.jar

java -jar metabase.jar

Connect postgres database: admin -> databases -> add database

host: localhost

port: 5432

database: csvs

https://medium.com/coderbunker/rapid-api-development-tutorial-with-docker-postgresql-postgraphile-e387c1c73dd8

https://docs.docker.com/compose/install/

gunicorn -b 0.0.0.0:8080 — limit-request-line 0 — limit-request-field_size 0 superset:app

gunicorn --timeout 60 \
--bind 0.0.0.0:8080 \
--daemon\
--limit-request-line 0 \
--limit-request-field_size 0 \
--forwarded-allow-ips="*" superset:app

sudo apt-get install python3 python-dev python3-dev

pip install psycopg2-binary

--

--