Self-hosted · Pure Go · Binary install

See every network,
from inside your own.

FourEyes is a self-hosted active-monitoring platform — the self-hosted answer to ThousandEyes. Lightweight Go probe nodes run network, path, BGP, DNS, web, browser, transaction, and voice tests, and stream results to a single server with a fast React UI.

Two eyes are enough.

  • ✓ One server, one node binary
  • ✓ Outbound-only probes
  • ✓ No per-test billing
quickstart.sh
two binaries · no infrastructure
# 1. install + run the server (auto-approves local nodes)
curl -fsSL https://github.com/metajar/foureyes/releases/latest/download/install.sh | sh -s -- --component server
foureyes --dev-certs
FOUREYES_AUTO_APPROVE=true foureyes

# 2. enroll a probe node (token from the UI)
curl -fsSL https://github.com/metajar/foureyes/releases/latest/download/install.sh | sh -s -- \
  --component node --token=4E-... --server=host:8443

# open the UI
open https://localhost:8444

What if monitoring wasn't a tax?

Commercial network-monitoring tools bill per test unit, lock you into opaque licensing, and pile on UI clutter. FourEyes is the opposite: a single self-hosted server, probe nodes that weigh nothing, a proto-defined API, and a UI that shows you what matters.

01

Run the server

One Go binary. SQLite by default — no external database, no container required.

02

Enroll a node

A probe node dials out over mTLS with an enrollment token. It works behind NAT.

03

Define a test

Pick a probe type, point it at a target. Results stream back sub-second.

Everything you'd actually use

Nine probe types, correlation, GitOps, dashboards, and an observability export — all in the box.

🌐

HTTP & web

Availability, full httptrace timing breakdown, status, redirects, TLS expiry.

🛣️

Path / ICMP

Ping latency + loss (unprivileged) and hop-by-hop traceroute visualization.

🔀

BGP

Receive-only session monitoring — FSM state, RIB-in counts, UPDATE tally.

🔎

DNS

Resolution against any server, with DNSSEC and full record-type coverage.

🖥️

Browser page-load

Headless Chromium Navigation Timing, paint metrics, resource & byte costs.

📜

Transactions

Closed step-list flows — navigate, click, fill, wait, assert. No RCE channel.

📞

Voice / SIP

SIP signaling health (OPTIONS/REGISTER with digest auth). Signaling-only.

🔗

Agent-to-agent

Node-to-node loss & latency; auto-mesh keeps every pair wired automatically.

📊

Dashboards & sharing

Composable widget boards and token-gated, frozen incident snapshots.

🚨

Alerting

Threshold + N-of-M with mandatory hysteresis; live alert stream.

📦

GitOps

Declare tests, alerts, and dashboards as YAML; apply / diff / export.

🔁

Signed self-update

ed25519-verified, atomic node updates with jittered fleet rollouts.

A quickstart you can actually finish

From a clean install to live results in minutes. Download and run the server (it auto-approves local nodes for dev), then enroll a probe with a token. Open the UI. That's it.

Read the full quickstart →
server
curl -fsSL .../install.sh | sh -s -- --component server
foureyes --dev-certs
FOUREYES_AUTO_APPROVE=true foureyes
node
curl -fsSL .../install.sh | sh -s -- \
  --component node --token=4E-... --server=host:8443

Start seeing your network today

Free, self-hosted, and yours. Five minutes to first results.