Skip to content

Providers

Daytona abstracts the management and deployment of Workspaces into 2 related concepts:

  1. 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.
  2. 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

  1. Execute the following command to install a new Provider:
    Terminal window
    daytona provider install
  2. 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 1 Provider installed.

Procedure

  1. Execute the following command to uninstall a Provider:
    Terminal window
    daytona provider uninstall
  2. 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 1 Provider installed.

Procedure

  1. Execute the following command to update a Provider:
    Terminal window
    daytona provider update
  2. 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

  1. Execute the following command:
    Terminal window
    daytona target set
  2. Select the appropriate Provider for the environment you want to deploy to.
  3. Select New Target.
  4. Enter a name for your Target.
  5. Enter the appropriate configuration options when prompted.
  6. 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 1 configured Target.

Procedure

  1. Execute the following command to enter the interactive terminal UI:
    Terminal window
    daytona target set
  2. 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:

  1. Container Image
    The base image used by Daytona to deploy new Workspaces. The default value is daytonaio/workspace-project.
  2. Remote Hostname
    The hostname of the remote host.
  3. 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.
  4. 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)
  5. Remote User
    The username used to execute the required commands on the remote host.
  6. 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)
  7. 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.