# ODB configuration

The SQLite database that stores the configuration of a Zato environment.

The ODB (operational database) stores the configuration of a Zato environment - servers, services, channels, security definitions and other objects. Each environment has its own ODB and it runs on SQLite.

## Where the database lives {#where-the-database-lives}

The ODB is one SQLite file inside the environment's directory. The `zato quickstart` command creates it as `zato.db` at the top level of the environment, next to the `server1` and `web-admin` directories, and the `--odb-path` option sets a different location:

```bash
zato quickstart ~/env/qs-1 --odb-path /opt/zato/data/zato.db
```

The server and the Dashboard of the environment read the same file. The `server.conf` of each server records the path in its `[odb]` stanza, and `web-admin.conf` records it as `DATABASE_NAME`.

## Containers {#containers}

The container creates the ODB inside itself at each start and restores the configuration from the project's [enmasse](https://zato.io/docs/admin/enmasse.html) YAML. Objects created in the Dashboard and not exported to enmasse are lost when the container restarts, so the enmasse YAML in Git, not the ODB, is where the configuration of an environment is kept. [Backup](https://zato.io/docs/admin/backup.html) describes what this means for backups and restores.

## See also {#see-also}

- [Backup](https://zato.io/docs/admin/backup.html) - What to back up when the configuration lives in Git
- [Enmasse](https://zato.io/docs/admin/enmasse.html) - The YAML export that recreates the ODB contents at each start
- [Audit log](https://zato.io/docs/admin/audit-log/index.html) - The separate database that records API traffic

## Learn more {#learn-more}

- [Production best practices](https://zato.io/docs/admin/production-best-practices.html) - What to configure before an environment takes real traffic
- [Audit log](https://zato.io/docs/admin/audit-log/) - Every request, response and error, and what you can do with them afterwards
- [Health checks](https://zato.io/docs/admin/health-checks.html) - Have Zato ping your outgoing connections instead of waiting for traffic to fail
- [Logging](https://zato.io/docs/admin/logging.html) - What is written where, and how to ship it to Splunk, Loki, Elastic or Datadog
- [GitOps with enmasse](https://zato.io/docs/admin/enmasse.html) - Keep the whole environment in git as YAML and import it anywhere
