Development Environment Setup
OpenMetadata provides Dev Containers to streamline contributor onboarding. Instead of manually installing Java, Python, Node.js, Maven, ANTLR, and other dependencies, you can spin up a fully configured environment in minutes.Choose Your Dev Container
Two configurations are available under.devcontainer/ in the repository:
Development
Lightweight environment for iterative development. Includes all build tools (Java 21, Python 3.11, Node 22, Maven, ANTLR) without running backend services.Best for: Working on individual components — server code, ingestion framework, or UI.Forwarded ports:
3000— Frontend dev server
Full Stack
Complete environment with all build tools plus OpenMetadata services running in containers (MySQL, Elasticsearch, OpenMetadata Server).Best for: End-to-end testing, integration work, and verifying changes against a running instance.Forwarded ports:
3000— Frontend dev server8585— OpenMetadata API8586— OpenMetadata Admin9200— Elasticsearch3306— MySQL
Both configurations automatically install all prerequisites — no manual dependency setup required.
VS Code
1
Install the Dev Containers extension
Install the Dev Containers extension from the VS Code marketplace.
2
Open the repository
Open the forked OpenMetadata repository in VS Code.
3
Reopen in container
Open the Command Palette (
Ctrl+Shift+P / Cmd+Shift+P) and select Dev Containers: Reopen in Container.VS Code will prompt you to choose between the two configurations:- Development — lightweight, no backend services
- Full Stack — includes MySQL, Elasticsearch, and OpenMetadata Server
4
Wait for setup to complete
The container will build and run the post-create setup script automatically. This installs ANTLR, frontend dependencies, creates a Python virtual environment, and runs code generation.For the Full Stack configuration, the post-start script will additionally build the server, run database migrations, and start OpenMetadata services. This may take several minutes on the first run.
5
Start developing
Once setup completes, the integrated terminal is ready. Common commands:
IntelliJ IDEA
Dev Container support in IntelliJ IDEA requires IntelliJ IDEA Ultimate. The Community edition does not support Dev Containers.
1
Open the repository
Open the cloned OpenMetadata repository in IntelliJ IDEA.
2
Create a Dev Container
Navigate to File > Remote Development > Dev Containers and click New Dev Container.Select the OpenMetadata project directory and choose either the Development or Full Stack configuration.
3
Wait for setup to complete
IntelliJ will build the container and run the setup scripts. Once complete, IntelliJ will open a remote IDE instance connected to the container.
4
Configure the project SDK
IntelliJ should auto-detect the Java 21 SDK inside the container. If not, go to File > Project Structure > SDKs and add the JDK installed in the container.
5
Start developing
Use the IntelliJ terminal or run configurations as usual. The container has all build tools pre-installed.
GitHub Codespaces
GitHub Codespaces provides a cloud-hosted Dev Container — no local setup required.1
Open a Codespace
From your forked OpenMetadata repository on GitHub, click the Code button and select the Codespaces tab. Click New codespace.
2
Wait for the environment to build
GitHub will provision a cloud VM, build the container, and run the setup scripts. You can follow the progress in the Creation Log.
3
Start developing
Once the Codespace is ready, you’ll have a full VS Code editor in your browser (or you can connect from your local VS Code / IntelliJ via the Codespaces extension).All forwarded ports are automatically available. For the Full Stack configuration, access the OpenMetadata UI at the forwarded port
8585.What Gets Installed
The post-create setup script runs automatically in all environments and handles:- ANTLR 4.9.2 — Downloaded and configured for parser generation
- Frontend dependencies — Installed via
yarn install --frozen-lockfile - Python virtual environment — Created with pip upgraded
- Python dev dependencies — Installed via
make install_dev - Code generation — ANTLR parsers and other generated artifacts via
make generate - Prerequisite validation — Runs
make prerequisitesto confirm everything is ready
- Builds the OpenMetadata server distribution (
mvn clean package -DskipTests) - Runs database migrations against MySQL
- Starts the OpenMetadata server on ports
8585/8586
Next Steps
Build Code and Run Tests
Learn how to build individual components and run the test suite.
Develop a New Connector
Step-by-step guide to creating a new metadata connector.