Skip to content
See Also

Extra Features ​

Pre-installing and configuring every possible package would compromise a flexible workspace footprint. Instead, we developed an opt-in method to seamlessly install and configure features at your discretion.

Behind the scenes, we are simply running an Ansible playbook in order to install the desired feature.

Installing Features ​

We provide two methods for installing additional features in the workspace. You can choose the method that best fits your needs.

Install at Boot ​

During startup, the workspace evaluates the WS_EXTRA_FEATURES environment variable to determine which features to install automatically.

sh
docker run \
  -e WS_EXTRA_FEATURES="dotnet jupyter" \
  ghcr.io/kloudkit/workspace:latest

Manual Installation ​

To manually install a feature, run the following command:

sh
# Help information
ws feature install -h

# Example: installing PHP
ws feature install php

As mentioned above, all features are backed by Ansible playbooks. All playbooks are stored in the /features root directory.

The directory location can be overridden using the --root flag when installing. The example below will look for a playbook at /alternate/php.yaml:

sh
ws feature install php --root /alternate

Optional Variables ​

As mentioned above, features are installed using playbooks. Certain playbooks support additional variables for customization.

To do this, use the --opt flag (equivalent to Ansible's --extra-vars), zero or more times, as shown in the example below:

sh
ws feature install dagger --opt dagger_version=0.13.3

Custom Features ​

You can create custom playbooks for specific needs. The template below offers a starting point. Ensure that hosts: workspace remains unchanged, as this targets the active workspace session.

TIP

It may also help to explicitly mention that the custom playbook template can be saved as cool.yaml in the /alternate directory.

yaml
# /alternate/cool.yaml
- name: Install a cool new feature
  gather_facts: false
  hosts: workspace

  tasks:
    - name: Just saying hello
      ansible.builtin.debug:
        msg: Hello world! πŸ‘‹
sh
ws feature install custom --feature cool --root /alternate

Available Features ​

INFO

Have a feature in mind that we haven’t covered? Feel free to suggest it or contribute directly.

For more information, visit our contribution guide.

FeatureDescription
conanConan CLI and related tools
cloudflaredCloudflare tunnel CLI
daggerdagger.io CLI and SDK
dotnet.NET framework and related extensions
gcloudGoogle Cloud CLI for GCP
ghGitHub CLI
jupyterJupyter packages and related extensions
phpPHP and related extensions
resticRestic CLI
rustRust and Cargo

Released under the MIT License