2.8 KiB
OfficeCom Sentinel Deployment
Goal
Deploy and update the endpoint client through NinjaOne while hosting release artifacts in Gitea.
Release assets
Each Gitea release should publish:
OCSentinelClient-win-x64.zipOCSentinelClient-win-x64.zip.sha256version.json
Build these locally with:
powershell -ExecutionPolicy Bypass -File .\build\build-client-package.ps1
powershell -ExecutionPolicy Bypass -File .\build\build-release-manifest.ps1 `
-ArtifactUrl "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v2.0.0/OCSentinelClient-win-x64.zip"
See example manifest:
Endpoint package contents
The installed package should include:
app\OCSentinelCli.exescripts\run-ocsentinel.ps1scripts\run-ocsentinel-monitor.ps1scripts\update-ocsentinel.ps1scripts\protect-ocsentinel-secret.ps1config\ocsentinel-settings.jsonconfig\ocsentinel-client.json
Initial install through NinjaOne
Recommended NinjaOne task:
& "C:\Program Files\OCSentinel\scripts\update-ocsentinel.ps1" `
-ManifestUrl "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v2.0.0/version.json" `
-Force
If the client is not installed yet, you can also first distribute a bootstrap ZIP or setup package, then switch to the updater-only model.
Routine update task
Recommended scheduled task command:
& "C:\Program Files\OCSentinel\scripts\update-ocsentinel.ps1" `
-ManifestUrl "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v2.0.0/version.json"
Behavior
The updater:
- downloads the manifest
- compares installed and available version
- downloads the ZIP only when newer
- validates SHA-256
- validates Authenticode signature when present
- runs the package installer
Secret bootstrap
After installation, provision the upload secret once:
& "C:\Program Files\OCSentinel\scripts\protect-ocsentinel-secret.ps1" `
-SecretValue "<shared-ingest-secret>"
This writes a DPAPI-protected file under:
C:\ProgramData\OCSentinel\secrets\ocsentinel-upload-secret.dat
Runtime task
Recommended runtime task:
& "C:\Program Files\OCSentinel\scripts\run-ocsentinel-monitor.ps1" `
-Mode status `
-OutputPath "..\reports\ocsentinel-summary.json"
Upload is enabled automatically when:
config\ocsentinel-client.jsonexists- the protected secret file exists
Otherwise the client falls back to local scan behavior.
Migration guidance
During migration you can keep old share-based logic disabled by default and only enable the new n8n upload path as secrets and webhook config become available.