| Version | Supported |
|---|---|
| main | ✅ |
| dev | ✅ |
This software requires:
- Root access: Necessary for systemd service management and running on UniFi OS
- API credentials: Local admin username/password stored in
config.json - Network access: HTTPS calls to the local UniFi Protect API (
127.0.0.1or local NVR IP)
- Local-only communication: All API calls are to the local NVR. No external network access.
- Credential storage:
config.jsoncontains plaintext credentials. It is excluded from git via.gitignore. Ensure proper file permissions on your device. - TLS verification disabled:
curl -kis used because the NVR uses a self-signed certificate. This is acceptable for localhost/LAN communication only. - Temporary files: Cookie jars and response headers are stored in
/tmpwith unique names and cleaned up on exit viatrap.
# Verify config.json permissions on your device
ls -la /data/ptz-patrol/config.json
# Recommended: restrict to root only
sudo chmod 600 /data/ptz-patrol/config.json
sudo chown root:root /data/ptz-patrol/config.json-
GitHub Security Advisories (preferred):
- Go to: https://github.com/iceteaSA/unifi-ptz-better-patrol/security/advisories
- Click "Report a vulnerability"
-
GitHub Issues (for less critical issues):
- https://github.com/iceteaSA/unifi-ptz-better-patrol/issues
- Use the
securitylabel
- Description: Clear description of the vulnerability
- Impact: Potential security impact and severity
- Reproduction: Steps to reproduce the issue
- Environment: Device model, UniFi OS version, Protect version
- Proposed fix (if you have one)
- Initial response: Within 48 hours
- Status update: Within 7 days
- Fix timeline: Depends on severity
- Critical: Within 7 days
- High: Within 14 days
- Medium: Within 30 days
- Low: Next regular release
This project has minimal dependencies — all are standard system tools:
| Tool | Purpose |
|---|---|
bash |
Shell interpreter (4.x+) |
jq |
JSON parsing |
curl |
HTTP calls to Protect API |
No npm packages, no pip packages, no compiled dependencies, no external downloads at runtime. This minimizes supply chain risk.
To apply security updates:
# Re-run installation (preserves config)
curl -sSL https://raw.githubusercontent.com/iceteaSA/unifi-ptz-better-patrol/main/install.sh | sudo bash
# Or manual update
cd unifi-ptz-better-patrol
git pull
sudo ./install.shLast updated: 2026-03-11