Add a Provider
The Devsy team maintains providers for popular services such as:
- Docker (docker)
- Podman (podman)
- Kubernetes (kubernetes)
- SSH (ssh)
- AWS (aws)
- Google Cloud (gcloud)
- Azure (azure)
- Digital Ocean (digitalocean)
Install these providers with the Devsy CLI:
devsy provider add docker
You can get a list of available 1st party providers by using the command:
devsy provider list --available
Devsy Desktop
Open the Providers view and click Add. The provider wizard has four steps:
- Select — pick a built-in preset, or enter a GitHub link,
provider.yamlURL, or local file path in the Provider Source field below the presets. - Configure — fill in provider-specific options (the form is generated from the provider's schema).
- Initialize — Devsy runs the provider init and streams logs.
- Done — review the result. Failures show the underlying error.
The ProviderSheet (click any provider in the list) exposes edit settings, switch version, update, delete, rename, set as default, and re-initialize.
The Desktop Application calls devsy provider add PROVIDER under the hood.
Custom Providers
In the Select step, type one of the following into the Provider Source field below the preset grid:
- A GitHub link to the provider's project
- A URL to a
provider.yaml - A file path to a
provider.yaml
Devsy CLI
Install any provider from the list with:
devsy provider add docker
devsy provider add kubernetes
devsy provider add ssh
devsy provider add aws
devsy provider add azure
devsy provider add gcloud
devsy provider add digitalocean
You can use the --name flag to add multiple providers of the same type with different options, for example devsy provider add aws --name aws-gpu -o AWS_INSTANCE_TYPE=p3.8xlarge
From GitHub
You can specify a custom provider, directly from GitHub, by using the format
my-username/repo, so for example:
devsy provider add devsy-org/devsy-provider-terraform
Devsy will search the latest release for a provider.yaml and download that automatically. This should work for private GitHub repositories where Devsy will use the local https credentials to connect to the GitHub repository.
If you want to install the provider from a different release, you can do the following:
devsy provider add my-org/my-repo@v0.0.1
From Local Path
If you have locally downloaded providers, you can also add them directly to
Devsy, by pointing to the file path of provider.yaml manifest:
devsy provider add ../devsy-provider-mock/provider.yaml
From URL
You can also specify the URL to the provider.yaml file, for example:
devsy provider add https://github.com/devsy-org/devsy-provider-ssh/releases/download/v0.0.3/provider.yaml
Set Provider Options
Each provider defines its own options, so they differ from provider to provider.
Desktop Options
To manage options from the app, head over the Providers section, and click
Edit on the provider you want to configure.
CLI Options
Set options during the add or configure phase:
devsy provider add <provider-name> -o KEY=value
or
devsy provider init <provider-name> -o KEY=value
To manage options later, list the current values with:
devsy provider get <provider-name>
An example output for the AWS Provider is:
NAME | REQUIRED | DESCRIPTION | DEFAULT | VALUE
----------------------------+----------+--------------------------------+-------------------------+--------------------------
AGENT_PATH | false | The path where to inject the | /var/lib/toolbox/devsy | /var/lib/toolbox/devsy
| | Devsy agent to. | |
AWS_ACCESS_KEY_ID | false | The AWS access key id | |
AWS_AMI | false | The disk image to use. | |
AWS_DISK_SIZE | false | The disk size to use. | 40 | 40
AWS_INSTANCE_TYPE | false | The machine type to use. | c5.xlarge | c5.xlarge
AWS_REGION | true | The AWS cloud region to create | | us-west-2
| | the VM in, e.g. us-west-1 | |
AWS_SECRET_ACCESS_KEY | false | The AWS secret access key | |
AWS_VPC_ID | false | The vpc id to use. | |
INACTIVITY_TIMEOUT | false | If defined, will automatically | 10m | 10m
| | stop the VM after the | |
| | inactivity period. | |
INJECT_DOCKER_CREDENTIALS | false | If Devsy should inject docker | true | true
| | credentials into the remote | |
| | host. | |
INJECT_GIT_CREDENTIALS | false | If Devsy should inject git | true | true
| | credentials into the remote | |
| | host. | |
This table is an overview. Change any option with:
devsy provider set <provider-name> --option <KEY>=<VALUE>
For example, to change the disk size from 40GB to 120GB:
devsy provider set aws --option AWS_DISK_SIZE=120
Run devsy provider get aws again to confirm — the VALUE column for AWS_DISK_SIZE now reads 120.
Single Machine Provider
By default, Devsy will use a separate machine for each workspace using the same provider,
you can enable Reuse machine in a provider in order to use a single machine for all workspaces.
In the desktop app the option is available in the option management interface for the provider (see section above)
In the CLI you can set this option using:
devsy provider init <provider-name> --single-machine
Default Provider
When you add a provider, you can mark it as the default provider. Devsy then uses it for any workspace you create without specifying another.
In the desktop app, you can set a provider to be default in the option management interface for the provider (see section above)
In the CLI you can set this option using:
devsy provider use <provider-name>
Community Providers
The community maintains providers for additional services.
- Cloudbit (cloudbit-ch/devsy-provider-cloudbit)
- Flow (flowswiss/devsy-provider-flow)
- Hetzner (mrsimonemms/devsy-provider-hetzner)
- OVHcloud (alexandrevilain/devsy-provider-ovhcloud)
- Scaleway (dirien/devsy-provider-scaleway)
- Exoscale (dirien/devsy-provider-exoscale)
- Multipass (minhio/devsy-provider-multipass)
- Open Telekom Cloud (akyriako/devsy-provider-opentelekomcloud)
- Vultr (navaneeth-dev/devsy-provider-vultr)
- STACKIT (stackitcloud/devsy-provider-stackit)
Install these providers with the Devsy CLI:
devsy provider add <user/repository>