Introducing new Environment Variable
This document is part of the Appwrite contributors' guide. Before you continue reading this document, make sure you have read the Code of Conduct and the Contributing Guide.
Getting Started
Agenda
Adding new features may require various configuration options to be set by the users. And for such options, we use environment variables in Appwrite.
This tutorial will cover how to properly add a new environment variable in Appwrite.
Naming environment variable
The environment variables in Appwrite are prefixed with _APP_
. If it belongs to a specific category, the category name is appended as _APP_REDIS
for the Redis category. The available categories are General, Redis, MariaDB, SMTP, Storage, Functions and Maintenance. Finally, a properly describing name is given to the variable. For example, _APP_REDIS_HOST
is an environment variable for the hostname of your Redis instance. You can find more information on available categories and existing environment variables in the environment variables doc.
Describe new environment variable
First of all, we add the new environment variable to app/config/variables.php
in the designated category. If none of the categories fit, add it to the General category. Copy the existing variable description to create a new one so that you will not miss any required fields.
This information is also used to generate the website documentation at https://appwrite.io/docs/environment-variables, so please use good descriptions that clearly define the purpose and other required info about the environment variable that you are adding.
Add to .env and Dockerfile
If the newly introduced environment variable has a default value, add it to the .env
and Dockerfile
along with other environment variables. .env
file uses settings for Appwrite development environment.
Add to Docker Compose file and template
Add the new environment variables to the docker-compose.yml
and app/views/install/compose.phtml
for each docker service that requires access to those environment variables.
The docker-compose.yml
file is used by the Appwrite maintainers during development, whereas the app/views/install/compose.phtml
file is used by the Appwrite setup script.
With these steps, your environment variable is properly added and can be accessed inside Appwrite code and any other containers where it is passed. You can access and use those variables to implement the features you are trying to achieve.
If everything went well, commit and initiate a PR and wait for the Appwrite team's approval.
Whooho! You have successfully added a new environment variable to Appwrite. 🎉