# Config Files

By default, Directus will read the `.env` file located next to your project's `package.json` for it's config. You can
change the path where this file is read from, including the filename, by setting the `CONFIG_PATH` environment variable before starting Directus.

For example: `CONFIG_PATH="/path/to/config.js" npx directus start`

The config file can be one of the following formats:

[[toc]]

::: tip Configuration Parameters

See [Environment Variables](/reference/environment/variables/) for an overview of all available environment variables.

:::

## .env

If the config path has no file extension, or a file extension that's not one of the other supported formats, Directus
will try reading the file config path as environment variables. This has the following structure:

```
PORT=8055

DB_CLIENT="pg"
DB_HOST="localhost"
DB_PORT=5432

etc
```

## config.json

If you prefer a single JSON file for all your configuration, create a JSON file with the environment variables as keys,
for example:

```
CONFIG_PATH="/path/to/config.json"
```

```json
{
	"PORT": 8055,

	"DB_CLIENT": "pg",
	"DB_HOST": "localhost",
	"DB_PORT": 5432

	// etc
}
```

## config.yaml

Similar to JSON, you can use a `.yaml` (or `.yml`) file for your config:

```
CONFIG_PATH="/path/to/config.yaml"
```

```yaml
PORT: 8055

DB_CLIENT: pg
DB_HOST: localhost
DB_PORT: 5432
#
# etc
```

## config.js

A JavaScript based configuration file allows for two different structures of configuration: an object or a function.
Using a JS file for your config allows you to dynamically generate the configuration of the project during startup.

### Object

Export the configuration object where the key is the environment variable name:

```js
module.exports = {
	PORT: 8055,

	DB_CLIENT: 'pg',
	DB_HOST: 'localhost',
	DB_PORT: 5432,

	// etc
};
```

### Function

Alternatively, you can provide a function that returns the above object. The function gets process.env as it's
parameter.

```js
module.exports = function (env) {
	return {
		PORT: 8055,

		DB_CLIENT: 'pg',
		DB_HOST: 'localhost',
		DB_PORT: 5432,

		// etc
	};
};
```
