System overview
Tranzify Watch is a self-hosted platform for telemetry collection, event exploration, threat detection and incident response.
Version 0.2.0 provides Linux agents for amd64 and arm64. Amazon S3 and HTTP API sources operate without an agent.
System requirements
The installer exits before making changes when the host does not meet the minimum requirements.
| Resource | Minimum | Recommended |
|---|---|---|
| Operating system | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
| CPU | 2 vCPU | 4+ vCPU |
| Memory | 8 GB | 16+ GB |
| Disk | 40 GB SSD | Based on volume and retention |
| Network | TCP 80/443 | Domain and trusted TLS |
A 365-day retention policy does not imply a fixed disk size. Estimate events per second, average event size and keep at least 30% free space.
One-command installation
The installer validates compatibility, verifies the signed release and deploys isolated system components.
$ curl -fsS https://packages.tranzify.watch/install.sh | sudo bash- 1Validate the host
Check OS, architecture, CPU, memory, disk, ports and package access.
- 2Verify the release
Validate SHA-256, the KMS manifest signature and installer compatibility.
- 3Prepare services
Create the system account, directories, PostgreSQL, ClickHouse, backend and frontend.
- 4Complete setup
Use a one-time token to create the first administrator in the setup wizard.
Verify the release without installing
$ curl -fsS https://packages.tranzify.watch/install.sh | bash -s -- --verify-only --version 0.2.0Network and TLS
Use a public domain, a direct IP address or a closed network. The connection mode can be changed later in platform settings.
Domain + Let’s Encrypt
Automatic trusted certificate issuance and renewal. DNS and inbound TCP 80/443 are required.
IP / VPN + Internal CA
For VPC, PrivateLink, VPN and isolated networks. Trust the internal CA on every agent.
HTTP without TLS
Only for physically trusted test segments. Never use it across untrusted networks.
Connect a Linux agent
The agent enrolls once. A short-lived token is stored only as a hash and becomes invalid after successful use.
The core may deliver a signed configuration or disable an agent. It cannot execute arbitrary commands on the monitored host.
What a policy controls
- heartbeat, resource and inventory intervals;
- update, antivirus, firewall and listener checks;
- journald units and custom log file paths;
- queue size, batching and offline behavior;
- a dedicated dataset for every event stream.
Agentless data sources
Scheduled sources keep an independent cursor and do not reread successfully processed data.
Use an IAM role or access key, bucket and prefix, glob patterns, nested objects and explicit error handling.
production/audit/*.logConfigure GET or POST, headers, body, expected status code and response-content checks.
200 + body contains "ok"Parsers and detection rules
A text line first matches a safe RE2 expression. Named groups become normalized fields before a versioned detection rule evaluates them.
192.0.2.10 - admin [27/Jul/2026:08:12:45 +0000] "GET /health HTTP/1.1" 200 42
↓ RE2 named groups
source.ip · user.name · http.method · url.path · http.status_codeRaw preserves the original event for investigation. Normalized contains the stable output of a specific parser revision used by filters, dashboards and rules.
Incident response
Promote an alert to an incident with owners, statuses, comments, attachments, evidence, resolution notes and a complete activity timeline.
The workflow helps produce operational evidence, but does not by itself constitute ISO 27001 or PCI DSS certification.
Security model
- Least privilegeRoles separate visibility, alert handling and administration.
- Signed configurationThe agent applies only a valid Ed25519 policy and does so atomically.
- Protected secretsSource credentials are encrypted and never returned by the API after saving.
- Immutable auditSign-ins, reads, changes, errors and access denials enter the activity log.
- No arbitrary codeCustom parsers and rules use a constrained DSL without code execution.
Updates and rollback
Every release is immutable. The client verifies the manifest signature before download and every artifact hash before installation.
$ sudo tranzify-watch update --version 0.2.0Back up PostgreSQL, ClickHouse and configuration. Test production upgrades on a representative non-production instance first.
Connect the first server
After installation, open Agents and create a one-time enrollment token.
Return to quick start