"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[7052],{95788:(e,n,t)=>{t.d(n,{Iu:()=>u,yg:()=>g});var a=t(11504);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),p=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=p(e.components);return a.createElement(s.Provider,{value:n},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=p(t),y=r,g=d["".concat(s,".").concat(y)]||d[y]||c[y]||i;return t?a.createElement(g,l(l({ref:n},u),{},{components:t})):a.createElement(g,l({ref:n},u))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=y;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[d]="string"==typeof e?e:r,l[1]=o;for(var p=2;p<i;p++)l[p]=t[p];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}y.displayName="MDXCreateElement"},1864:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var a=t(86404),r=(t(11504),t(95788));const i={title:"Installing From Scratch",hide_title:!0,sidebar_position:2,version:1},l=void 0,o={unversionedId:"installation/installing-superset-from-scratch",id:"installation/installing-superset-from-scratch",title:"Installing From Scratch",description:"Installing Superset from Scratch",source:"@site/docs/installation/installing-superset-from-scratch.mdx",sourceDirName:"installation",slug:"/installation/installing-superset-from-scratch",permalink:"/docs/installation/installing-superset-from-scratch",draft:!1,editUrl:"https://github.com/apache/superset/edit/master/docs/docs/installation/installing-superset-from-scratch.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Installing From Scratch",hide_title:!0,sidebar_position:2,version:1},sidebar:"tutorialSidebar",previous:{title:"Installing Locally Using Docker Compose",permalink:"/docs/installation/installing-superset-using-docker-compose"},next:{title:"Installing on Kubernetes",permalink:"/docs/installation/running-on-kubernetes"}},s={},p=[{value:"Installing Superset from Scratch",id:"installing-superset-from-scratch",level:2},{value:"OS Dependencies",id:"os-dependencies",level:3},{value:"Python Virtual Environment",id:"python-virtual-environment",level:3},{value:"Installing and Initializing Superset",id:"installing-and-initializing-superset",level:3}],u={toc:p},d="wrapper";function c(e){let{components:n,...t}=e;return(0,r.yg)(d,(0,a.c)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"installing-superset-from-scratch"},"Installing Superset from Scratch"),(0,r.yg)("h3",{id:"os-dependencies"},"OS Dependencies"),(0,r.yg)("p",null,"Superset stores database connection information in its metadata database. For that purpose, we use\nthe cryptography Python library to encrypt connection passwords. Unfortunately, this library has OS\nlevel dependencies."),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Debian and Ubuntu")),(0,r.yg)("p",null,"The following command will ensure that the required dependencies are installed:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev\n")),(0,r.yg)("p",null,"In Ubuntu 20.04 the following command will ensure that the required dependencies are installed:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev\n")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Fedora and RHEL-derivative Linux distributions")),(0,r.yg)("p",null,"Install the following packages using the ",(0,r.yg)("inlineCode",{parentName:"p"},"yum")," package manager:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel\n")),(0,r.yg)("p",null,"In more recent versions of CentOS and Fedora, you may need to install a slightly different set of packages using ",(0,r.yg)("inlineCode",{parentName:"p"},"dnf"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"sudo dnf install gcc gcc-c++ libffi-devel python3-devel python3-pip python3-wheel openssl-devel cyrus-sasl-devel openldap-devel\n")),(0,r.yg)("p",null,"Also, on CentOS, you may need to upgrade pip for the install to work:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"pip3 install --upgrade pip\n")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Mac OS X")),(0,r.yg)("p",null,"If you're not on the latest version of OS X, we recommend upgrading because we've found that many\nissues people have run into are linked to older versions of Mac OS X. After updating, install the\nlatest version of XCode command line tools:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"xcode-select --install\n")),(0,r.yg)("p",null,"We don't recommend using the system installed Python. Instead, first install the\n",(0,r.yg)("a",{parentName:"p",href:"https://brew.sh/"},"homebrew")," manager and then run the following commands:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"brew install readline pkg-config libffi openssl mysql postgresql@14\n")),(0,r.yg)("p",null,"You should install a recent version of Python. Refer to the ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/apache/superset/blob/master/setup.py"},"setup.py")," file for a list of Python versions officially supported by Superset. We'd recommend using a Python version manager like ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/pyenv/pyenv"},"pyenv")," (and also ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/pyenv/pyenv-virtualenv"},"pyenv-virtualenv"),")."),(0,r.yg)("admonition",{type:"tip"},(0,r.yg)("p",{parentName:"admonition"},"To identify the Python version used by the official docker image, see the ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/apache/superset/blob/master/Dockerfile"},"Dockerfile"),". Additional docker images published for newer versions of Python can be found in ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/apache/superset/blob/master/scripts/build_docker.py"},"this file"),".")),(0,r.yg)("p",null,"Let's also make sure we have the latest version of ",(0,r.yg)("inlineCode",{parentName:"p"},"pip")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"setuptools"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"pip install --upgrade setuptools pip\n")),(0,r.yg)("p",null,"Lastly, you may need to set LDFLAGS and CFLAGS for certain Python packages to properly build. You can export these variables with:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},'export LDFLAGS="-L$(brew --prefix openssl)/lib"\nexport CFLAGS="-I$(brew --prefix openssl)/include"\n')),(0,r.yg)("p",null,"These will now be available when pip installing requirements."),(0,r.yg)("h3",{id:"python-virtual-environment"},"Python Virtual Environment"),(0,r.yg)("p",null,"We highly recommend installing Superset inside of a virtual environment. Python ships with\n",(0,r.yg)("inlineCode",{parentName:"p"},"virtualenv")," out of the box. If you're using ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/pyenv/pyenv"},"pyenv"),", you can install ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/pyenv/pyenv-virtualenv"},"pyenv-virtualenv"),". Or you can install it with ",(0,r.yg)("inlineCode",{parentName:"p"},"pip"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"pip install virtualenv\n")),(0,r.yg)("p",null,"You can create and activate a virtual environment using:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"# virtualenv is shipped in Python 3.6+ as venv instead of pyvenv.\n# See https://docs.python.org/3.6/library/venv.html\npython3 -m venv venv\n. venv/bin/activate\n")),(0,r.yg)("p",null,"Or with pyenv-virtualenv:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"# Here we name the virtual env 'superset'\npyenv virtualenv superset\npyenv activate superset\n")),(0,r.yg)("p",null,"Once you activated your virtual environment, all of the Python packages you install or uninstall\nwill be confined to this environment. You can exit the environment by running ",(0,r.yg)("inlineCode",{parentName:"p"},"deactivate")," on the\ncommand line."),(0,r.yg)("h3",{id:"installing-and-initializing-superset"},"Installing and Initializing Superset"),(0,r.yg)("p",null,"First, start by installing ",(0,r.yg)("inlineCode",{parentName:"p"},"apache-superset"),":"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"pip install apache-superset\n")),(0,r.yg)("p",null,"Then, you need to initialize the database:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"superset db upgrade\n")),(0,r.yg)("admonition",{type:"tip"},(0,r.yg)("p",{parentName:"admonition"},"Note that some configuration is mandatory for production instances of Superset. In particular, Superset will not start without a user-specified value of SECRET_KEY. Please see ",(0,r.yg)("a",{parentName:"p",href:"/docs/installation/configuring-superset"},"Configuring Superset"),".")),(0,r.yg)("p",null,"Finish installing by running through the following commands:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"# Create an admin user in your metadata database (use `admin` as username to be able to load the examples)\nexport FLASK_APP=superset\nsuperset fab create-admin\n\n# Load some data to play with\nsuperset load_examples\n\n# Create default roles and permissions\nsuperset init\n\n# To start a development web server on port 8088, use -p to bind to another port\nsuperset run -p 8088 --with-threads --reload --debugger\n")),(0,r.yg)("p",null,"If everything worked, you should be able to navigate to ",(0,r.yg)("inlineCode",{parentName:"p"},"hostname:port")," in your browser (e.g.\nlocally by default at ",(0,r.yg)("inlineCode",{parentName:"p"},"localhost:8088"),") and login using the username and password you created."))}c.isMDXComponent=!0}}]);