Providers
Daytona abstracts the management and deployment of Workspaces into 2 related concepts:
- Provider
A plugin that interfaces with the Daytona Server, responsible for Workspace deployment and lifecycle management. Examples of platforms Providers may connect with include:- Container management platforms such as Docker or Podman;
- Cloud hosting providers such as AWS or DigitalOcean.
- Target
A set of configuration that governs how Daytona manages and deploys Workspaces. Each Target is tied to an individual Provider. Daytona allows you to configure new and existing Targets, and choose between them at Workspace creation time.
Daytona’s architecture decentralizes the role of a Provider into a separate service. The Daytona Server communicates with Providers to execute operations relating to Workspace creation and lifecycle management.
This makes it possible to create new Providers to govern Workspace management on any platform or hosting providers.
Managing Providers
Install a Provider
You can install a Provider. Once a new Provider is installed, you can use it when setting a Target.
Prerequisites
- A working installation of Daytona.
Procedure
-
Execute the following command to install a new Provider:
Terminal window daytona provider install -
Select the Provider you want to install from the list.
Uninstall a Provider
You can uninstall an existing Provider.
Prerequisites
- A working installation of Daytona.
- At least one Provider installed.
Procedure
-
Execute the following command to uninstall a Provider:
Terminal window daytona provider uninstall -
Select the Provider you want to uninstall from the list.
Update a Provider
You can update an existing Provider. This allows you to apply the latest enhancements and bug fixes.
Prerequisites
- A working installation of Daytona.
- At least one Provider installed.
Procedure
-
Execute the following command to update a Provider:
Terminal window daytona provider update -
Select the Provider you want to update from the list.
Managing Targets
Set a Target
You can set a new Target for Daytona to use when managing Workspaces.
Prerequisites
- A working installation of Daytona.
- At least one Provider installed.
Procedure
-
Execute the following command:
Terminal window daytona target set -
Select the appropriate Provider for the environment you want to deploy to.
-
Select
New Target
. -
Enter a name for your Target.
-
Enter the appropriate configuration options when prompted.
-
Click
Enter
to add the Target.
Remove a Target
You can remove an existing target. Once a Target is removed, you will not be able to manage or deploy Workspaces without adding another Target with the same configuration.
Prerequisites
- A working installation of Daytona.
- At least one configured Target.
Procedure
-
Execute the following command to enter the interactive terminal UI:
Terminal window daytona target set -
Select the target to remove.
Officially Supported Providers
Docker
After installation, Daytona installs a Provider for Docker (daytona-provider-docker
) by default.
A default Target using the Docker Provider is also added, allowing the creation of Workspaces on your local machine.
Add a Target
When using Docker as a Provider, you have the choice of creating either a local or remote target:
- Remote
The target uses a remote installation of Docker to deploy Workspaces. This requires access to an SSH daemon on the desired host machine, and access to a user with permission to create Docker containers. - Local
The target uses your local installation of Docker to deploy Workspaces. This allows you to use Daytona without needing external servers or infrastructure.
Remote
You can add a target for an installation of Docker on a remote host. When following the Set a Target procedure, note the following configuration options:
- Container Image
The base image used by Daytona to deploy new Workspaces. The default value isdaytonaio/workspace-project
. - Remote Hostname
The hostname of the remote host. - Remote Password
The password for the remote user. If password authentication is disabled on the remote host, you can choose an SSH key in the next step. - Remote Port
The TCP port used to access the remote host’s SSH daemon. Unless otherwise configured on your remote host, this should be set to the default value (22
) - Remote User
The username used to execute the required commands on the remote host. - Sock Path
The Docker UNIX socket location on the remote host. Unless otherwise configured after installing Docker, this should be set to the default value (/var/run/docker.sock
) - Remote Private Key Path The SSH private key used to connect to the remote host. If you are using password authentication, you can choose “None”.
Local
By default, Daytona comes pre-configured with a local Docker Target. If you have removed the default Docker Target, you can recreate it using the Set a Target procedure.