(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{s0aW:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return c})),n.d(t,"default",(function(){return p}));var o=n("k1TG"),a=n("8o2o"),s=(n("q1tI"),n("7ljp")),r=n("hhGP"),c=(n("qKvR"),{});void 0!==c&&c&&c===Object(c)&&Object.isExtensible(c)&&!c.hasOwnProperty("__filemeta")&&Object.defineProperty(c,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/installation/index.mdx"}});var l={_frontmatter:c},i=r.a;function p(e){var t=e.components,n=Object(a.a)(e,["components"]);return Object(s.b)(i,Object(o.a)({},l,n,{components:t,mdxType:"MDXLayout"}),Object(s.b)("h2",{id:"installing-superset-locally-using-docker-compose"},"Installing Superset Locally Using Docker Compose"),Object(s.b)("p",null,"The fastest way to try Superset locally is using Docker and Docker Compose on a Linux or Mac OSX\ncomputer. Superset does not have official support for Windows, so we have provided a VM workaround\nbelow."),Object(s.b)("h3",{id:"1-install-a-docker-engine-and-docker-compose"},"1. Install a Docker Engine and Docker Compose"),Object(s.b)("p",null,Object(s.b)("strong",{parentName:"p"},"Mac OSX")),Object(s.b)("p",null,Object(s.b)("a",Object(o.a)({parentName:"p"},{href:"https://docs.docker.com/docker-for-mac/install/"}),"Install Docker for Mac"),", which includes the Docker\nengine and a recent version of ",Object(s.b)("inlineCode",{parentName:"p"},"docker-compose")," out of the box."),Object(s.b)("p",null,'Once you have Docker for Mac installed, open up the preferences pane for Docker, go to the\n"Resources" section and increase the allocated memory to 6GB. With only the 2GB of RAM allocated by\ndefault, Superset will fail to start.'),Object(s.b)("p",null,Object(s.b)("strong",{parentName:"p"},"Linux")),Object(s.b)("p",null,Object(s.b)("a",Object(o.a)({parentName:"p"},{href:"https://docs.docker.com/engine/install/"}),"Install Docker on Linux")," by following Docker’s\ninstructions for whichever flavor of Linux suits you. Because ",Object(s.b)("inlineCode",{parentName:"p"},"docker-compose")," is not installed as\npart of the base Docker installation on Linux, once you have a working engine, follow the\n",Object(s.b)("a",Object(o.a)({parentName:"p"},{href:"https://docs.docker.com/compose/install/"}),"docker-compose installation instructions")," for Linux."),Object(s.b)("p",null,Object(s.b)("strong",{parentName:"p"},"Windows")),Object(s.b)("p",null,"Superset is not officially supported on Windows unfortunately. The best option for Windows users to\ntry out Superset locally is to install an Ubuntu Desktop VM via\n",Object(s.b)("a",Object(o.a)({parentName:"p"},{href:"https://www.virtualbox.org/"}),"VirtualBox")," and proceed with the Docker on Linux instructions inside\nof that VM. We recommend assigning at least 8GB of RAM to the virtual machine as well as\nprovisioning a hard drive of at least 40GB, so that there will be enough space for both the OS and\nall of the required dependencies."),Object(s.b)("h3",{id:"2-clone-supersets-github-repository"},"2. Clone Superset's Github repository"),Object(s.b)("p",null,Object(s.b)("a",Object(o.a)({parentName:"p"},{href:"https://github.com/apache/superset"}),"Clone Superset's repo")," in your terminal with the\nfollowing command:"),Object(s.b)("pre",null,Object(s.b)("code",Object(o.a)({parentName:"pre"},{className:"language-bash"}),"$ git clone https://github.com/apache/superset.git\n")),Object(s.b)("p",null,"Once that command completes successfully, you should see a new ",Object(s.b)("inlineCode",{parentName:"p"},"superset")," folder in your\ncurrent directory."),Object(s.b)("h3",{id:"3-launch-superset-through-docker-compose"},"3. Launch Superset Through Docker Compose"),Object(s.b)("p",null,"Navigate to the folder you created in step 1:"),Object(s.b)("pre",null,Object(s.b)("code",Object(o.a)({parentName:"pre"},{className:"language-bash"}),"$ cd superset\n")),Object(s.b)("p",null,"We recommend that you check out and run the code from the last tagged release:"),Object(s.b)("pre",null,Object(s.b)("code",Object(o.a)({parentName:"pre"},{className:"language-bash"}),"$ git checkout latest\n")),Object(s.b)("p",null,"Then, run the following command:"),Object(s.b)("pre",null,Object(s.b)("code",Object(o.a)({parentName:"pre"},{className:"language-bash"}),"$ docker-compose -f docker-compose-non-dev.yml up\n")),Object(s.b)("p",null,"You should see a wall of logging output from the containers being launched on your machine. Once\nthis output slows, you should have a running instance of Superset on your local machine!"),Object(s.b)("p",null,Object(s.b)("strong",{parentName:"p"},"Note:")," this will bring up superset in a non-dev mode, changes to the codebase will not be reflected.\nIf you would like to run superset in dev mode, simply replace the previous command with:"),Object(s.b)("pre",null,Object(s.b)("code",Object(o.a)({parentName:"pre"},{className:"language-bash"}),"$ docker-compose up\n")),Object(s.b)("p",null,"and wait for the ",Object(s.b)("inlineCode",{parentName:"p"},"superset_node")," container to finish building the assets."),Object(s.b)("h3",{id:"4-log-in-to-superset"},"4. Log in to Superset"),Object(s.b)("p",null,"Your local Superset instance also includes a Postgres server to store your data and is already\npre-loaded with some example datasets that ship with Superset. You can access Superset now via your\nweb browser by visiting ",Object(s.b)("inlineCode",{parentName:"p"},"http://localhost:8088"),". Note that many browsers now default to ",Object(s.b)("inlineCode",{parentName:"p"},"https")," - if\nyours is one of them, please make sure it uses ",Object(s.b)("inlineCode",{parentName:"p"},"http"),"."),Object(s.b)("p",null,"Log in with the default username and password:"),Object(s.b)("pre",null,Object(s.b)("code",Object(o.a)({parentName:"pre"},{className:"language-bash"}),"username: admin\n")),Object(s.b)("pre",null,Object(s.b)("code",Object(o.a)({parentName:"pre"},{className:"language-bash"}),"password: admin\n")),Object(s.b)("p",null,"Congrats! You have successfully installed Superset! Click 'Next' to learn how to connect a database\ndriver."))}void 0!==p&&p&&p===Object(p)&&Object.isExtensible(p)&&!p.hasOwnProperty("__filemeta")&&Object.defineProperty(p,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/installation/index.mdx"}}),p.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-installation-index-mdx-371ad62fd44e0e6b8db5.js.map