# Self-managed CoordinatorDB

A self-managed CoordinatorDB server runs as a local executable. It opens a persistent database and exposes authenticated native TCP and, optionally, HTTP.

## Before starting

Install the executable and prepare the supplied XML files using the [installation guide](https://coordinatordb.com/docs/get-started/setup/install). The server requires an existing configuration and credentials file.

Decide which host and ports the listeners should use, which users can connect, and where the database file should live. The sample configuration binds native TCP on `127.0.0.1:7400` and HTTP on port `7401`.

## Files and paths

`config.xml` configures the service and references its users file. `users.xml` declares explicit usernames, passwords and optional HTTP API keys. The sample `default` user has an empty password.

`--config-file PATH` selects the configuration. `--db PATH` selects the database independently of that configuration's directory. Without a database override, the default is `data.db` beside the executable.

## Clients and state

Use the supplied native client for sessions that retain transactions, temporary tables and database selection. Use HTTP for independent authenticated requests and the browser Playground.

Several applications should connect to the same server process. Do not open one database file simultaneously from separate processes.

## Configuration reference

Read [configuration files](https://coordinatordb.com/docs/concepts/features/configuration/server-config/configuration-files) for concrete XML examples, [network ports](https://coordinatordb.com/docs/concepts/features/security/network-ports) for address overrides, and [settings](https://coordinatordb.com/docs/reference/settings) for database settings and server ceilings.
