From 9beec72cadc5e519601c5522081993e39f701f40 Mon Sep 17 00:00:00 2001 From: bellatrick Date: Fri, 13 Dec 2024 14:51:41 +0100 Subject: [PATCH] Edited link placement, TLDR structure, included use of TUI and added paragraphs before prerequisites and best practices sections Signed-off-by: bellatrick --- ...sing_Environmental_Variables_in_Daytona.md | 45 ++++++++++++------ ...g_Environmental_Variables_in_Daytona_3.png | Bin 0 -> 12595 bytes 2 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 articles/assets/20241126_Using_Environmental_Variables_in_Daytona_3.png diff --git a/articles/20241126_Using_Environmental_Variables_in_Daytona.md b/articles/20241126_Using_Environmental_Variables_in_Daytona.md index f91fb389..42911954 100644 --- a/articles/20241126_Using_Environmental_Variables_in_Daytona.md +++ b/articles/20241126_Using_Environmental_Variables_in_Daytona.md @@ -10,26 +10,26 @@ tags: ['Environment Variables', 'Development Environment', 'Daytona Workspaces'] ## Introduction -[Environmental variables]('/definitions/20241126_definition_environment_variables.md') are important for configuring development environments and storing sensitive information. They provide a flexible way to control application behavior without hardcoding values directly into the source code. Daytona offers a streamlined method for setting, managing, and using environmental variables across various workspaces using the `daytona env` command. This simplifies configuration and enhances security especially when collaborating on projects. +Environmental variables are important for configuring development environments and storing sensitive information. They provide a flexible way to control application behavior without hardcoding values directly into the source code. -This article will explain using the `daytona env` command to set and manage environmental variables within Daytona workspaces. You will learn how to set variables, create a workspace, and access these variables within a workspace. +Daytona offers a streamlined method for setting, managing, and using environmental variables across various workspaces using the `daytona env` command. This simplifies configuration and enhances security especially when collaborating on projects. -### TL;DR - -- **What**: Learn to use `daytona env set` for managing workspace environmental variables +This article will explain using the `daytona env` command to set and manage [environmental variables]('/definitions/20241126_definition_environment_variables.md') within Daytona workspaces. You will learn how to set variables, create a workspace, and access these variables within a workspace. -- **Why**: Simplify configuration and securely manage development environment settings +### TL;DR -- **How**: - - Set variables using `daytona env set key=value` - - Create a workspace with `daytona create --code` - - Verify variables with `daytona env list` +- Simplify credential management using daytona env Commands +- Manage workspace configurations securely without hardcoding +- Access environment variables across multiple containers and development tools +- Create flexible development environments with dynamic configuration ## Prerequisites -- Daytona installed on your system -- Docker -- Visual Studio Code (VSCode) +To successfully follow this tutorial, ensure the following tools are installed and properly set up on your system: + +- [Daytona](https://github.com/daytonaio/daytona/blob/main/README.md): A tool for streamlined development workflows. +- [Docker](https://www.docker.com/products/docker-desktop/): For containerization and managing application dependencies. +- [Visual Studio Code](https://code.visualstudio.com/download): A code editor with support for extensions and debugging. ## Set Environmental Variables @@ -39,13 +39,26 @@ Before adding an environment variable to Daytona, ensure that Docker and your se daytona server ``` -Then use `daytona env set` to define environmental variables: +Using the Command Line Interface (CLI), run the following command to define your environmental variables: ```bash daytona env set USERNAME=JohnDoe PASSWORD=123456 ``` -This command allows you to set multiple environmental variables in a single operation. +This will allow you to set multiple environmental variables in a single operation. You can also use the Text User Interface (TUI) by running: + +```bash +daytona env set +``` +This command will launch the TUI interface. Proceed to enter your environment variables in the following format: + +```bash +USERNAME=JohnDoe +PASSWORD=123456 +``` +After entering the variables, press Enter on your keyboard to save them. + +![Screenshot example of Daytona env set TUI ](assets/20241126_Using_Environmental_Variables_in_Daytona_3.png) ### How `daytona env set` Works @@ -107,6 +120,8 @@ Your output should look like this: ### Best Practices +When working with environmental variables, it's important to follow best practices to protect sensitive information and maintain an organized development environment. The following guidelines will help you manage environmental variables more securely across your projects. + 1. **Security**: - Avoid storing sensitive information like passwords directly in environmental variables diff --git a/articles/assets/20241126_Using_Environmental_Variables_in_Daytona_3.png b/articles/assets/20241126_Using_Environmental_Variables_in_Daytona_3.png new file mode 100644 index 0000000000000000000000000000000000000000..7b1e14aed10d38fe099c5bf83ca7eb5d345e5e0e GIT binary patch literal 12595 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