# Environment based configuration

You can store dedicated configurations per site within your project by adding an `expose.yml` to the root of your project directory. If you share the project from this folder via your command line with the `expose` or `herd share` command, Expose picks up the configuration and applies all parameters automatically.

This is super useful if your application uses webhooks and you want to make sure that everyone working on this project always uses the same configuration so that it just works.

## Local URL
The parameter `local-url` defines the local URL on your machine that you want to share. It tells Expose if you have HTTP or HTTPS sites, use an additional port, ec.

## Subdomain ::pro

The subdomain in the YAML file is the subdomain that you want to use when sharing the site. If there is no custom domain set up in your account, and you set the subdomain to `my-site`, it will be accessible at https://my-site.REGION-SERVER.sharedwithexpose.com.

## Custom Domain ::pro

You can add a custom domain to your Expose account and link it to an Expose cluster in a specific region. This allows you to use Expose completely white-label and be fully flexible on subdomains as they are not shared with anyone else in the cluster.

Please make sure to add and verify the domain before using it in an `expose.yml`

## Expose Server ::pro

Expose has servers on every content for best local performance in your region. You can select a server of our network from the official server list or simply stick to `free` to use our public server in our data center in Germany.

## Auth

In case that you want to secure your Expose tunnel with basic authentication, you can add a username and a password in the config to skip the additional parameter of the Expose client.

## Example

```yaml
local-url: https://beyondco.de.test/
subdomain: foo-bar-baz-2
custom-domain: share.idontcare.lol
expose-server: eu-1
auth:
  username: user
  password: pass
```
