summaryrefslogtreecommitdiff
path: root/docs/content/en/configuration/methods/files.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/configuration/methods/files.md')
-rw-r--r--docs/content/en/configuration/methods/files.md112
1 files changed, 112 insertions, 0 deletions
diff --git a/docs/content/en/configuration/methods/files.md b/docs/content/en/configuration/methods/files.md
new file mode 100644
index 000000000..7e02b2bd5
--- /dev/null
+++ b/docs/content/en/configuration/methods/files.md
@@ -0,0 +1,112 @@
+---
+title: "Files"
+description: "Using the YAML File Configuration Method."
+lead: "Authelia can be configured via files. This section describes utilizing this method."
+date: 2022-03-20T12:52:27+11:00
+draft: false
+images: []
+menu:
+ configuration:
+ parent: "methods"
+weight: 101200
+toc: true
+---
+
+*Authelia* loads `configuration.yml` as the configuration if you just run it. You can override this behaviour with the
+following syntax:
+
+```bash
+authelia --config config.custom.yml
+```
+
+## Multiple Configuration Files
+
+You can have multiple configuration files which will be merged in the order specified. If duplicate keys are specified
+the last one to be specified is the one that takes precedence. Example:
+
+```bash
+authelia --config configuration.yml --config config-acl.yml --config config-other.yml
+authelia --config configuration.yml,config-acl.yml,config-other.yml
+```
+
+Authelia's configuration files use the YAML format. A template with all possible options can be found at the root of the
+repository [here](https://github.com/authelia/authelia/blob/master/config.template.yml).
+
+*__Important Note:__ You should not have configuration sections such as Access Control Rules or OpenID Connect clients
+configured in multiple files. If you wish to split these into their own files that is fine, but if you have two files that
+specify these sections and expect them to merge properly you are asking for trouble.*
+
+### Container
+
+By default, the container looks for a configuration file at `/config/configuration.yml`.
+
+### Docker
+
+This is an example of how to override the configuration files loaded in docker:
+
+```bash
+docker run -d --volume /path/to/config:/config authelia:authelia:latest authelia --config=/config/configuration.yaml --config=/config/configuration.acl.yaml
+```
+
+See the [Docker Documentation](https://docs.docker.com/engine/reference/commandline/run/) for more information on the
+`docker run` command.
+
+### Docker Compose
+
+An excerpt from a docker compose that allows you to specify multiple configuration files is as follows:
+
+```yaml
+version: "3.8"
+services:
+ authelia:
+ container_name: authelia
+ image: authelia/authelia:latest
+ command:
+ - "authelia"
+ - "--config=/config/configuration.yaml"
+ - "--config=/config/configuration.acl.yaml"
+
+```
+
+See the [compose file reference](https://docs.docker.com/compose/compose-file/compose-file-v3/#command) for more
+information.
+
+### Kubernetes
+
+An excerpt from a Kubernetes container that allows you to specify multiple configuration files is as follows:
+
+```yaml
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+ name: authelia
+ namespace: authelia
+ labels:
+ app.kubernetes.io/instance: authelia
+ app.kubernetes.io/name: authelia
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: authelia
+ app.kubernetes.io/name: authelia
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/instance: authelia
+ app.kubernetes.io/name: authelia
+ spec:
+ enableServiceLinks: false
+ containers:
+ - name: authelia
+ image: docker.io/authelia/authelia:fix-missing-head-handler
+ command:
+ - authelia
+ args:
+ - '--config=/configuration.yaml'
+ - '--config=/configuration.acl.yaml'
+```
+
+See the Kubernetes [workloads documentation](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates) or the
+[Container API docs](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core) for more
+information.