What does "no inbound ports" actually mean?
The agent never listens on a socket. It initiates every connection outbound to the API over HTTPS, sends a heartbeat every 60 seconds, and pulls any work (such as an uptime probe assignment or an opted-in command) from the response. There is nothing for a scanner to find and nothing to firewall. This is the same model as a package updater, not an SSH daemon.
What does the agent read, and what does it refuse to read?
- •Reads: /proc and /sys, systemd, the Docker socket, PM2, nginx and Apache config for virtual hosts, listening ports, journald and well-known application logs, MySQL, Redis and PostgreSQL status via local sockets
- •Never reads .env files or application secrets; database access uses local status commands, not app credentials
- •Masks usernames and IP addresses in SSH login events before they leave the server
- •Ships normalized log entries; the API stores only clustered patterns and counts, never raw lines
- •Buffers up to 24 hours locally in SQLite if the API is unreachable, then catches up
How is telemetry and the agent itself protected?
Every heartbeat is HMAC-SHA256 signed with a per-server secret assigned at registration; the API rejects unsigned or forged payloads. Auto-updates are Ed25519-signed with a key that is never on the API server, so a compromised API cannot push a trojanized agent. The agent is a single static Go binary under 10 MB with no runtime dependencies.
What can remote actions do, and who decides?
By default nothing: the executor is compiled in but disabled. An operator enables it per server with OPSERVO_ENABLE_ACTIONS=true; a fleet-wide update never turns it on. When enabled, commands are Ed25519-signed by the API, verified by the agent before running, executed with a timeout and output cap, and recorded permanently in an audit table. Dispatch from the dashboard requires an owner or admin role and step-up confirmation. Uptime probes run from a server are a separate opt-in.
What questions should you ask any vendor?
- •Does the agent listen on any port? Which?
- •What user does it run as, and what capabilities does it hold?
- •Which files does it read? Does it ever open .env or config files with secrets?
- •Are payloads signed? Are updates signed with a key held off the update server?
- •Can the vendor run commands on my server? Is that on by default? Is it audited?
- •What leaves the server in raw form: logs, usernames, IPs?
Last updated 2026-09-23.