{"version":3,"sources":["webpack:///./src/pages/docs/installation/index.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,uNAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,iBAAQ,CACN,GAAM,oDADR,oDAGA,qOAGA,iBAAQ,CACN,GAAM,gDADR,iDAGA,qBAAG,qBAAY,CACX,WAAc,KADf,YAGH,qBAAG,gBAAO,CACN,KAAQ,kDACR,WAAc,KAFf,0BAAH,+DAME,yBAAgB,CACd,WAAc,KADhB,kBANF,oBAUA,+PAGA,qBAAG,qBAAY,CACX,WAAc,KADf,UAGH,qBAAG,gBAAO,CACN,KAAQ,0CACR,WAAc,KAFf,2BAAH,yFAME,yBAAgB,CACd,WAAc,KADhB,kBANF,oHAYE,gBAAO,CACL,KAAQ,2CACR,WAAc,KAFhB,4CAZF,eAiBA,qBAAG,qBAAY,CACX,WAAc,KADf,YAGH,8LAGE,gBAAO,CACL,KAAQ,8BACR,WAAc,KAFhB,cAHF,8RAWA,iBAAQ,CACN,GAAM,uCADR,yCAGA,qBAAG,gBAAO,CACN,KAAQ,+CACR,WAAc,KAFf,yBAAH,kDAMA,uBAAK,mBAAU,CACX,UAAa,gBACb,WAAc,OAFb,mEAKL,uFACE,yBAAgB,CACd,WAAc,KADhB,sBADF,uCAMA,iBAAQ,CACN,GAAM,4CADR,6CAGA,sEACA,uBAAK,mBAAU,CACX,UAAa,gBACb,WAAc,OAFb,8BAKL,yDACA,uBAAK,mBAAU,CACX,UAAa,gBACb,WAAc,OAFb,0BAKL,mNAEA,iBAAQ,CACN,GAAM,uBADR,wBAGA,qPAGE,yBAAgB,CACd,WAAc,KADhB,yBAHF,4CAOE,yBAAgB,CACd,WAAc,KADhB,SAPF,yDAYE,yBAAgB,CACd,WAAc,KADhB,QAZF,KAgBA,uEACA,uBAAK,mBAAU,CACX,UAAa,gBACb,WAAc,OAFb,sBAKL,uBAAK,mBAAU,CACX,UAAa,gBACb,WAAc,OAFb,sBAKL,2I,qNAMJH,EAAWI,gBAAiB","file":"component---src-pages-docs-installation-index-mdx-adacd377365c564204c2.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"installing-superset-locally-using-docker-compose\"\n    }}>{`Installing Superset Locally Using Docker Compose`}</h2>\n    <p>{`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.`}</p>\n    <h3 {...{\n      \"id\": \"1-install-a-docker-engine-and-docker-compose\"\n    }}>{`1. Install a Docker Engine and Docker Compose`}</h3>\n    <p><strong {...{\n        \"parentName\": \"p\"\n      }}>{`Mac OSX`}</strong></p>\n    <p><a {...{\n        \"href\": \"https://docs.docker.com/docker-for-mac/install/\",\n        \"parentName\": \"p\"\n      }}>{`Install Docker for Mac`}</a>\n      {`, which includes the Docker\nengine and a recent version of `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`docker-compose`}</inlineCode>\n      {` out of the box.`}</p>\n    <p>{`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.`}</p>\n    <p><strong {...{\n        \"parentName\": \"p\"\n      }}>{`Linux`}</strong></p>\n    <p><a {...{\n        \"href\": \"https://docs.docker.com/engine/install/\",\n        \"parentName\": \"p\"\n      }}>{`Install Docker on Linux`}</a>\n      {` by following Docker’s\ninstructions for whichever flavor of Linux suits you. Because `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`docker-compose`}</inlineCode>\n      {` is not installed as\npart of the base Docker installation on Linux, once you have a working engine, follow the\n`}\n      <a {...{\n        \"href\": \"https://docs.docker.com/compose/install/\",\n        \"parentName\": \"p\"\n      }}>{`docker-compose installation instructions`}</a>\n      {` for Linux.`}</p>\n    <p><strong {...{\n        \"parentName\": \"p\"\n      }}>{`Windows`}</strong></p>\n    <p>{`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`}\n      <a {...{\n        \"href\": \"https://www.virtualbox.org/\",\n        \"parentName\": \"p\"\n      }}>{`VirtualBox`}</a>\n      {` 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.`}</p>\n    <h3 {...{\n      \"id\": \"2-clone-supersets-github-repository\"\n    }}>{`2. Clone Superset's Github repository`}</h3>\n    <p><a {...{\n        \"href\": \"https://github.com/apache/incubator-superset\",\n        \"parentName\": \"p\"\n      }}>{`Clone Superset's repo`}</a>\n      {` in your terminal with the\nfollowing command:`}</p>\n    <pre><code {...{\n        \"className\": \"language-bash\",\n        \"parentName\": \"pre\"\n      }}>{`$ git clone https://github.com/apache/incubator-superset.git\n`}</code></pre>\n    <p>{`Once that command completes successfully, you should see a new `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`incubator-superset`}</inlineCode>\n      {` folder in your\ncurrent directory.`}</p>\n    <h3 {...{\n      \"id\": \"3-launch-superset-through-docker-compose\"\n    }}>{`3. Launch Superset Through Docker Compose`}</h3>\n    <p>{`Navigate to the folder you created in step 1:`}</p>\n    <pre><code {...{\n        \"className\": \"language-bash\",\n        \"parentName\": \"pre\"\n      }}>{`$ cd incubator-superset\n`}</code></pre>\n    <p>{`Then, run the following command:`}</p>\n    <pre><code {...{\n        \"className\": \"language-bash\",\n        \"parentName\": \"pre\"\n      }}>{`$ docker-compose up\n`}</code></pre>\n    <p>{`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!`}</p>\n    <h3 {...{\n      \"id\": \"4-login-to-superset\"\n    }}>{`4. Login to Superset`}</h3>\n    <p>{`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 `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`http://localhost:8088`}</inlineCode>\n      {`. Note that many browsers now default to `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`https`}</inlineCode>\n      {` - if\nyours is one of them, please make sure it uses `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`http`}</inlineCode>\n      {`.`}</p>\n    <p>{`Log in with the default username and password:`}</p>\n    <pre><code {...{\n        \"className\": \"language-bash\",\n        \"parentName\": \"pre\"\n      }}>{`username: admin\n`}</code></pre>\n    <pre><code {...{\n        \"className\": \"language-bash\",\n        \"parentName\": \"pre\"\n      }}>{`password: admin\n`}</code></pre>\n    <p>{`Congrats! You have successfully installed Superset! Click 'Next' to learn how to connect a database\ndriver.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}