Learn how to run the OpenMetadata server in development mode by using Docker and IntelliJ.
## Prerequisites
- Make sure you have a local instance of MySQL and ElasticSearch.
- For an easy install of MySQL and ES, just install Docker on your local machine and run the following commands from the top-level directory
```shell
docker-compose -f docker/local-metadata/docker-compose-dev.yml up
```
- Bootstrap MySQL with tables
1. Create a distribution as explained [here](/developers/contribute/build-code-and-run-tests/openmetadata-server#create-a-distribution-packaging)
2. Extract the distribution tar.gz file and run the following command
```shell
cd open-metadata-<version>/bootstrap
sh bootstrap_storage.sh drop-create-all
```
- Bootstrap ES with indexes and load sample data into MySQL
1. Run OpenMetadata service instances through IntelliJ IDEA following the instructions [here](/developers/contribute/build-code-and-run-tests/openmetadata-server#run-instance-through-intellij-idea)
2. Once the logs indicate that the instance is up, run the following commands from the top-level directory
- You are now ready to explore the app by going to [http://localhost:8585](http://localhost:8585) *If the web page doesn't work as intended, please take a look at the troubleshooting steps [here](/developers/contribute/build-code-and-run-tests/openmetadata-server#troubleshooting)
## Building
The following commands must be run from the top-level directory.
```shell
mvn clean install
```
If you wish to skip the unit tests you can do this by adding `-DskipTests` to the command line.
Select it and click "OK". Now run/debug the application.
## Troubleshooting
- If you see blank page at [http://localhost:8585](http://localhost:8585), please check the logs at logs/openmetadata.log. You might be encountering one of the following errors:
-`connection refused` or `unreachable` - please confirm that MySQL and ES are reachable outside of docker by running `docker ps` and checking that ports 3306 and 9200 are listening on 0.0.0.0
- If ElasticSearch in Docker on Mac is crashing, try changing Preferences -> Resources -> Memory to 4GB
- If ElasticSearch logs show `high disk watermark [90%] exceeded`, try changing Preferences -> Resources -> Disk Image Size to at least 16GB
-`Public Key Retrieval is not allowed` - verify that the JDBC connect URL in `conf/openmetadata.yaml` is configured with the parameter `allowPublicKeyRetrieval=true `
- Browser console shows javascript errors, try doing a [clean build](/developers/contribute/build-code-and-run-tests/openmetadata-server#create-a-distribution-packaging). Some npm packages may not have been built properly.
## Coding Style
1. Configure IntelliJ to disable the [wild-card imports]