> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open-metadata.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Server Configuration Reference | Official Documentation

> Configure your platform deployment using environmental settings, secret values, service parameters, and performance tuning options.

# Server Configuration Reference

This document describes OpenMetadata Server Configuration

```yaml theme={null}
swagger:
  resourcePackage: org.openmetadata.service.resources


server:
  rootPath: '/api/*'
  applicationConnectors:
    - type: http
      port: 8585
  adminConnectors:
    - type: http
      port: 8586

# Logging settings.
# https://logback.qos.ch/manual/layouts.html#conversionWord
logging:
  level: INFO
  loggers:
    org.openmetadata.service.common: DEBUG
    io.swagger: ERROR
  appenders:
    - type: file
      threshold: TRACE
      logFormat: "%level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %msg %n"
      currentLogFilename: ./logs/openmetadata.log
      archivedLogFilenamePattern: ./logs/openmetadata-%d{yyyy-MM-dd}-%i.log.gz
      archivedFileCount: 7
      timeZone: UTC
      maxFileSize: 50MB

database:
  # the name of the JDBC driver, mysql in our case
  driverClass: com.mysql.cj.jdbc.Driver
  # the username and password
  user: openmetadata_user
  password: openmetadata_password
  # the JDBC URL; the database is called openmetadata_db
  url: jdbc:mysql://localhost/openmetadata_db?useSSL=false&serverTimezone=UTC

elasticsearch:
  host: localhost
  port: 9200

eventHandlerConfiguration:
  eventHandlerClassNames:
    - "org.openmetadata.service.events.AuditEventHandler"

health:
  delayedShutdownHandlerEnabled: true
  shutdownWaitPeriod: 1s
  healthCheckUrlPaths: ["/api/v1/health-check"]
  healthChecks:
    - name: UserDatabaseCheck
      critical: true
      schedule:
        checkInterval: 2500ms
        downtimeInterval: 10s
        failureAttempts: 2
        successAttempts: 1
```

## Server Port

```yaml theme={null}
server:
  rootPath: '/api/*'
  applicationConnectors:
    - type: http
      port: 8585
  adminConnectors:
    - type: http
      port: 8586
```

By default, the OpenMetadata server runs on port 8585. It uses Jetty Server. The above config can be changed to make it
run on a different port. Once you have updated the port details in config restart the server.

## Database

OpenMetadata supports MySQL or Postgres as the database. The database configurations and connection strings must be as
specified below.

### MySQL Configuration

We recommend you create a MySQL user with a strong password and update this section accordingly.

| Parameter       | Description                 | Default Value                                                            |
| --------------- | --------------------------- | ------------------------------------------------------------------------ |
| **driverClass** | The name of the JDBC driver | `com.mysql.cj.jdbc.Driver`                                               |
| **user**        | MySQL database username     | `openmetadata_user`                                                      |
| **password**    | MySQL database password     | `openmetadata_password`                                                  |
| **url**         | JDBC URL connection string  | `jdbc:mysql://localhost/openmetadata_db?useSSL=false&serverTimezone=UTC` |

```yaml theme={null}
database:
  driverClass: com.mysql.cj.jdbc.Driver
  user: openmetadata_user
  password: openmetadata_password
  url: jdbc:mysql://localhost/openmetadata_db?useSSL=false&serverTimezone=UTC
```

### PostgreSQL Configuration

OpenMetadata uses stored generated columns which is supported in Postgres 12 and later. Ensure you have Postgres 12 or higher. We recommend you create a Postgres user with a strong password and update this section accordingly.

| Parameter       | Description                  | Default Value                                                                      |
| --------------- | ---------------------------- | ---------------------------------------------------------------------------------- |
| **driverClass** | The name of the JDBC driver  | `org.postgresql.Driver`                                                            |
| **user**        | PostgreSQL database username | `openmetadata_user`                                                                |
| **password**    | PostgreSQL database password | `openmetadata_password`                                                            |
| **url**         | JDBC URL connection string   | `jdbc:postgresql://localhost:5432/openmetadata_db?useSSL=false&serverTimezone=UTC` |

```yaml theme={null}
database:
  driverClass: org.postgresql.Driver
  user: openmetadata_user
  password: openmetadata_password
  url: jdbc:postgresql://localhost:5432/openmetadata_db?useSSL=false&serverTimezone=UTC
```

## ElasticSearch

```yaml theme={null}
elasticsearch:
  host: localhost
  port: 9200
```

ElasticSearch is one of the pre-requisites to run OpenMetadata. Default configuration expects a single instance of
ElasticSearch running on the local machine. Please make sure you update it with your production elastic search.

## Event Handlers

```yaml theme={null}
eventHandlerConfiguration:
  eventHandlerClassNames:
    - "org.openmetadata.service.events.AuditEventHandler"
```

EventHandler configuration is optional. It will update the AuditLog in MySQL DB and also ElasticSearch indexes whenever
any entity is updated either through UI or API interactions. We recommend you leave it there as it enhances the user
experience.

## Healthcheck

```yaml theme={null}
health:
  delayedShutdownHandlerEnabled: true
  shutdownWaitPeriod: 1s
  healthCheckUrlPaths: ["/api/v1/health-check"]
  healthChecks:
    - name: UserDatabaseCheck
      critical: true
      schedule:
        checkInterval: 2500ms
        downtimeInterval: 10s
        failureAttempts: 2
        successAttempts: 1
```

Healthcheck API provides an API endpoint to check the OpenMetadata server health. We recommend in production settings to
use this API to monitor the health of your OpenMetadata instance. Please tune the above configuration according to your
production needs.

## Security

Please follow our [Enable Security Guide](/v1.12.x/deployment/security) to configure security for your OpenMetadata installation.
