docs/content/contributing/development/environment.md
Authelia and its development workflow can be tested with Docker and Docker Compose on Linux.
In order to build and contribute to Authelia, you need to make sure the following are installed in your environment:
{{< callout context="caution" title="Important Note" icon="outline/alert-triangle" >}} We only support docker being installed as a system package. It must not be installed via Snappy or other similar tools. If you wish to use these other tools we will not be able to provide support. {{< /callout >}}
These additional tools are recommended:
Authelia utilizes a self-signed Root CA certificate for the development environment. This allows us to sign elements of the CI process uniformly and only trust a single additional Root CA Certificate. The private key for this certificate is maintained by the Core Team so if you need an additional certificate signed for this purpose please reach out to them.
While developing for Authelia you may also want to trust this Root CA. It is critical that you are aware of what this means if you decide to do so.
If you'd still like to trust the Root CA Certificate it's located (encoded as a PEM) in the main git repository at internal/suites/common/pki/ca/ca.public.crt.
There is a development context that can be loaded using bootstrap.sh. All that you need to do is satisfy the prerequisites and run the below command (or an equivalent of):
source bootstrap.sh
This context gives you access to the following commands:
authelia-scripts insteadAt the present time this is not officially supported. Some of the maintainers utilize Windows and/or macOS however running suites under Windows or macOS is not something that is currently possible to do easily. As such we recommend utilizing Linux.
We have geared all of our examples and suites based on modern versions of these products. If you decide to use an older version then you're on your own.
The authelia-scripts bootstrap subcommand handles this for you and creates the relevant hosts entries. This is automatically executed when using bootstrap.sh.