(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{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)("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)("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,"Then, run the following command:"),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,"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)("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-7bb5ef6b4a63fb1a10d8.js.map