OpenMetadata Server
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
- For an easy install of PostgreSQL and ES, just install Docker on your local machine and run the following commands from the top-level directory
- Bootstrap MySQL with tables
- Create a distribution as explained here
- Extract the distribution tar.gz file and run the following command
- Bootstrap ES with indexes and load sample data into MySQL
- Run OpenMetadata service instances through IntelliJ IDEA following the instructions here
- 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 *If the web page doesn't work as intended, please take a look at the troubleshooting steps here
Building
The following commands must be run from the top-level directory.
If you wish to skip the unit tests you can do this by adding -DskipTests
to the command line.
Create a distribution (packaging)
You can create a distribution as follows.
The binaries will be created at:
Run instance through IntelliJ IDEA
Add a new Run/Debug configuration like the below screenshot.
- Click on Intellij - Run menu
- Click on "Edit Configurations"
- Click + sign and Select Application and make sure your config looks similar to the below image

Intellij Runtime Configuration
Add missing dependency
Right-click on openmetadata-service

Click on "Open Module Settings"

Go to "Dependencies"

Click “+” at the bottom of the dialog box and click "Add"

Click on Library

In that list look for "jersey-client:2.25.1"

Select it and click "OK".
We also need to set the folder ‘generated-resources’ in some module’s target folder as “source” folder. IntelliJ IDEA mark target folder as "excluded" by default, we could change it in the module setting. The openmetadata-spec and openmetadata-java-client modules have generated code, need to be changed.
Now run/debug the application.
Troubleshooting
- If you see blank page at http://localhost:8585, please check the logs at logs/openmetadata.log. You might be encountering one of the following errors:
connection refused
orunreachable
- please confirm that MySQL and ES are reachable outside of docker by runningdocker 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 inconf/openmetadata.yaml
is configured with the parameterallowPublicKeyRetrieval=true
- Browser console shows javascript errors, try doing a clean build. Some npm packages may not have been built properly.
Coding Style
- Configure IntelliJ to disable the [wild-card imports] (https://www.jetbrains.com/help/idea/creating-and-optimizing-imports.html#disable-wildcard-imports)