Skip to content
8 changes: 3 additions & 5 deletions content/learning-paths/cross-platform/daytona/_index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
---
title: Manage Arm development environments with Daytona

draft: true
cascade:
draft: true


minutes_to_complete: 30

Expand All @@ -15,8 +13,8 @@ learning_objectives:
- Create and manage remote development environments.

prerequisites:
- One or more Arm-based computers running Windows, macOS, or Linux computer with Docker installed.
- An AWS account to create cloud development environments (optional).
- One or more Arm-based computers running Windows, macOS, or a Linux computer with Docker installed.
- Optionally, an AWS account to create cloud development environments.

author_primary: Jason Andrews

Expand Down
16 changes: 8 additions & 8 deletions content/learning-paths/cross-platform/daytona/_review.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@ review:
question: >
Can Daytona be used to manage local dev container based environments?
answers:
- "Yes"
- "No"
- "Yes."
- "No."
correct_answer: 1
explanation: >
Daytona can manage local development environments.

- questions:
question: >
Which abstraction takes care of the details of the connection to your source code projects?
Which abstraction manages the details of the connection to your source code projects?
answers:
- "Provider"
- "Target"
- "Git provider"
- "Provider."
- "Target."
- "Git provider."
correct_answer: 3
explanation: >
Git providers connect your source code to your workspaces.
Expand All @@ -36,8 +36,8 @@ review:
question: >
Can Daytona manage remote development environments in machines provided by cloud service providers?
answers:
- "Yes"
- "No"
- "Yes."
- "No."
correct_answer: 1
explanation: >
Daytona can manage development environments in AWS, Azure, and GCP. All offer Arm-based virtual machines.
Expand Down
12 changes: 7 additions & 5 deletions content/learning-paths/cross-platform/daytona/git-providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@ layout: "learningpathall"
If you plan to use Daytona to work on code in your GitHub account, you can set up a Git provider.

{{% notice Note %}}
This step is optional to complete the Learning Path, because Daytona doesn't require a Git provider if you want run the example project without making any changes.
This step is optional. If you want to run the example project without making any changes, you don't need to configure a Git provider.
{{% /notice %}}

## How do I configure GitHub as a Git Provider for Daytona?

Daytona allows you to integrate with various Git providers to manage your code repositories. You can add GitHub as a Git provider using a GitHub Personal Access Token.

Refer to the [Daytona documentation](https://www.daytona.io/docs/configuration/git-providers/) for other Git providers.
See the [Daytona documentation](https://www.daytona.io/docs/configuration/git-providers/) for other Git providers.

### How do I create a Personal Access Token on GitHub?

1. Log in to your GitHub account.

2. Navigate to **Settings** > **Developer settings** > **Personal access tokens** > **Tokens (classic)**
2. Navigate to **Settings** > **Developer settings** > **Personal access tokens** > **Tokens (classic)**.

3. Click on **Generate new token**.

Expand All @@ -34,7 +34,7 @@ Refer to the [Daytona documentation](https://www.daytona.io/docs/configuration/g

Make sure the Daytona server is running on your computer.

To configure GitHub run the command below:
To configure GitHub, run the command below:

```console
daytona git-providers add
Expand All @@ -61,4 +61,6 @@ The output displays GitHub as one of the configured Git providers with your GitH
GitHub jasonrandrews jasonrandrews
```

You have now successfully configured GitHub as a Git provider for Daytona. You can now use Daytona to manage your code repositories hosted on GitHub.
You have now successfully configured GitHub as a Git provider for Daytona.

You can now use Daytona to manage your code repositories hosted on GitHub.
32 changes: 20 additions & 12 deletions content/learning-paths/cross-platform/daytona/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,26 @@ layout: "learningpathall"

## How do I install Daytona on Arm computers?

Installing Daytona on Arm-based computers is easy. The application is a single binary which can be placed anywhere. You can add the location of the `daytona` binary to your search path to make it easy to run.
Installing Daytona on Arm-based computers is easy.

Below are some recommended ways to install Daytona on a variety of operating systems.
The application is a single binary which you can place anywhere.

To make it easy to run, you can add the location of the `daytona` binary to your search path.

You can install Daytona on a variety of operating systems, and these are described below.

### How do I install Daytona on macOS?

Use the following code:

```console
curl -sf -L https://download.daytona.io/daytona/install.sh | sudo bash
```

### How do I install Daytona on Arm Linux or Chrome OS?

Use the following code:

```console
curl -sf -L https://download.daytona.io/daytona/install.sh | sudo bash
```
Expand All @@ -36,9 +44,9 @@ $env:Path += ";" + $Env:APPDATA + "\bin\daytona"; [Environment]::SetEnvironmentV

You can also manually download the binary for a particular operating system and place it on your computer.

Refer to the [Daytona documentation](https://www.daytona.io/docs/installation/installation/) for full details.
See the [Daytona documentation](https://www.daytona.io/docs/installation/installation/) for further information.

## How do I confirm Daytona is installed?
## How do I confirm that Daytona is installed?

Print the version to confirm Daytona works on your computer:

Expand All @@ -57,12 +65,12 @@ Daytona version v0.50.0
After installing Daytona, you need to start the Daytona server.

{{% notice Note %}}
Always make sure Docker is running before using Daytona.
Always make sure that Docker is running before using Daytona.

Even if you plan to develop on remote computers, you still need the server on your local machine.
Even if you plan to develop on remote computers, you will still need to have the server on your local machine.
{{% /notice %}}

There are 3 options you can use to start the Daytona server.
There are three options that you can use to start the Daytona server.

Option 1: start the server in the background with a confirmation prompt:

Expand Down Expand Up @@ -118,13 +126,13 @@ INFO[0013] API REQUEST URI=/health/ latency=1.
You may now begin developing
```

If you are curious, leave the Daytona server running in the terminal and see the activity as you manage development environments.
If you are curious, leave the Daytona server running in the terminal and watch the activity as you manage development environments.

## How do I stop the Daytona server?

If the server is running in the terminal, use Control-C to stop it.
If the server is running in the terminal, you can stop it by using Control-C.

If the server is running in the background, use the command below to stop it:
If the server is running in the background, you can use the command below to stop it:

```console
daytona server stop
Expand All @@ -139,7 +147,7 @@ daytona purge
```

{{% notice Note %}}
If you have any trouble with Daytona on macOS, remove the directory `$HOME/Library/Application\ Support/daytona`
If you experience difficulties with running Daytona on macOS, remove the directory `$HOME/Library/Application\ Support/daytona`
{{% /notice %}}

With Daytona installed and the server running, you are ready to continue configuring Daytona.
With Daytona installed and the server running, you are now ready to learn about configuring Daytona.
36 changes: 21 additions & 15 deletions content/learning-paths/cross-platform/daytona/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,46 @@ weight: 2
layout: "learningpathall"
---

[Daytona](https://www.daytona.io/) is a powerful open-source tool for managing development environments. It enables you to easily create, manage, and switch between different environments, both local and remote.
## Development Environment Manager

[Daytona](https://www.daytona.io/) is a powerful open-source tool for managing development environments. It enables you to easily create, manage, and switch between both local and remote environments.

Daytona is based on dev containers, which provide isolated and reproducible development environments.

Dev containers are lightweight, portable, and consistent environments that can be used across different development setups. They ensure that your development environment is the same regardless of where you are working.
Dev containers are lightweight, portable, and consistent environments that you can use across different development setups. They ensure that your development environment remains the same regardless of your work location.

For more information about dev containers, see the following resources:
- [Introduction to Dev Containers](https://code.visualstudio.com/docs/remote/containers/).
- [Development Containers Specification and dev container resources](https://github.com/devcontainers/).

For more information about dev containers, you can refer to the following resources:
- [Introduction to Dev Containers](https://code.visualstudio.com/docs/remote/containers/)
- [Development Containers Specification and dev container resources](https://github.com/devcontainers/)
Daytona is a single executable that runs on a variety of computers, including Windows on Arm, Arm Linux, and macOS. It's a great way to develop on Arm as you can use it to access local and remote Arm hardware.

Daytona is a single executable that runs on a variety of computers, including Windows on Arm, Arm Linux, and macOS with Apple Silicon. It's a great way to develop on Arm as it can be used to access local and remote Arm hardware.
You can use Daytona to create development environments on the following setups:

You can use Daytona to create development environments on your local computer, on remote computers running on your local network, and on remote computers from cloud service providers such as AWS and Azure.
* On a local computer.
* On remote computers running on your local network.
* On remote computers from cloud service providers such as AWS and Azure.

## Daytona terminology

Understanding basic Daytona definitions makes it easier to get started.
Taking time to learn some the basic Daytona defintions will enable you to get started easily. You can find some of these terms described below.

### What are Git providers?
#### Git Providers

A Git provider hosts Git repositories and provides tools for managing and collaborating on source code. Examples of Git providers include GitHub, GitLab, Bitbucket, and Azure Repos. With Daytona, a Git provider supplies the source code for your development environments.

### What are providers?
#### Providers

In Daytona, providers supply the resources needed to run development environments, these can be virtual machines (VMs) from AWS or Azure or container providers such as Docker. Providers abstract away the details of the underlying compute, networking, and storage.
In Daytona, providers supply the resources needed to run development environments. These can be virtual machines (VMs) from AWS or Azure, or container providers such as Docker. Providers abstract away the details of the underlying compute, networking, and storage.

### What are targets?
#### Targets

A target in Daytona is the specific configuration of the development environment, including the provider, operating system, CPU and memory resources, and development tools.

The combination of a code repository from a Git provider and a target from a provider bring a development environment to life.
The combination of a code repository from a Git provider, and a target from a provider, bring a development environment to life.

## Before you begin

To try out Daytona, you need one or more Arm-based computers running Windows, macOS, or Linux. Each computer must have Docker installed. Refer to the [Docker install guide](/install-guides/docker/) for installation options.
To try out Daytona, you need one or more Arm-based computers running Windows, macOS, or Linux. Each computer must have Docker installed. See the [Docker install guide](/install-guides/docker/) for installation options.

Next, learn how to install and configure Daytona.
In the next section, you can learn how to install and configure Daytona.
36 changes: 19 additions & 17 deletions content/learning-paths/cross-platform/daytona/local-dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ weight: 6
layout: "learningpathall"
---

Daytona makes it easy to manage local development environments. Follow these steps to learn how to create and manage an example local development environment.
Daytona makes it easy to manage local development environments.

You can use a small dev container example from Microsoft to learn. The example is a small Python application which uses flask to serve a single HTML page.
Follow these steps to learn how to create and manage an example local development environment.

To have a go, you can use a small dev container example from Microsoft. The example is a small Python application which uses Flask to serve a single HTML page.

Visit the [GitHub repository](https://github.com/microsoft/vscode-remote-try-python) to review the project.

Expand All @@ -27,7 +29,7 @@ The workspace is created without starting any IDE. More information about how to

### Option 2: use a repository from your GitHub account

If you want to work with a repository in your GitHub account and learn how to make changes and push them to GitHub you can click the **Use this template** button on the GitHub repository.
If you want to work with a repository in your GitHub account and learn how to make changes and push them to GitHub, you can click the **Use this template** button on the GitHub repository.

The template option creates a new repository in your account. Putting the repository in your account allows you to commit changes back to GitHub.

Expand All @@ -37,22 +39,22 @@ daytona create --no-ide

You will go through a series of prompts including:

- Select a GitHub provider
- Find the repository in your GitHub account
- Select a GitHub provider.
- Find the repository in your GitHub account.

{{% notice Note %}}
Use the / command to find the repo if you have many repositories in your GitHub account.
{{% /notice %}}

- Select a branch
- Specify a workspace name
- Select the local (default) target using the Docker provider
- Select a branch.
- Specify a workspace name.
- Select the local (default) target using the Docker provider.

The sequence is shown below:

![Create workspace #center](_images/local.gif)

The first time you create a workspace there are some delays while Docker images are pulled to your computer. After the first time, workspaces are created more quickly.
The first time you create a workspace there are some delays while Docker images are pulled to your computer. This initial setup delay is usually unique to the first time you do this, and when you create a workspace subsequently, it should be much faster.

## Connect to the workspace

Expand Down Expand Up @@ -102,28 +104,28 @@ Any of these options can be used to connect to a Daytona workspace.

A number of other IDEs can be used with Daytona. Refer to the [IDE documentation](https://www.daytona.io/docs/usage/ide/) for details.

## Start the flask application
## Start the Flask application

To start the flask application run:
To start the Flask application, run:

```console
python -m flask run --port 9000 --no-debugger --no-reload
```

If you start Python in VS Code, it will automatically forward port 9000 and open a browser tab to see the web page.

If you run the Python command in a terminal after using SSH to connect to workspace, you can forward the port by running the command below on on your local machine with the name of your workspace:
If you run the Python command in a terminal after using SSH to connect to a workspace, you can forward the port by running the command below on your local machine with the name of your workspace:

```console
daytona forward 9000 vscode-remote-try-python
```

## Other workspace commands
## Useful workspace commands

Now that you can create a workspace and connect to it, there are some other commands to be aware of.
Now that you can create a workspace and connect to it, there are some other commands that you will find useful.


Use the stop command to step the workspace. The dev container will stop on your local computer.
Use the stop command to stop the workspace. The dev container will stop on your local computer:

```console
daytona stop
Expand All @@ -143,6 +145,6 @@ daytona delete

The container is removed from the system.

You now understand the basic commands to manage local development environments with Daytona.
You have now learned the basic commands to manage local development environments with Daytona.

Next, you can learn how to manage remote development environments.
You can now move on to learn how to manage remote development environments.
8 changes: 4 additions & 4 deletions content/learning-paths/cross-platform/daytona/providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ layout: "learningpathall"

---

Daytona allows you to use various cloud providers to manage your development environments. Installing providers doesn't require any configuration input. The details of using a provider are needed when a Daytona target is configured.
Daytona allows you to use various cloud providers to manage your development environments. Installing providers does not require any configuration input. The details of using a provider are required when a Daytona target is configured.

To add providers run:
To add providers, run:

```console
daytona provider install
```

Docker is already installed.

Select the providers you want to install using the arrow keys to select a provider.
Select the providers you want to install using the arrow keys.

Select No when asked about creating a target. You can enter the details later when a new target is created.
Select **No** when you are asked about creating a target. You can enter the details later when a new target is created.

To verify providers are installed, run the following command:

Expand Down
Loading