BetaFree-to-use OpAMP fleet management for Windows & LinuxDownload →
Walkthrough Guide

Install on Windows Server

Deploy CollectorCtrl on Windows Server 2016+ with native Windows Service integration.

15 minStep-by-step

Install on Windows Server

Deploy CollectorCtrl on Windows with the interactive installer (.exe). It configures CollectorCtrl as a background Windows Service — no manual service registration needed.


Prerequisites

  • Windows Server 2016+ or Windows 10/11 (64-bit)
  • Administrator privileges
  • OpenTelemetry Collector binary (otelcol.exe) available on agent machines
  • Ports 4320 and 4321 available

Part 1: Install the Management Server

Step 1: Download the Installer

Download the newest release from the releases page (pick the latest tag, e.g. v0.2.6-beta):

  • Standard Edition (SQLite): collectorctrl-server_0.2.6_windows_amd64.exe — zero configuration, good for testing and smaller fleets
  • PostgreSQL Edition: collectorctrl-server-postgres_0.2.6_windows_amd64.exe — for production fleets

Step 2: Run the Installer

  1. Double-click the .exe (or right-click → Run as Administrator) and follow the setup wizard
  2. Choose the installation directory (default: C:\Program Files\CollectorCtrl)
  3. PostgreSQL Edition only: enter your PostgreSQL host (127.0.0.1), port (5432), user (postgres), and password
  4. Finish the wizard and leave "Launch CollectorCtrl Web Console" checked

The installer registers and starts a Windows Service named CollectorCtrl, then opens your browser automatically.

Step 3: Access the Dashboard

Your browser opens at 👉 http://localhost:4321

Or use your server's IP/hostname if accessing remotely: http://YOUR_SERVER_IP:4321

Default credentials:

  • Username: admin
  • Password: admin
Note

⚠️ The dashboard is served over plain HTTP by default — not HTTPS. Change the default password immediately after first login, and see Optional: Enable Production HTTPS below before exposing the UI to a network.


Part 2: Managing the Windows Service

You can start, stop, or check the status of CollectorCtrl via Services (services.msc) or PowerShell (as Administrator):

PowerShell (Admin)
# Check service status
PS >Get-Service CollectorCtrl
# Restart service
PS >Restart-Service CollectorCtrl
# Stop service
PS >Stop-Service CollectorCtrl

Optional: Enable Production HTTPS

By default, CollectorCtrl listens on http://localhost:4321. For production HTTPS you have two options:

Option A: Reverse Proxy (Recommended)

Terminate TLS on port 443 using IIS, Nginx, or Caddy, and forward traffic to http://localhost:4321. This gives you managed certificates, standard ports, and keeps TLS config out of the app.

Option B: Built-in TLS

Set the COLLECTORCTRL_UI_HTTPS environment variable on the Windows Service:

PowerShell (Admin)
PS >Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CollectorCtrl" -Name Environment -Value "COLLECTORCTRL_UI_HTTPS=true" -Type MultiString
PS >Restart-Service CollectorCtrl

Part 3: Install the Supervisor Agent

Repeat these steps on every server where you want to manage an OpenTelemetry Collector.

Note

⚡ Recommended: use the Get Started wizard. Open Get Started (🧭) in the dashboard — it generates a PowerShell one-liner with your server address pre-filled, downloads the correct installer (from the server's mirror first, so agent machines need no internet access), and registers the service. The steps below are the manual equivalent.

Step 1: Download the Supervisor Installer

Download collectorctrl-supervisor_0.2.6_windows_amd64.exe from the releases page (pick the newest release tag).

Step 2: Run the Installer

  1. Right-click collectorctrl-supervisor_0.2.6_windows_amd64.exe and select Run as Administrator
  2. Server Connection Page:
    • Server OpAMP Endpoint: Enter your CollectorCtrl server's OpAMP URL
      • Example: ws://192.168.1.10:4320/v1/opamp
      • Use ws:// for plain connections (the default) or wss:// for TLS
  3. Collector Configuration Page:
    • OpenTelemetry Collector Binary: Select the path to your otelcol.exe
      • Default: C:\Program Files\otelcol\otelcol.exe
    • Initial Config (optional): Select an initial YAML config if you have one
  4. Complete the wizard

The installer:

  • Writes supervisor.yaml to C:\Program Files\CollectorCtrl Supervisor\
  • Registers the CollectorCtrlSupervisor Windows Service
  • Starts the service automatically

Step 3: Verify the Agent Appears in the Dashboard

Within 30 seconds, the agent should appear in the Fleet Overview at http://YOUR_SERVER_IP:4321.


Part 4: Manual Service Registration (Alternative)

If you prefer command-line or need to deploy via Group Policy/SCCM:

PowerShell (Admin)
# Create the service
PS >New-Service -Name 'CollectorCtrlSupervisor' \`
PS > -BinaryPathName '"C:\Program Files\CollectorCtrl Supervisor\supervisor.exe" --config "C:\Program Files\CollectorCtrl Supervisor\supervisor.yaml"' \`
PS > -DisplayName 'CollectorCtrl Supervisor' \`
PS > -StartupType Automatic
# Start the service
PS >Start-Service -Name 'CollectorCtrlSupervisor'
# Verify
PS >Get-Service -Name 'CollectorCtrlSupervisor'

Configuration Reference

Default Paths

ComponentPath
Server binaryC:\Program Files\CollectorCtrl\server.exe
Server configC:\ProgramData\CollectorCtrl\
Server logsC:\ProgramData\CollectorCtrl\logs\server.log
Supervisor binaryC:\Program Files\CollectorCtrl Supervisor\supervisor.exe
Supervisor configC:\Program Files\CollectorCtrl Supervisor\supervisor.yaml
Supervisor logsC:\ProgramData\CollectorCtrlSupervisor\supervisor.log
Database (SQLite)C:\ProgramData\CollectorCtrl\collectorctrl.db

supervisor.yaml Template

server:
  endpoint: 'ws://YOUR_SERVER_IP:4320/v1/opamp'
  token: 'YOUR_API_TOKEN'
  tls:
    insecure_skip_verify: true

capabilities:
  reports_effective_config: true
  reports_own_metrics: true
  reports_own_logs: true
  reports_own_traces: true
  reports_health: true
  accepts_remote_config: true
  reports_remote_config: true
  accepts_restart_command: true
  accepts_packages: true

agent:
  executable: 'C:\Program Files\OpenTelemetry Collector\otelcol.exe'
  passthrough_logs: true
  config_files:
    - 'C:\Program Files\OpenTelemetry Collector\config.yaml'

storage:
  directory: 'C:\ProgramData\CollectorCtrlSupervisor\storage'

telemetry:
  logs:
    level: info
    output_paths:
      - 'C:\ProgramData\CollectorCtrlSupervisor\supervisor.log'
Note

Note: Use wss:// instead of ws:// when your server terminates TLS for OpAMP. Escape backslashes in YAML as \\ or use forward slashes.


Firewall Requirements

Ensure the following ports are open:

PortDirectionPurpose
4320 (TCP/WS)Inbound to ServerOpAMP agent communication
4321 (TCP/HTTP)Inbound to ServerAdmin UI and REST API
13133 (TCP)Localhost onlyOTel Collector health check

No inbound ports need to be opened on agent machines — they connect outbound to the server.


Troubleshooting

ProblemSolution
Browser shows "can't reach" via https://The UI is plain HTTP — use http://localhost:4321
Service won't startCheck C:\ProgramData\CollectorCtrl\logs\server.log for errors
Agent not appearingVerify server IP and port 4320 are reachable: Test-NetConnection -ComputerName SERVER_IP -Port 4320
TLS errorsIf using self-signed certs, set insecure_skip_verify: true in supervisor.yaml
Config not applyingEnsure otelcol.exe path is correct and the binary is executable

Next Steps