Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit 976bbaa

Browse files
add environment variable information (#714)
Closes #707 --------- Co-authored-by: Jye Cusch <[email protected]>
1 parent d94a9bb commit 976bbaa

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

docs/reference/env.mdx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,33 @@ If you are running your project in the cloud, build, or the run environment, Nit
1414
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1515
| NITRIC_STACK_ID | The Stack ID of the project. Example: `coolkat-gcp-4c0wg0hg` |
1616
| NITRIC_ENVIRONMENT | The Environment that the app is running on. The value can be either `cloud` (for deployed in the cloud), `run` (for stacks running in nitric run), or `build` (for stack code running during the deployment gathering phase). |
17+
18+
## Application Environment Variables
19+
20+
To use environment variables locally and in your deployed projects, you can create a file named `.env`. When running your project locally using `nitric start` the environment variables will be made available to your application. When running your project using `nitric run` and `nitric up`, the service is built into an image with the environment variables added at build time. An `.env` file might look like this:
21+
22+
```text label:.env
23+
API_URL=http://this.is/a/test-url
24+
```
25+
26+
If you wish to use an environment variable file that is in a different location, you can point to the file using the `--env-file` or `-e` flag.
27+
28+
```bash
29+
nitric start --env-file ./config/.env.local
30+
31+
nitric up -e ./config/.env.cloud
32+
```
33+
34+
## CI/CD Pipelines
35+
36+
Environment variables will also be pulled from a `.env` file when deploying your projects in a CI/CD environment, however, most CI/CD platforms provide options for using sensitive values. You can take a look at our CI/CD guides [here](/guides?tags=CI/CD) to see individual recommendations for each platform's workflow configurations.
37+
38+
## When should I use Secrets instead?
39+
40+
You should use cloud secrets over environment variables for services when you are using sensitive values and/or you require dynamic secret rotation or updates. Beyond this, you should be using Cloud Secrets when:
41+
42+
- **Your secret needs to be rotated dynamically**: Cloud secret managers support automatic rotation. This ensures your services always retrieve the latest secrets without redeployment.
43+
- **You need access control & audit logging**: Cloud secret managers provide fine-grained access control (e.g., IAM policies) and track access logs, enhancing security and compliance.
44+
- **Your secret contains sensitive configuration values**: Environment variables may be exposed in process lists, logs, or debugging tools. Secret managers keep values encrypted and only accessible at runtime.
45+
- **Your secret is shared across multiple services**: If multiple services need access to the same credentials, cloud secrets prevent duplication and simplify management.
46+
- **You want to avoid redeployment for secret changes**: Environment variables require redeployment to update secrets, whereas cloud secret managers allow dynamic retrieval and updates at runtime.

0 commit comments

Comments
 (0)