Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 34 additions & 1 deletion docs/deploy-and-configure/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ The following environment variables can be set:
| `ORB_FIRSTHOP_DISABLED` | Disables measuring and storing first-hop latency. Should generally be utilized on devices that are acting as a router | `ORB_FIRSTHOP_DISABLED=1` | 1.2 |
| `ORB_BANDWIDTH_DISABLED` | Disables perfoming periodic content speed tests | `ORB_BANDWIDTH_DISABLED=1` | 1.2 |
| `ORB_DEPLOYMENT_TOKEN` | Sets the [Deployment Token](/docs/deploy-and-configure/deployment-tokens#using-environment-variable) | `ORB_DEPLOYMENT_TOKEN=orb-dt1-yourdeploymenttoken678` | 1.2 |
| `ORB_EPHEMERAL_MODE` | Sets Orb measurement data storage to in-memory only. Protects flash memory from frequent writes. All measurement data stored on the Orb is lost when Orb is stopped or restarted. | `ORB_EPHEMERAL_MODE=1` | 1.4.0 |
| `ORB_DEVICE_NAME_OVERRIDE` | Sets this Orb's name which appears in Orb apps and Orb Cloud | `ORB_DEVICE_NAME_OVERRIDE=MyDeviceName` | 1.4.1 |

## Remote Configuration

Expand All @@ -40,4 +42,35 @@ On the Status page, you can select Orbs, click "Apply Configuration", and select

### Configuring Datasets

Orb applications and sensors are capable of producing [Datasets](/docs/deploy-and-configure/datasets) for Scores, Responsiveness, Web Responsiveness, and Speed data. These datasets may be streamed to Orb Cloud, Orb [Local Analytics](/docs/deploy-and-configure/local-analytics), or a destination of your choice. See [Datasets Configuration](/docs/deploy-and-configure/datasets-configuration) for details.
Orb applications and sensors are capable of producing [Datasets](/docs/deploy-and-configure/datasets) for Scores, Responsiveness, Web Responsiveness, and Speed data. These datasets may be streamed to Orb Cloud, Orb [Local Analytics](/docs/deploy-and-configure/local-analytics), or a destination of your choice. See [Datasets Configuration](/docs/deploy-and-configure/datasets-configuration) for details.

### Configuring Collection of Identifiable Information
Orb can collect attributes of your device and network which may be considered identifiable information (e.g. public IP address, network name, or device MAC address). By default, Orb minimizes the amount of potentially identifiable information collected, collecting enough to make the experience work (like your network name) without collecting more potentially identifiable information (like your device MAC address or private IP).

Some users may want to see that extra detail in Orb Cloud, Local Analytics, or via Orb APIs to better identify their devices and networks.

#### Identifiable levels
| Level | Description |
|-------|-------------|
| `none` | Orb will obfuscate any fields that are known to potentially identify your device or network. Your experience in Orb apps and Orb Cloud may be impacted as networks and device details will be obfuscated and it may be hard to tell which device you are looking at. |
| `minimal` | (Default) Orb will not obfuscate some basic potentially identifiable information, like network name, to make the normal Orb app and Orb Cloud user experiences work. Identifiable fields not required for basic app usage, like MAC Address, will still be obfuscated. |
| `full` | Orb will not obfuscate any fields of collected data. |

#### Configuration

Identifiable level is controlled via the `orb.identifiable_level` field in Orb Cloud config.

##### Advanced Configuration Editor
To set the identifiable level using the advanced configuration editor, add the following property to the root of your configuration JSON.

```json
{
"orb.identifiable_level": ["full"],
...
}
```

#### Enabling identifiable information in datasets
While `orb.identifiable_level` informs which attributes of your device and network an Orb obfuscates during collection, there is an additonal option to only obfuscate identifiable information in Datasets outputs.

This allows you to control whether identifiable information is included in Datasets sent to Orb Cloud, Local Analytics, or custom endpoints separately from what is collected. See [Datasets Configuration](/docs/deploy-and-configure/datasets-configuration#identifiable-information) for details.
5 changes: 5 additions & 0 deletions docs/deploy-and-configure/mdm/intune.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,3 +192,8 @@ Verify the installation parameters:
2. Check that `/START_IN_BACKGROUND=1` is included for silent operation
3. Verify Windows startup items aren't disabled by Group Policy
4. Verify the `LaunchAtStartup` and `StartInBackground` items exists in the Registry Editor and have values of `1` in `COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\Orb\MDM`

## Additional Configuration Options

### Device Name Overrides
You can set a custom device name to use during installation by setting the `OrbDeviceNameOverride` item key in the Registry Editor for `COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\Orb\MDM`.
2 changes: 2 additions & 0 deletions docs/deploy-and-configure/mdm/jamf-pro.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ In a text editor, such as Visual Studio Code, create a new file called my-config
<true/>
<key>HideDockIcon</key>
<true/>
<key>OrbDeviceNameOverride</key>
<string>REPLACE WITH DESIRED NAME (optional)</string>
</dict>
</array>
<key>PayloadDisplayName</key>
Expand Down
2 changes: 2 additions & 0 deletions docs/deploy-and-configure/mdm/mosyle.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ In a text editor, such as Visual Studio Code, create a new file called my-config
<true/>
<key>HideDockIcon</key>
<true/>
<key>OrbDeviceNameOverride</key>
<string>REPLACE WITH DESIRED NAME (optional)</string>
</dict>
</array>
<key>PayloadDisplayName</key>
Expand Down
71 changes: 50 additions & 21 deletions docs/setup-sensor/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,50 +42,79 @@ Otherwise, read on!
## Step 1: Prepare the Docker Compose file

1. Create a file named `docker-compose.yml` in this directory.
2. Paste the following content exactly into the `docker-compose.yml` file:
2. Paste the one of the following content blocks exactly into the `docker-compose.yml` file:

a. `docker-compose.yml` with [WUD](https://getwud.github.io/wud) for auto-update (**recommended**)
```yaml
version: '3.0'

services:
orb-docker:
image: orbforge/orb:latest
container_name: orb-sensor # Optional: Give the container a specific name
network_mode: host # Optional: alternatively you can use 'bridge' mode and map ports :7443 and :5353
volumes:
- orb-data:/root/.config/orb # Persists Orb configuration
restart: always # Ensures Orb restarts if it stops or on system reboot
labels:
- "wud.watch=true"
- "wud.trigger.include=docker.orb"
#
# Optional: Limit resources if needed
#
# deploy:
# resources:
# limits:
# memory: 512m
restart: always # Ensures Orb restarts if it stops or on system reboot
labels:
- 'com.centurylinklabs.watchtower.enable=true' # Enable auto-updates with Watchtower
- 'com.centurylinklabs.watchtower.scope=orb' # Scope for Watchtower to monitor

# Optional: Watchtower automatically updates the Orb image when a new version is released
watchtower:
image: containrrr/watchtower
container_name: watchtower
wud:
image: ghcr.io/getwud/wud
container_name: wud
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Required to monitor other containers
command: --label-enable --scope orb --cleanup --interval 3600 # Check for updates every hour (3600s)
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WUD_WATCHER_LOCAL_WATCHBYDEFAULT=false
- WUD_TRIGGER_DOCKER_ORB_AUTO=true
- WUD_TRIGGER_DOCKER_ORB_PRUNE=true
#
# Optional: expose WUD web interface (default host port 3000, adjust as needed)
#
# ports:
# - "3000:3000"

volumes:
orb-data: # Creates a named volume for persistent data
```

b. `docker-compose.yml` without auto-update (*please ensure some orchestration or process exists to update Orb regularly*)
```yaml
services:
orb-docker:
image: orbforge/orb:latest
container_name: orb-sensor # Optional: Give the container a specific name
network_mode: host # Optional: alternatively you can use 'bridge' mode and map ports :7443 and :5353
volumes:
- orb-data:/root/.config/orb # Persists Orb configuration
restart: always # Ensures Orb restarts if it stops or on system reboot
#
# Optional: Limit resources if needed
#
# deploy:
# resources:
# limits:
# memory: 512m

volumes:
orb-data: # Creates a named volume for persistent data
```
**Explanation:**

- `orb-docker`: Defines the main Orb service.
- `image: orbforge/orb:latest`: Uses the official Orb Docker image.
- `network_mode: host`: **Crucial** for Orb to monitor network traffic directly from the host's network interfaces.
- `volumes: - orb-data:/root/.config/orb`: Stores Orb's configuration persistently in a Docker named volume (`orb-data`).
- `restart: always`: Keeps the Orb container running.
- `labels`: Used by Watchtower to know this container should be auto-updated.
- `watchtower`: (Optional but recommended) Defines the Watchtower service to automatically update the Orb container when new images are published.
- `labels`: Used by WUD to know this container should be auto-updated.
- `wud`: (Optional but recommended) Defines the WUD service to automatically update the Orb container when new images are published.
- `volumes: orb-data:`: Declares the named volume used by the `orb-docker` service.

## Step 2: Start the Orb Container
Expand All @@ -101,13 +130,13 @@ Otherwise, read on!
Depending on your Docker version, you may need to use "`docker compose`" rather than "`docker-compose`".
:::

3. Docker Compose will pull the necessary images (`orbforge/orb` and `containrrr/watchtower`) and start the containers. You can check the status with:
3. Docker Compose will pull the necessary images (`orbforge/orb` and `ghcr.io/getwud/wud`) and start the containers. You can check the status with:

```bash
docker-compose ps
```

You should see `orb-sensor` (or `orb-docker` if you didn't set `container_name`) and `watchtower` with state `Up`.
You should see `orb-sensor` (or `orb-docker` if you didn't set `container_name`) and `wud` with state `Up`.
4. You can view the logs for the Orb container using:

```bash
Expand Down Expand Up @@ -141,7 +170,7 @@ If your docker container is running on a different network than your phone or co

## You're Done

Congratulations! Your Docker container is now running as an Orb sensor, monitoring your network. Thanks to Watchtower, it will automatically update when new versions are released.
Congratulations! Your Docker container is now running as an Orb sensor, monitoring your network. Thanks to WUD, it will automatically update when new versions are released.

## Troubleshooting

Expand All @@ -153,12 +182,12 @@ Congratulations! Your Docker container is now running as an Orb sensor, monitori
- Make sure the device running the Orb app is on the _exact same_ network/subnet as the Docker host machine.
- **Permission Errors (especially volume mounts):**
- Using Docker named volumes (`orb-data:` in the example) usually avoids permission issues compared to bind-mounting host directories. If you switched to bind mounts, ensure Docker has the correct permissions to write to the host directory.
- **Watchtower Issues:**
- Check Watchtower logs: `docker-compose logs watchtower`.
- **Auto-update Issues:**
- Check WUD logs: `docker-compose logs wud`.
- Ensure the Docker socket is correctly mounted (`/var/run/docker.sock:/var/run/docker.sock`).
- **Stopping Orb:**
- Navigate to the directory containing `docker-compose.yml` and run `docker-compose down`.
- **Updating Orb Manually (if not using Watchtower):**
- **Updating Orb Manually (if not using WUD):**
- Navigate to the directory containing `docker-compose.yml`.
- `docker-compose pull orb-docker` (pulls the latest image).
- `docker-compose up -d` (recreates the container with the new image).
112 changes: 98 additions & 14 deletions docs/setup-sensor/windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,71 @@ section: setup-sensor
layout: guides
subtitle: 'Difficulty: Beginner 🧑‍💻'
---
# Orb Sensor on Windows

# Install the Orb Sensor on Windows
## Install the Orb Sensor on Windows using Chocolatey

## Installation
Chocolatey is a popular command-line package manager for Windows that simplifies software installation and management.
See the [Orb package on Chocolatey](https://community.chocolatey.org/packages/orb) for available versions and package details.

0. Ensure you have [Chocolatey installed](https://chocolatey.org/install#individual) on your Windows machine.
1. Open Command Prompt or PowerShell as Administrator.
2. Run the following command to install the Orb sensor and follow the prompts:
```cmd
choco install orb
```
Once the installation is complete, you can verify that it succeeded by [looking at the service status](#check-service-status).

## Keeping Orb Up to Date with Chocolatey

If you installed Orb using Chocolatey, you can easily keep it updated to the latest version.

### Manual Updates

To manually update Orb to the latest version, run:

```cmd
choco upgrade orb -y
```

The `-y` flag automatically confirms the upgrade without prompting.

### Automatic Updates with Task Scheduler

To ensure Orb stays up to date automatically, you can set up a Windows Task Scheduler task to run regular updates.

Open PowerShell as Administrator and run:

```powershell
Register-ScheduledTask -TaskName "Orb Auto-Update" `
-Action (New-ScheduledTaskAction -Execute "C:\ProgramData\chocolatey\bin\choco.exe" -Argument "upgrade orb -y") `
-Trigger (New-ScheduledTaskTrigger -Daily -At 3am) `
-Principal (New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest) `
-Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable) `
-Description "Automatically updates Orb sensor via Chocolatey"
```

#### Verify the Scheduled Task

To verify the task was created successfully:

```powershell
Get-ScheduledTask -TaskName "Orb Auto-Update"
```

You can manually run the task to test it:

```powershell
Start-ScheduledTask -TaskName "Orb Auto-Update"
```

:::note
After Chocolatey updates Orb, the Windows service will automatically restart with the new version.
:::

## Install the Orb Sensor on Windows (manual)

### Installation

Setting up a Windows device as an Orb sensor allows you to run continuous network monitoring as a background service.

Expand All @@ -25,12 +86,11 @@ The Orb CLI for Windows is currently Early Access software.

After downloading, extract `orb.exe` to a permanent location on your system (e.g., `C:\Program Files\Orb\orb.exe`).

## Setting Up as a Windows Service
### Setting Up as a Windows Service

You can install Orb as a Windows service using either PowerShell or the `sc.exe` command.

### Option 1: Using PowerShell (Recommended)

#### Option 1: Using PowerShell (Recommended)
Open PowerShell as Administrator and run:

```powershell
Expand All @@ -39,7 +99,7 @@ New-Service -Name "Orb" -BinaryPathName "C:\Program Files\Orb\orb.exe windowsser

Replace `C:\Program Files\Orb\orb.exe` with the actual path where you placed the Orb executable.

### Option 2: Using sc.exe
#### Option 2: Using sc.exe

Open Command Prompt as Administrator and run:

Expand All @@ -51,7 +111,7 @@ sc.exe create Orb binPath= "C:\Program Files\Orb\orb.exe windowsservice" Display
Note the space after `binPath=`, `DisplayName=`, and `start=` in the `sc.exe` command. This is required syntax.
:::

## Starting the Service
### Starting the Service

After creating the service, start it using:

Expand All @@ -67,19 +127,27 @@ sc.exe start Orb

The service will now start automatically on system boot.

## Data Storage
## Configuring the Orb Sensor
You can configure the Orb sensor with any options from [Orb Configuration](/docs/deploy-and-configure/configuration) docs.

When running as LocalSystem (the default), Orb saves data in:
### Environment Variables
To set environment variables for the Orb sensor Windows Service, you can use the `New-ItemProperty` cmdlet in PowerShell.

```
C:\ProgramData\Orb

Example with `ORB_FIRSTHOP_DISABLED` and `ORB_DEPLOYMENT_TOKEN` environment variables:
```powershell
New-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Services\Orb" `
-Name "Environment" `
-PropertyType MultiString `
-Value @("ORB_FIRSTHOP_DISABLED=1", "ORB_DEPLOYMENT_TOKEN=orb-dt1-yourdeploymenttoken678")
```

## Using Deployment Tokens
### Using Deployment Tokens

You can automatically link your Orb sensor to your Orb Cloud Space using a deployment token. This is especially useful for deploying multiple sensors or automating setup.

To use a deployment token, create a file named `deployment_token.txt` in the Orb configuration directory containing your token:
To use a deployment token, you can use the [Environment Variables](#environment-variables) approach above to set `ORB_DEPLOYMENT_TOKEN`, or create a file named `deployment_token.txt` in the Orb configuration directory containing your token:

```cmd
echo orb-dt1-yourdeploymenttoken678 > C:\ProgramData\Orb\deployment_token.txt
Expand All @@ -91,7 +159,15 @@ When the Orb service starts, it will automatically read this file and link to yo

For more details on deployment tokens and other linking methods, see the [Deployment Tokens](/docs/deploy-and-configure/deployment-tokens) guide.

## Orb CLI Commands
### Data Storage

When running as LocalSystem (the default), Orb saves data in:

```
C:\ProgramData\Orb
```

### Orb CLI Commands

The Orb CLI provides a set of commands to manage your Orb sensors and interact with your Orb account. To use these commands, run `orb.exe` directly (not as a service):

Expand Down Expand Up @@ -141,6 +217,13 @@ sc.exe query Orb

### Uninstall the Service

**Chocolatey Uninstall:**
If you installed Orb using Chocolatey, you can uninstall it with:
```cmd
choco uninstall orb
```

**Manual Uninstall:**
First, stop the service, then remove it:

**PowerShell:**
Expand All @@ -155,6 +238,7 @@ sc.exe stop Orb
sc.exe delete Orb
```


## Troubleshooting

If the service fails to start:
Expand Down
Loading