{"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-0a69dd2e2c6c8da264b3.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/evan/GitHub/incubator-superset_preset/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":""}