Configuration - KusabiSensei/googleplex-assistant GitHub Wiki

Configuration

We configure the application through the use of environment variables. Mainly because this is being Dockerized up front. Also, I don't want to have to deal with injecting an ini file or envfile in at buildtime. Maybe we change that later on, but for now, it's envvars.

List of Environment Variables that can be used to configure the application

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

These are used by acme.sh to generate TXT records in AWS Route 53 for Let's Encrypt DNS01 challenges. Once the key and certificate and chain are downloaded from Let's Encrypt, the TXT records are removed.

TODO: Find a way to allow a custom certificate to be injected, either through a custom image build or overlay instructions to load a volume into the container. Then these variables would not be required (and that would be good from a security perspective)

  • HOSTNAME

This is the Fully Qualified Domain Name of the container. It does not need to be the same as the host, or the router it is behind.

  • GOOGLEPLEX_TOKEN

This is the value for the x-googleplex-authentication HTTP header that will be looked for to validate requests. If you do not supply one here, a random 16 character string will be generated that the program will instead treat as valid.

  • GOOGLEPLEX_CREDENTIALS

This is the value of the Authorization header treated as valid. This can be used to support HTTP Basic authentication, HTTP Digest authentication or any other scheme using the Authorization header (well, hopefully, I haven't tried them yet.)

Note that for the GOOGLEPLEX_TOKEN and GOOGLEPLEX_CREDENTIALS variables, as long as one of these tests True, then requests will be treated as valid.