# Clarity on config files

**URL:** <https://community.temporal.io/t/clarity-on-config-files/6835>\
**Category:** Community Support\
**Created:** [January 3, 2023, 9:39pm UTC](https://community.temporal.io/t/clarity-on-config-files/6835 "2023-01-03T21:39:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![RichRM](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/richrm/32/3640_2.png) [@RichRM](https://community.temporal.io/u/RichRM)\
**Post date:** [January 3, 2023, 9:39pm UTC](https://community.temporal.io/t/clarity-on-config-files/6835/1 "2023-01-03T21:39:36Z")

</div>

Hi all,

Ref this doc ([Temporal Server self-hosted production deployment | Temporal Documentation](https://docs.temporal.io/server/production-deployment#configuration)), is the foo.yml the same as development.yml referenced here ([Temporal Cluster configuration reference | Temporal Documentation](https://docs.temporal.io/references/configuration#persistence))?

i.e. when running a basic docker version, should I just be able to set the DYNAMIC\_CONFIG\_FILE\_PATH var to my config file, and that contains ALL the configuration?

It looks like that is not the case, and it’s picking up “docker.yaml” instead and trying to load my custom config as a superset of this? The docs are really unclear on how you’re supposed to get this all configured.

Is the “dynamic config” just the config, or is it something else?

Thanks for any tips!

---

<div class="post-metadata">

**Author:** ![tihomir](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/tihomir/32/6580_2.png) [@tihomir](https://community.temporal.io/u/tihomir)\
**Post date:** [January 3, 2023, 10:13pm UTC](https://community.temporal.io/t/clarity-on-config-files/6835/2 "2023-01-03T22:13:01Z")

</div>

Temporal server has two configs, static and dynamic config. Static config is read just once and used as config for service node container/pod startup (or in case of auto-setup image used for all 4 service roles that run within the same process in this case). Dynamic config on the other hand can be checked for updates (min 5s interval). This interval is configured in static config via `dynamicConfigClient` prop.  
You can think of static config as the “main” server config, where as dynamic config is a config that [contains values](https://github.com/temporalio/temporal/blob/master/common/dynamicconfig/constants.go) such as service role rps limits etc that can be updated while the cluster is up.

To make static config for server easier to work with as well as be able to use env vars for example in docker compose to set certain values, the server image has a default config template [here](https://github.com/temporalio/temporal/blob/master/docker/config_template.yaml).  
This template as you correctly mentioned does get parsed into “/etc/temporal/config/docker.yaml” as you can see in the server image entry point [here](https://github.com/temporalio/docker-builds/blob/main/docker/entrypoint.sh#L16).  
You do not have to use this default template if you don’t wish to and you can define your own, see example [here](https://github.com/tsurdilo/my-temporal-dockercompose/blob/main/template/my_config_template.yaml) and associated volume mapping in docker compose [here](https://github.com/tsurdilo/my-temporal-dockercompose/blob/main/docker-compose-services.yml#L53).

Dynamic config file path and poll interval can be configured in static config via [dynamicConfigClient](https://github.com/temporalio/temporal/blob/master/docker/config_template.yaml). It would contain values that can be updated during the life time of your cluster so you can fine-tune it when needed without having to restart it. If not defined it would be looked up at /etc/temporal/config/dynamicconfig/docker.yaml. To set a custom dynamic config you would need a volume mapping to a dir that could contain multiple dynamic configs as shown [here](https://github.com/temporalio/docker-compose/blob/main/docker-compose.yml#L55) and then you would pick which one to specifically apply via DYNAMIC\_CONFIG\_FILE\_PATH env var set in your static config.

Hope this helps, let me know if there are any other questions.

---

<div class="post-metadata">

**Author:** ![RichRM](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/richrm/32/3640_2.png) [@RichRM](https://community.temporal.io/u/RichRM)\
**Post date:** [January 3, 2023, 10:32pm UTC](https://community.temporal.io/t/clarity-on-config-files/6835/3 "2023-01-03T22:32:02Z")

</div>

That helps! Thank you!
