# 📦 Environmental Variables The following environmental variables are required to be set in the `.env` file: | Variable Name | Description | Required | Default Value | Details | |-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------| | SECRET_KEY | A secret key for a particular Django installation. This is used to provide cryptographic signing, and should be set to a unique, unpredictable value. Django will refuse to start if SECRET_KEY is not set.You can use this online tool [https://djecrety.ir](https://djecrety.ir/) to generate the key and paste | YES | | | | ALLOWED_HOSTS | A list of strings representing the host/domain names that this Django site can serve. This is a security measure to prevent HTTP Host header attacks, which are possible even under many seemingly-safe web server. | YES | | [Django Allowed Hosts](https://docs.djangoproject.com/en/4.2/ref/settings/#std-setting-ALLOWED_HOSTS) | | CSRF_TRUSTED_ORIGINS | A list of trusted origins for unsafe requests | NO | | [Django CSRF Trusted Origins](https://docs.djangoproject.com/en/5.1/ref/settings/#csrf-trusted-origins) | | ADL_DEBUG | A boolean that turns on/off debug mode. Never deploy a site into production with DEBUG turned on | NO | False | | | WAGTAIL_SITE_NAME | The human-readable name of your Wagtail installation which welcomes users upon login to the Wagtail admin. | NO | ADL | | | LANGUAGE_CODE | The language code for the CMS. Available codes are `en` for English. Default is en if not set. Available codes in alphabetical order: `am` for Amharic,`ar` for Arabic, `en` for English, `es` for Spanish, `fr` for French, `sw` for Swahili. The translation are done with automated tools and may not be 100% accurate | NO | en | | | ADL_LOG_LEVEL | The severity of the messages that the adl service logger will handle. Allowed values are: `DEBUG`, `INFO`, `WARNING`, `ERROR` and `CRITICAL` | NO | WARN | | | ADL_GUNICORN_NUM_OF_WORKERS | Number of Gunicorn workers | YES | 4 | | | ADL_GUNICORN_TIMEOUT | Gunicorn timeout in seconds | YES | 300 | | | ADL_CELERY_BEAT_DEBUG_LEVEL | The severity of the messages that the adl_celery_beat service logger will handle. Allowed values are: `DEBUG`, `INFO`, `WARNING`, `ERROR` and `CRITICAL` | NO | INFO | | | ADL_CELERY_WORKER_LOG_LEVEL | The severity of the messages that the adl_celery_worker service logger will handle. Allowed values are: `DEBUG`, `INFO`, `WARNING`, `ERROR` and `CRITICAL` | NO | INFO | | | ADL_DB_USER | ADL Database user | YES | | | | ADL_DB_PASSWORD | ADL Database password | YES | | | | ADL_DB_NAME | ADL Database name | YES | | | | ADL_DB_VOLUME | Mounted docker volume path for persisting database data | YES | ./docker/db_data | | | ADL_STATIC_VOLUME | Mounted docker volume path for persisting django static files | YES | ./docker/static | | | ADL_MEDIA_VOLUME | Mounted docker volume path for persisting django media files | YES | ./docker/media | | | ADL_BACKUP_VOLUME | Mounted docker volume path for persisting db backups and media files | YES | ./docker/backup | | | ADL_WEB_PROXY_PORT | Port Nginx will be available on the host | YES | 80 | | | UID | The id of the user to run adl docker services | YES | | | | GID | The id of the group to run adl docker services | | | | | ADL_NETWORK_NAME | The Docker network name for the containers to communicate. This must be created before running the containers, using the command `docker network create ` | | | | | ADL_PLUGIN_GIT_REPOS | A comma-separated list of git repo URLs for plugins to install at build time. Append `#tag` to pin to a release (e.g. `https://github.com/wmo-raf/adl-ftp-plugin.git#v2.1.0`). For multiple plugins prefer `plugins.toml` instead. | NO | | If no repo is added, no plugin is installed. A plugin must follow a given structure as described in sections below | | ADL_PLUGIN_LIST_FILE | Path **inside the container** to a `plugins.toml` manifest file listing one plugin per `[[plugins]]` section. Supports `git`, `url`, `folder` (local path inside container), `tag`, `hash`, `name`, and `enabled` fields. The file can be baked into the image at build time or volume-mounted at runtime. Default: `/adl/plugins.toml`. | NO | /adl/plugins.toml | See `plugins.toml.sample` in the project root for the format. Preferred over `ADL_PLUGIN_GIT_REPOS` when managing more than one plugin. | `Note`: On linux, you can type `id` in the terminal to get the `UID` and `GID` of the current user.