{"version":3,"sources":["webpack:///./src/pages/docs/installation/index.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,uNAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,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-44159835bc52a38b770a.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 layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...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":""}