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
Install the Dev Containers extension
Install the Dev Containers extension from the VS Code marketplace.
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
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.
IntelliJ IDEA
Dev Container support in IntelliJ IDEA requires IntelliJ IDEA Ultimate. The Community edition does not support Dev Containers.
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.
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.
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.
GitHub Codespaces
GitHub Codespaces provides a cloud-hosted Dev Container — no local setup required.Open a Codespace
From your forked OpenMetadata repository on GitHub, click the Code button and select the Codespaces tab. Click New codespace.
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.
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.