> For the complete documentation index, see [llms.txt](https://docs.hedge.video/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hedge.video/offshoot/deployment.md).

# Deployment

OffShoot is used by many facilities with hundreds of offload/ingest stations, so we made it easy to deploy OffShoot at scale. We strongly suggest using an MDM solution to set up OffShoot deployment.

## Disable first-start onboarding window

{% tabs %}
{% tab title="macOS" %}
{% code overflow="wrap" %}

```bash
sudo defaults write /Library/Preferences/nl.syncfactory.Hedge.Mac SFIDefaultsFirstAppStart -bool false
```

{% endcode %}
{% endtab %}

{% tab title="Windows" %}
{% code overflow="wrap" %}

```bash
New-Item -Path "HKLM:\Software\OffShoot" -Force | Out-Null

New-ItemProperty `
  -Path "HKLM:\Software\OffShoot" `
  -Name "OnboardingWhatsNewVersion" `
  -Value "26.2" `
  -PropertyType String `
  -Force
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Disable what's-new onboarding window

{% tabs %}
{% tab title="macOS" %}
{% code overflow="wrap" %}

```bash
sudo defaults write /Library/Preferences/nl.syncfactory.Hedge.Mac SFIDefaultsOnboardingWhatsNewDisplayedInVersion -string 26.2
```

{% endcode %}
{% endtab %}

{% tab title="Windows" %}
{% code overflow="wrap" %}

```bash
New-Item -Path "HKLM:\Software\OffShoot" -Force | Out-Null

New-ItemProperty `
  -Path "HKLM:\Software\OffShoot" `
  -Name "OnboardingWhatsNewVersion" `
  -Value "26.2" `
  -PropertyType String `
  -Force
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Disable helper app installation popup

On first launch, the OffShoot OWC integration installs a helper app that macOS may periodically prompt users to approve. To prevent these prompts, you can disable the integration during deployment.

{% hint style="info" %}
It's currently not possible to install the OWC integration silently.
{% endhint %}

{% tabs %}
{% tab title="macOS" %}
{% code overflow="wrap" %}

```bash
sudo defaults write /Library/Preferences/nl.syncfactory.Hedge.Mac SFIDefaultsOWCEnabled -bool false

build_number=1234 &&
sudo defaults write /Library/Preferences/nl.syncfactory.Hedge.Mac OWCIntegrationIsInstalledInBuildNumber -string "$build_number"
```

{% endcode %}

{% hint style="info" %}
The build number can be found in OffShoot > About. Or via:&#x20;

{% code overflow="wrap" %}

```bash
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' '/Applications/OffShoot.app/Contents/Info.plist'
```

{% endcode %}
{% endhint %}
{% endtab %}
{% endtabs %}

## Activating OffShoot

Activating a license can be done via the API:

```bash
offshoot://activate?key=[your license key]
```

Deactivation works via the same mechanism:

```bash
offshoot://deactivate
```

## Settings and Presets

By default, OffShoot stores settings and presets per user. When multiple users use the same computer, each user has their own preferences and presets.

If needed, OffShoot can use computer-based settings and presets.

### Settings

OffShoot settings can be set at different levels. Each level overrides the levels before it.

1. **App Settings**\
   The default settings of OffShoot.
2. **Computer Settings**\
   Settings stored for the computer. These apply to all users on the same computer, unless overridden by user settings or policies.
3. **User Settings**\
   Settings stored for the current user. These override computer settings.
4. **Computer Policy**\
   Policy settings stored for the computer. These override the computer and user settings. Users can still change these settings while using OffShoot, but the settings will revert to the computer policy when OffShoot is relaunched.
5. **User Policy**\
   Policy settings stored for the current user. These have the highest priority. Users can still change these settings while using OffShoot, but the settings will revert to the user policy when OffShoot is relaunched.

{% hint style="info" %}
On macOS, preferences may be cached by the system or overwritten by OffShoot while it is running. Before changing settings, make sure OffShoot is closed.

If changes do not appear, make sure to also restart macOS’s preferences server:

```bash
sudo killall cfprefsd
killall cfprefsd
```

{% endhint %}

#### App Settings

{% tabs %}
{% tab title="macOS" %}
**Example**

Check OffShoot's default settings

* Open Terminal
* Paste this command and press Return<br>

  ```bash
  defaults read "/Applications/OffShoot.app/Contents/Resources/SFIDefaults"
  ```

{% endtab %}

{% tab title="Windows" %}
**Example**

Check OffShoot's default settings

* Open PowerShell
* Paste this command and press Return<br>

  ```bash
  Get-ItemProperty -Path "HKCU:\Software\OffShoot"
  ```

{% hint style="info" %}
Don't see all the settings? Change the setting you want in OffShoot > Settings, then run the command again.&#x20;
{% endhint %}
{% endtab %}
{% endtabs %}

#### Computer Settings

{% tabs %}
{% tab title="macOS" %}
**Example**

Adds a computer-level setting for `OffShoot > Settings > Connect > Computer Name`

* Open Terminal
* Paste this command and press Return<br>

  ```bash
  sudo /usr/libexec/PlistBuddy \
    -c "Add :SFIDefaultsConnectConnectionName string 'COMPUTER DEFAULT'" \
    "/Library/Preferences/nl.syncfactory.Hedge.Mac.plist"
  ```
* Validate<br>

  ```bash
  defaults read "/Library/Preferences/nl.syncfactory.Hedge.Mac" SFIDefaultsConnectConnectionName
  ```

{% endtab %}

{% tab title="Windows" %}
**Example**

Adds a computer-level setting for `OffShoot > Settings > Connect > Computer Name`

* Open PowerShell
* Paste this command and press Return<br>

  ```bash
  New-Item -Path "HKLM:\Software\OffShoot" -Force | Out-Null

  New-ItemProperty `
    -Path "HKLM:\Software\OffShoot" `
    -Name "ConnectClientName" `
    -Value "COMPUTER DEFAULT" `
    -PropertyType String `
    -Force
  ```
* Validate<br>

  ```bash
  Get-ItemProperty -Path "HKLM:\Software\OffShoot" -Name "ConnectClientName"
  ```

{% endtab %}
{% endtabs %}

#### **User Settings**

{% tabs %}
{% tab title="macOS" %}
**Example**

Adds a user-level setting for `OffShoot > Settings > Connect > Computer Name`

* Open Terminal
* Paste this command and press Return

  * Current user<br>

    ```bash
    defaults write ~/Library/Preferences/nl.syncfactory.Hedge.Mac SFIDefaultsConnectConnectionName "USER DEFAULT"
    ```

    \
    Validate<br>

    ```bash
    defaults read ~/Library/Preferences/nl.syncfactory.Hedge.Mac.plist SFIDefaultsConnectConnectionName
    ```

  * Specific user<br>

    ```bash
    sudo /usr/libexec/PlistBuddy \
      -c "Add :SFIDefaultsConnectConnectionName string 'USER DEFAULT'" \
      "/Users/<username>/Library/Preferences/nl.syncfactory.Hedge.Mac.plist"
    ```

{% endtab %}

{% tab title="Windows" %}
**Example**&#x20;

Adds a computer-level setting for `OffShoot > Settings > Connect > Computer Name`

* Open PowerShell
* Paste this command and press Return
  * Current user<br>

    ```bash
    New-Item -Path "HKCU:\Software\OffShoot" -Force | Out-Null

    New-ItemProperty `
      -Path "HKCU:\Software\OffShoot" `
      -Name "ConnectClientName" `
      -Value "USER DEFAULT" `
      -PropertyType String `
      -Force
    ```

    \
    Validate<br>

    ```bash
    Get-ItemProperty -Path "HKCU:\Software\OffShoot" -Name "ConnectClientName"
    ```

{% endtab %}
{% endtabs %}

#### **Computer Policy**

{% tabs %}
{% tab title="macOS" %}
{% hint style="info" %}
The example below uses /Library/Managed Preferences and is intended for testing only. For production deployments, refer to [Apple’s documentation on Managed Preferences](https://developer.apple.com/documentation/devicemanagement/managedpreferences) for the correct implementation.
{% endhint %}

**Example**

Adds a computer-level policy for `OffShoot > Settings > Connect > Computer Name`

* Open Terminal
* Paste this command and press Return<br>

  ```bash
  sudo /usr/libexec/PlistBuddy \
    -c "Add :SFIDefaultsConnectConnectionName string 'COMPUTER POLICY'" \
    "/Library/Managed Preferences/nl.syncfactory.Hedge.Mac.plist"
  ```

Validate

{% code overflow="wrap" %}

```bash
defaults read "/Library/Managed Preferences/nl.syncfactory.Hedge.Mac" SFIDefaultsConnectConnectionName
```

{% endcode %}
{% endtab %}

{% tab title="Windows" %}
**Example**

Adds a computer-level policy for `OffShoot > Settings > Connect > Computer Name`

* Open PowerShell as Administrator
* Paste this command and press Return<br>

  ```bash
  New-Item -Path "HKLM:\Software\Policies\OffShoot" -Force | Out-Null

  New-ItemProperty `
    -Path "HKLM:\Software\Policies\OffShoot" `
    -Name "ConnectClientName" `
    -Value "COMPUTER POLICY" `
    -PropertyType String `
    -Force
  ```

Validate

```bash
Get-ItemProperty -Path "HKLM:\Software\Policies\OffShoot" -Name "ConnectClientName"
```

{% endtab %}
{% endtabs %}

#### **User Policy**

{% tabs %}
{% tab title="macOS" %}
{% hint style="info" %}
The example below writes values to `/Library/Managed Preferences/nl.syncfactory.Hedge.Mac.plist` directly and is intended for testing only. For production deployments, refer to [Apple’s documentation on Managed Preferences](https://developer.apple.com/documentation/devicemanagement/managedpreferences) for the correct implementation.
{% endhint %}

**Example**

Adds a user-level policy for `OffShoot > Settings > Connect > Computer Name`

* Open Terminal
* Paste this command and press Return<br>

  ```bash
  sudo /usr/libexec/PlistBuddy \
    -c "Add :SFIDefaultsConnectConnectionName string 'USER POLICY'" \
    "/Library/Managed Preferences/<username>/nl.syncfactory.Hedge.Mac.plist"
  ```
* Validate<br>

  <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">defaults read "/Library/Managed Preferences/&#x3C;username>/nl.syncfactory.Hedge.Mac" SFIDefaultsConnectConnectionName
  </code></pre>

{% endtab %}

{% tab title="Windows" %}
**Example**&#x20;

Adds a user-level policy for `OffShoot > Settings > Connect > Computer Name`

* Open PowerShell as Administrator
* Paste these commands and press Return
  * To set a user policy for another user, write to that user’s hive under `HKEY_USERS` using their SID.<br>

    ```bash
    Get-CimInstance Win32_UserProfile |
      Select-Object LocalPath, SID
    ```

    \
    Then, replace `S-1-5-21-...` with the user’s actual SID:<br>

    ```bash
    New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS -ErrorAction SilentlyContinue

    New-Item -Path "HKU:\S-1-5-21-...\Software\Policies\OffShoot" -Force | Out-Null

    New-ItemProperty `
      -Path "HKU:\S-1-5-21-...\Software\Policies\OffShoot" `
      -Name "AutoSourceSearchPattern" `
      -Value "USER POLICY SETTINGS" `
      -PropertyType String `
      -Force
    ```
* Validate<br>

  ```
  Get-ItemProperty -Path "HKCU:\Software\Policies\OffShoot" -Name "ConnectClientName"
  ```

{% endtab %}
{% endtabs %}

### Presets

By default, presets are stored separately for each account. You can set a different preset location with a computer setting or policy. This allows multiple users on the same computer to share the same presets.

{% tabs %}
{% tab title="macOS" %}
**Example**

Override OffShoot's default preset folder location for all users.

* Open Terminal
* Paste this command and press Return<br>

  <pre class="language-bash" data-overflow="wrap"><code class="lang-bash"><strong>sudo mkdir -p "/Users/Shared/OffShoot Presets"
  </strong>
  PLIST="/Library/Preferences/nl.syncfactory.Hedge.Mac.plist"
  VALUE="/Users/Shared/OffShoot Presets"

  sudo /usr/libexec/PlistBuddy -c "Set :PresetsLocation '$VALUE'" "$PLIST" 2>/dev/null || sudo /usr/libexec/PlistBuddy -c "Add :PresetsLocation string '$VALUE'" "$PLIST"
  </code></pre>
* Validate<br>

  <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">defaults read "/Library/Preferences/nl.syncfactory.Hedge.Mac" PresetsLocation
  </code></pre>

{% endtab %}

{% tab title="Windows" %}
**Example**&#x20;

Override OffShoot's default preset folder location for all users.

* Open PowerShell as administrator
* Paste this command and press Return<br>

  ```bash
  New-Item -Path "HKLM:\Software\OffShoot" -Force | Out-Null

  New-ItemProperty `
    -Path "HKLM:\Software\OffShoot" `
    -Name "PresetsLocation" `
    -Value "C:\Users\Public\OffShoot Presets" `
    -PropertyType String `
    -Force
  ```
* Validate<br>

  ```bash
  Get-ItemProperty -Path "HKLM:\Software\OffShoot" -Name "PresetsLocation"
  ```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hedge.video/offshoot/deployment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
