Environment Variables
Talawa api primarily makes use of environment variables to configure the application behavior for different scenarios and use cases. By default most workflows are configured to parse and read environment variables defined in the .env
file located at the root directory of this project.
Listed below are all the environment variables utilized by different workflows within talawa api.
Environment variables should be explicitly provided to the container that they're being used for. This is because with changes in implicit environment variables docker cannot know exactly which compose container services should be rebuilt to reflect those changes. There are two ways of doing that, the first way is explicitly typing out each of those environment variables in the
environment
field of the compose container service and the second way is to create separate environment variable files for storing environment variables for each compose container service.
talawa api (standalone)
At runtime, talawa api requires certain environment variables to be defined in its execution context. Some of these environment variables must be provided by you and some are optional to be provided because they might be using a default value or their requirement is dependent on the environment in which talawa api is running.
API_ADMINISTRATOR_USER_EMAIL_ADDRESS
This environment variable is used to configure the email address for the administrator user that talawa api will make sure exists in the database at the time of server startup.
API_ADMINISTRATOR_USER_NAME
This environment variable is used to configure the name for the administrator user that talawa-api will make sure exists in the database at the time of server startup.
API_ADMINISTRATOR_USER_PASSWORD
This environment variable is used to configure the password for the administrator user that talawa api will make sure exists in the database at the time of server startup.
API_BASE_URL
This environment variable is used to configure the base url of the talawa api at runtime that clients making requests to the talawa api will make use of.
API_COMMUNITY_FACEBOOK_URL
This environment variable is used to configure the url to the facebook account of the community.
API_COMMUNITY_GITHUB_URL
This environment variable is used to configure the url to the github account of the community.
API_COMMUNITY_INACTIVITY_TIMEOUT_DURATION
This environment variable is used to configure the duration in seconds it should take for inactive clients to get timed out of their authenticated session within client-side talawa applications.
API_COMMUNITY_INSTAGRAM_URL
This environment variable is used to configure the url to the instagram account of the community.
API_COMMUNITY_LINKEDIN_URL
This environment variable is used to configure the url to the linkedin account of the community.
API_COMMUNITY_NAME
This environment variable is used to configure the name of the community.
API_COMMUNITY_REDDIT_URL
This environment variable is used to configure the url to the reddit account of the community.
API_COMMUNITY_SLACK_URL
This environment variable is used to configure the url to the slack account of the community.
API_COMMUNITY_WEBSITE_URL
This environment variable is used to configure the url to the website of the community.
API_COMMUNITY_X_URL
This environment variable is used to configure the url to the x account of the community.
API_COMMUNITY_YOUTUBE_URL
This environment variable is used to configure the url to the youtube account of the community.
API_DEBUGGER_HOST
This environment variable is used to configure the host ip that can access the host port on which talawa api debugger listens to at runtime.
- More information can be found at this link.
API_DEBUGGER_PORT
This environment variable is used to configure the host port on which talawa api debugger listens to at runtime.
When talawa api debugger is run within a container environment this variable must be assigned a value of 0.0.0.0
for the host system to have access to the port talawa api debugger listens on within the container at runtime.
- More information can be found at this link.
API_HOST
This environment variable is used to configure the host ip that can access the host port on which talawa api listens to at runtime.
When talawa api is run within a container environment this variable must be assigned a value of 0.0.0.0
for the host system to have access to the port talawa api listens on within the container at runtime.
- More information can be found at this link.
API_IS_APPLY_DRIZZLE_MIGRATIONS
This environment variable is used to enable or disable the behavior of applying the drizzle orm sql migrations to the postgresql database at the time of initialization of talawa api.
API_IS_GRAPHIQL
This environment variable is used to enable or disable serving the graphiql web client from the talawa api server.
API_IS_PINO_PRETTY
This environment variable is used to enable or disable pretty logging for the talawa api server.
More information can be found at these links:
API_JWT_EXPIRES_IN
This environment variable is used to configure the time in milli-seconds it takes for an authentication json web token issued by talawa api to expire.
API_JWT_SECRET
This environment variable is used to configure the secret used for signing and verifying the authentication json web tokens issued by talawa api. This secret must be at least 64 characters in length.
- More information can be found at this link.
API_LOG_LEVEL
This environment variable is used to configure the log level for talawa api's pino.js logger. Possible values are debug
, error
, fatal
, info
, trace
and warn
.
- More information can be found at this link.
API_MINIO_ACCESS_KEY
This environment variable is used to configure the access key to the minio server for talawa api's minio client to connect with.
- More information can be found at this link.
API_MINIO_END_POINT
This environment variable is used to configure the host ip of the minio server for talawa api's minio client to connect with.
- More information can be found at this link.
API_MINIO_PORT
This environment variable is used to configure the host port of the minio server for talawa api's minio client to connect with.
- More information can be found at this link.
API_MINIO_SECRET_KEY
This environment variable is used to configure the secret key to the minio server for talawa api's minio client to connect with.
- More information can be found at this link.
API_MINIO_USE_SSL
This environment variable is used to configure the ssl mode on the connection between minio server and talawa api's minio client.
- More information can be found at this link.
API_PORT
This environment variable is used to configure the host port on which talawa api listens to at runtime.
- More information can be found at this link.
API_POSTGRES_DATABASE
This environment variable is used to configure the name of the postgres database for talawa api's postgres client to connect with.
- More information can be found at this link.
API_POSTGRES_HOST
This environment variable is used to configure the host ip of the postgres server for talawa api's postgres client to connect with.
- More information can be found at this link.
API_POSTGRES_PASSWORD
This environment variable is used to configure the password of the postgres user on the postgres server for talawa api's postgres client to authenticate with.
- More information can be found at this link.
API_POSTGRES_PORT
This environment variable is used to configure the host port of the postgres server for talawa api's postgres client to connect with.
- More information can be found at this link.
API_POSTGRES_SSL_MODE
This environment variable is used to configure the ssl/tls mode of the connection between the postgres server and talawa api's postgres client.
- More information can be found at this link.
API_POSTGRES_USER
This environment variable is used to configure the name of the postgres user on the postgres server for talawa api's postgres client to authenticate with.
- More information can be found at this link.
API_MINIO_TEST_END_POINT
This environment variable is used to configure the host ip of the minio test server for talawa api's minio client to connect with.
- More information can be found at this link.
API_POSTGRES_TEST_HOST
This environment variable is used to configure the host ip of the postgres server for talawa api's postgres client to connect with.
- More information can be found at this link.
CI
This environment variable is used to enable or disable certain features in vitest that are supposed to only run in continous integration environments.
NODE_ENV
This is a legacy environment variable used to configure the environment in which node.js is supposed to run in but its use is no longer recommended. It is kept with a default value of production
for backwards compatibility.
- More information can be found at this link.
api (Container)
Talawa api's node.js server is configured to be started as a container service named api
. Listed below are the environment variables accepted by this container service.
API_DEBUGGER_MAPPED_HOST_IP
This environment variable is used to configure the host ip that can access the host port mapped with the container service port on which talawa api debugger listens to at runtime.
- More information can be found at this link.
API_DEBUGGER_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which talawa api debugger listens to at runtime.
- More information can be found at this link.
API_GID
This environment variable is used to configure the value of group id of the group assigned to the default non-root talawa
user within the talawa api container.
- More information can be found at this link.
API_MAPPED_HOST_IP
This environment variable is used to configure the host ip that can access the host port mapped with the container service port on which talawa api listens to at runtime.
- More information can be found at this link.
API_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which talawa api listens to at runtime.
- More information can be found at this link.
API_UID
This environment variable is used to configure the value of user id of the default non-root user talawa
within the talawa api container.
- More information can be found at this link.
caddy (Container)
CADDY_HTTP_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which caddy listens to at runtime for http requests.
- More information can be found at this link.
CADDY_HTTPS_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which caddy listens to at runtime for https requests.
- More information can be found at this link.
CADDY_HTTP3_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which caddy listens to at runtime for http/3 requests.
- More information can be found at this link.
CADDY_TALAWA_API_DOMAIN_NAME
This environment variable is used to configure the domain name provided by a dns provider that is assigned to the public ip address of the machine on which talawa api runs.
- More information can be found at this link.
CADDY_TALAWA_API_EMAIL
This environment variable is used to configure the email to which the certificate authority issuing digital certificates for talawa api's secure connection at runtime can send email to.
- More information can be found at this link.
CADDY_TALAWA_API_HOST
This environment variable is used to configure the host that can access the port on which talawa api listens to at runtime.
- More information can be found at this link.
CADDY_TALAWA_API_PORT
This environment variable is used to configure the port on which talawa api listens to at runtime.
- More information can be found at this link.
cloudbeaver (Container)
Listed below is a subset of environment variables that are accepted by the cloudbeaver
container service.
More information could be found at this link.
CLOUDBEAVER_ADMIN_NAME
This environment variable is used to configure name for the default cloudbeaver admin account.
- More information can be found at this link.
CLOUDBEAVER_ADMIN_PASSWORD
This environment variable is used to configure password for the default cloudbeaver admin account created using the ${CLOUDBEAVER_ADMIN_NAME}
environment variable.
- More information can be found at this link.
CLOUDBEAVER_MAPPED_HOST_IP
This environment variable is used to configure the host ip that can access the host port mapped with the container service port on which cloudbeaver listens to at runtime.
- More information can be found at this link.
CLOUDBEAVER_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which cloudbeaver listens to at runtime.
- More information can be found at this link.
CLOUDBEAVER_SERVER_NAME
This environment variable is used to configure name for the default talawa cloudbeaver server the cloudbeaver client connects to at runtime.
- More information can be found at this link.
CLOUDBEAVER_SERVER_URL
This environment variable is used to configure url for the default talawa cloudbeaver server the cloudbeaver client connects to at runtime.
- More information can be found at this link.
minio (Container)
Listed below is a subset of environment variables that are accepted by the minio
container service.
More information could be found at this link.
MINIO_BROWSER
This environment variable is used to configure the toggle state of minio console between on
and off
.
- More information can be found at this link.
MINIO_API_MAPPED_HOST_IP
This environment variable is used to configure the host ip that can access the host port mapped with the container service port on which minio api listens to at runtime.
- More information can be found at this link.
MINIO_API_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which minio api listens to at runtime.
- More information can be found at this link.
MINIO_CONSOLE_MAPPED_HOST_IP
This environment variable is used to configure the host ip that can access the host port mapped with the container service port on which minio console listens to at runtime.
- More information can be found at this link.
MINIO_CONSOLE_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which minio console listens to at runtime.
- More information can be found at this link.
MINIO_ROOT_PASSWORD
This environment variable is used to configure password for the default minio root user minioadmin
or the custom minio root user created using the ${MINIO_ROOT_USER}
environment variable.
- More information can be found at this link.
MINIO_ROOT_USER
This environment variable is used to configure name for a custom minio root user.
- More information can be found at this link.
minio-test (Container)
Listed below is a subset of environment variables that are accepted by the minio-test
container service.
More information could be found at this link.
MINIO_TEST_API_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which minio test api listens to at runtime.
- More information can be found at this link.
MINIO_TEST_CONSOLE_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which minio test console listens to at runtime.
- More information can be found at this link.
postgres (Container)
Listed below is a subset of environment variables that are accepted by the postgres
container service.
More information could be found at this link.
POSTGRES_DB
This environment variable is used to configure name for the database that will be created within the postgres container on startup if not already present.
- More information can be found at this link.
POSTGRES_MAPPED_HOST_IP
This environment variable is used to configure the host ip that can access the host port mapped with the container service port on which postgres listens to at runtime.
- More information can be found at this link.
POSTGRES_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which postgres listens to at runtime.
- More information can be found at this link.
POSTGRES_PASSWORD
This environment variable is used to configure password for the default postgres
postgres user or the custom postgres user created using the ${POSTGRES_USER}
environment variable.
- More information can be found at this link.
POSTGRES_USER
This environment variable is used to configure name for a custom postgres user with superuser permissions.
- More information can be found at this link.
postgres-test (Container)
Listed below is a subset of environment variables that are accepted by the postgres-test
container service.
More information could be found at this link.
POSTGRES_TEST_MAPPED_PORT
This environment variable is used to configure the host port to map with the container service port on which postgres test listens to at runtime.
- More information can be found at this link.
docker compose
COMPOSE_FILE
This environment variable is used to configure what docker compose configuration files are to be evaluated by docker and docker compose.
- More information can be found at this link.
COMPOSE_PROFILES
This environment variable is used to enable or disable container services to be run by docker compose. Possible values are api
, caddy
, cloudbeaver
, minio
, minio_test
, postgres
and postgres-test
.
- More information can be found at this link.
COMPOSE_PROJECT_NAME
This environment variable is used to configure the prefix for identifiers of all the container services to be run by docker compose.
- More information can be found at this link.