Are you interested in trying out Superset, but you're intimidated by the local setup process? Worry not! Superset needs some initial setup to install locally, but I've got a streamlined way to get started - using the makefile! This file contains a set of scripts to simplify the setup process.
This setup is for Mac OS X, for other OS setups see: https://superset.apache.org/docs/installation/installing-superset-from-scratch/
To start, fork and download Superset from Github: https://github.com/apache/superset
You can run Superset directly without forking it, but you won't be able to create pull requests unless you're using your own forked version.
Prerequisites
Superset has some prerequisites in order to run properly. Let's start with dependencies:
Make sure to update your machine to the latest version of Mac OS X. After updating, install the latest version of XCode command line tools:
xcode-select --install
Going forward, we'll be using Homebrew to install dependencies: https://brew.sh/
Node: Currently, Superset works best with Node.js
version 16 and npm
version 7. If you've got a preferred version of node, I suggest using Node Version Manager (NVM).
nvm install 16
Python: Currently, Superset works best with Python version 3.9. We'll be using a Python virtual environment, so for now just install the Python version:
brew install python@3.9
Make sure to update pip
and setuptools
as well:
pip install --upgrade setuptools pip
Almost done, now we need the rest of the dependencies:
brew install readline pkg-config libffi openssl mysql postgresql@14
Set LDFLAGS and CFLAGS to allow certain Python packages to build properly. You can export the variables with these commands:
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CFLAGS="-I$(brew --prefix openssl)/include"
You will need to set a secret key in your superset_config.py
file for security reasons. Open superset in your favorite code editor and create a file called superset_config.py
in the root folder. In this file, set your secret key like this:
SECRET_KEY='insertSecurePasswordHere'
Python Virtual Environment
Now we can set up our Python virtual environment. Start by installing virtualenv
:
pip install virtualenv
cd
into wherever you've locally cloned your forked instance of Superset. Create a virtual environment with Python 3.9:
// Create a venv directory
python3.9 -m venv venv
// Open the virtual environment
. venv/bin/activate
You will need two terminal windows to run Superset, I like to use iTerm2's horizontal window stacking to keep my terminal windows together: https://iterm2.com/
Now it's time for the Makefile magic ✨
Make sure you're at the root file of Superset and in a virtual environment. Run this command to install Superset:
make install
That's it, you're installing Superset! This script will run for a bit, bring a snack.
Once the installation is complete, it's time to get things running. Boot up the back end with:
make flask-app
In a separate terminal window, once again make sure you're at the root file of Superset and in a virtual environment. Boot up the front end with:
make node-app
Once webpack finishes loading the app, go to localhost:9000
in your browser. You'll see a login screen, log in with these credentials:
Username: admin
Password: general
You're in! Welcome to Superset, enjoy your experience and feel free to contribute. It's open source!
Top comments (1)
I really liked the install steps and how thorough they are. One thing I noticed when looking over the Makefile referenced is they actually have a step to create a virtual environment and activate it much like the instructions you gave:
make venv
It checks the python versions you have from highest version to lowest and then creates a virtualenv for it (though you still have to install virtualenv for it to work). Though if you're using
pyenv
you'll still want to do it the way the instructions you linked to recommended. Thanks for the great article!