Citrix Secure Developer Spaces™

Strong Installer CLI

The Strong Installer CLI (strong-cli) helps you install, upgrade, and manage Secure Developer Spaces deployments. You run the CLI from the Strong Installer container.

Overview

Use this article to:

  • Install Secure Developer Spaces for the first time.
  • Upgrade an existing deployment.
  • Push container images to your registry.

Prerequisites

Before you begin, make sure you have:

  • Docker installed and running on your local machine.
  • Credentials for your container registry.
  • Network access to Docker Hub and your destination registry.
  • Enough disk space to download and push container images.

Run Strong Installer

Strong Installer is available as a Docker container on Docker Hub. Run this command to start it:

docker run -it --rm -v ${PWD}:/strong-network/shared \
    strongnetwork/strong_installer:2026.4.5
<!--NeedCopy-->

Note:

${PWD} mounts your current directory to /strong-network/shared inside the container. Strong Installer saves configuration files and Helm charts to this location.

Install Secure Developer Spaces

Before you begin

Make sure you have:

  • The destination container registry URL.
  • Authentication credentials for your registry.
  • The service and workspace versions you want to install.

Installation steps

  1. Start the Strong Installer container:

    docker run -it --rm -v ${PWD}:/strong-network/shared \
        strongnetwork/strong_installer:2026.4.5
    <!--NeedCopy-->
    
  2. Run the installation command:

    ./strong-cli install
    <!--NeedCopy-->
    

    Optional: Specify the service and workspace versions with flags:

    ./strong-cli install -v 2026.4.5 -w 2.3.6
    <!--NeedCopy-->
    
  3. Enter the initial configuration values when prompted.

  4. Follow the prompts to authenticate to your cloud provider or registry.

  5. Enter the full destination registry URL.

  6. Wait while the CLI creates the configuration file and pushes images to your registry.

Installation flags

Flag Description Default
-v, –version Service version to install Value from VERSION file
-w, –workspace-image-tag Workspace image tag Value from WORKSPACE_IMAGE_TAG file

Registry authentication

Strong Installer detects the registry type from the URL and prompts for the appropriate credentials:

Registry type Authentication method
Google Cloud (GCP) User account or service account key file
Amazon Web Services (AWS) Access key ID and secret access key
Microsoft Azure User account or service principal
Other registries Username and password

Important:

After you authenticate, the Helm chart file is downloaded to your shared directory. Secure this file immediately, as it contains your deployment configuration.

Upgrade an existing deployment

Before you begin

Make sure you have:

  • The configuration file from your previous deployment, for example, config_2024.5.0.yaml.
  • Access to the same container registry used in the original deployment.

Procedure

  1. Start the Strong Installer container with the new version:

    docker run -it --rm -v ${PWD}:/strong-network/shared \
        strongnetwork/strong_installer:2026.4.5
    <!--NeedCopy-->
    
  2. Run the upgrade command with your existing configuration file:

    ./strong-cli upgrade -c config_2026.4.4.yaml
    <!--NeedCopy-->
    
  3. Follow the prompts to complete the upgrade.

Upgrade without a configuration file

If you do not have the original configuration file, run the upgrade with the --ignore-config flag:

./strong-cli upgrade --ignore-config \
    --domain your-domain.example.com \
    --last-deployed-version 2026.4.4
<!--NeedCopy-->
Flag Description Required
–ignore-config Skip using a configuration file Yes
–domain Your deployment domain Yes
–last-deployed-version Previously deployed version Yes

Warning:

If you upgrade without a configuration file, you must enter all deployment parameters manually. Use this option only if the configuration file is unavailable.

Automated upgrade

For CI/CD pipelines or other automated deployments, you can run the full upgrade with one command.

Example: Google Artifact Registry

docker run -it --rm -v ${PWD}:/strong-network/shared \
    --entrypoint=/strong-network/strong-cli \
    strongnetwork/strong_installer:2026.4.5 \
    upgrade \
    -c config_2026.4.4.yaml \
    --source-registry-region eu \
    --dst-reg-url europe-west6-docker.pkg.dev/your-project/your-registry \
    --gcp-key-file shared/your-service-account.json
<!--NeedCopy-->

Common flags

Flag Description
-c, –config Path to the configuration file
–source-registry-region Source registry region: us, eu, or asia
–dst-reg-url Destination registry URL
–verbose Enable verbose output

Registry-specific flags

Google Artifact Registry

Flag Description
–gcp-key-file Path to the service account key file (JSON)

Amazon Elastic Container Registry

Flag Description
–aws-access-key-id AWS access key ID
–aws-secret-access-key AWS secret access key
–aws-session-token AWS session token (optional)

Azure Container Registry

Flag Description
–service-principal-app-id Azure service principal application ID
–service-principal-secret Azure service principal client secret
–service-principal-tenant-id Azure service principal tenant ID

Generic container registry (Docker login)

Flag Description
–use-docker-login Use Docker login instead of cloud provider authentication
–registry-username Registry username
–registry-password Registry password

Tip:

Use --use-docker-login with --registry-username and --registry-password to skip cloud provider authentication prompts. This is useful for CI/CD pipelines that do not support interactive prompts.

Push images only

To push container images without running a full installation or upgrade, use the push-images command.

Procedure

  1. Start the Strong Installer container:

    docker run -it --rm -v ${PWD}:/strong-network/shared \
        strongnetwork/strong_installer:2026.4.5
    <!--NeedCopy-->
    
  2. Run the push-images command:

    ./strong-cli push-images \
        --source-registry-region eu \
        -c config.yaml \
        --verbose
    <!--NeedCopy-->
    

Push images with Docker login (non-interactive)

For CI/CD pipelines, use the --use-docker-login flag to skip cloud authentication prompts:

./strong-cli push-images \
    --source-registry-region eu \
    --use-docker-login \
    --registry-username "your-username" \
    --registry-password "your-password" \
    -c config.yaml
<!--NeedCopy-->

Push image flags

Flag Description
–use-docker-login Skip cloud provider authentication and use Docker login directly
–registry-username Docker registry username
–registry-password Docker registry password
–source-registry-region Source registry region: us, eu, or asia
–skip-service-images Skip pushing service images
–skip-workspace-images Skip pushing workspace images
–skip-bitnami-mongodb-image Skip pushing Bitnami MongoDB image
–ignore-image Specific image name to skip (can be repeated)
–verbose Enable verbose output

Troubleshooting

Authentication prompts in CI/CD

Issue Resolution
The CLI prompts you to choose an authentication method even when credentials are provided. Use --use-docker-login with --registry-username and --registry-password to skip cloud provider authentication.
./strong-cli push-images \
    --use-docker-login \
    --registry-username "$USERNAME" \
    --registry-password "$PASSWORD" \
    ...
<!--NeedCopy-->

Docker permission denied

Issue Resolution
Permission denied errors when you run Docker commands Make sure your user is added to the docker group, or prefix the command with sudo.

Image push failures

Issue Resolution
Images fail to push to the destination registry. Verify that your registry credentials are correct.
  Make sure the destination registry exists and is accessible.
  Check network connectivity to both the source and destination registries.
  Use --verbose for detailed error messages.