{"version":3,"sources":["webpack:///./src/pages/docs/installation/index.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"wPAQaA,G,UAAe,S,uNAC5B,IAAMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAG5E,iBAAQ,CACN,GAAM,oDADR,oDAGA,qOAGA,iBAAQ,CACN,GAAM,gDADR,iDAGA,qBAAG,sBAAQC,WAAW,KAAnB,YACH,qBAAG,6BAAGA,WAAW,KAAQ,CACrB,KAAQ,oDADT,0BAAH,+DAG6B,0BAAYA,WAAW,KAAvB,kBAH7B,oBAIA,+PAGA,qBAAG,sBAAQA,WAAW,KAAnB,UACH,qBAAG,6BAAGA,WAAW,KAAQ,CACrB,KAAQ,4CADT,2BAAH,yFAG4D,0BAAYA,WAAW,KAAvB,kBAH5D,oHAKF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,6CADd,4CALE,eAQA,qBAAG,sBAAQA,WAAW,KAAnB,YACH,8LAEF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,gCADd,cAFE,8RAQA,iBAAQ,CACN,GAAM,uCADR,yCAGA,qBAAG,6BAAGA,WAAW,KAAQ,CACrB,KAAQ,uCADT,yBAAH,kDAIA,uBAAK,gCAAMA,WAAW,OAAU,CAC5B,UAAa,kBADZ,yDAIL,uFAAsE,0BAAYA,WAAW,KAAvB,YAAtE,uCAEA,iBAAQ,CACN,GAAM,4CADR,6CAGA,sEACA,uBAAK,gCAAMA,WAAW,OAAU,CAC5B,UAAa,kBADZ,oBAIL,uGACA,uBAAK,gCAAMA,WAAW,OAAU,CAC5B,UAAa,kBADZ,4BAIL,yDACA,uBAAK,gCAAMA,WAAW,OAAU,CAC5B,UAAa,kBADZ,wDAIL,mNAEA,qBAAG,sBAAQA,WAAW,KAAnB,SAAH,4LAEA,uBAAK,gCAAMA,WAAW,OAAU,CAC5B,UAAa,kBADZ,0BAIL,yCAAwB,0BAAYA,WAAW,KAAvB,iBAAxB,6CACA,iBAAQ,CACN,GAAM,wBADR,yBAGA,qPAEsB,0BAAYA,WAAW,KAAvB,yBAFtB,4CAEoI,0BAAYA,WAAW,KAAvB,SAFpI,yDAG6C,0BAAYA,WAAW,KAAvB,QAH7C,KAIA,uEACA,uBAAK,gCAAMA,WAAW,OAAU,CAC5B,UAAa,kBADZ,sBAIL,uBAAK,gCAAMA,WAAW,OAAU,CAC5B,UAAa,kBADZ,sBAIL,2I,qNAMJJ,EAAWK,gBAAiB","file":"component---src-pages-docs-installation-index-mdx-371ad62fd44e0e6b8db5.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\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\n\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 parentName=\"p\">{`Mac OSX`}</strong></p>\n    <p><a parentName=\"p\" {...{\n        \"href\": \"https://docs.docker.com/docker-for-mac/install/\"\n      }}>{`Install Docker for Mac`}</a>{`, which includes the Docker\nengine and a recent version of `}<inlineCode parentName=\"p\">{`docker-compose`}</inlineCode>{` 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 parentName=\"p\">{`Linux`}</strong></p>\n    <p><a parentName=\"p\" {...{\n        \"href\": \"https://docs.docker.com/engine/install/\"\n      }}>{`Install Docker on Linux`}</a>{` by following Docker’s\ninstructions for whichever flavor of Linux suits you. Because `}<inlineCode parentName=\"p\">{`docker-compose`}</inlineCode>{` is not installed as\npart of the base Docker installation on Linux, once you have a working engine, follow the\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://docs.docker.com/compose/install/\"\n      }}>{`docker-compose installation instructions`}</a>{` for Linux.`}</p>\n    <p><strong parentName=\"p\">{`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`}<a parentName=\"p\" {...{\n        \"href\": \"https://www.virtualbox.org/\"\n      }}>{`VirtualBox`}</a>{` 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 parentName=\"p\" {...{\n        \"href\": \"https://github.com/apache/superset\"\n      }}>{`Clone Superset's repo`}</a>{` in your terminal with the\nfollowing command:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-bash\"\n      }}>{`$ git clone https://github.com/apache/superset.git\n`}</code></pre>\n    <p>{`Once that command completes successfully, you should see a new `}<inlineCode parentName=\"p\">{`superset`}</inlineCode>{` 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 parentName=\"pre\" {...{\n        \"className\": \"language-bash\"\n      }}>{`$ cd superset\n`}</code></pre>\n    <p>{`We recommend that you check out and run the code from the last tagged release:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-bash\"\n      }}>{`$ git checkout latest\n`}</code></pre>\n    <p>{`Then, run the following command:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-bash\"\n      }}>{`$ docker-compose -f docker-compose-non-dev.yml 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    <p><strong parentName=\"p\">{`Note:`}</strong>{` 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:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-bash\"\n      }}>{`$ docker-compose up\n`}</code></pre>\n    <p>{`and wait for the `}<inlineCode parentName=\"p\">{`superset_node`}</inlineCode>{` container to finish building the assets.`}</p>\n    <h3 {...{\n      \"id\": \"4-log-in-to-superset\"\n    }}>{`4. Log in 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 `}<inlineCode parentName=\"p\">{`http://localhost:8088`}</inlineCode>{`. Note that many browsers now default to `}<inlineCode parentName=\"p\">{`https`}</inlineCode>{` - if\nyours is one of them, please make sure it uses `}<inlineCode parentName=\"p\">{`http`}</inlineCode>{`.`}</p>\n    <p>{`Log in with the default username and password:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-bash\"\n      }}>{`username: admin\n`}</code></pre>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-bash\"\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":""}