Skip to content

Portable, single‑binary network diagnostic toolkit with web UI—Ping, Traceroute, DNS, port scans, sys‑info

License

Notifications You must be signed in to change notification settings

michaelklose/noc2go

Repository files navigation

NOC2GO

Your friendly Swiss‑Army NOC toolkit—everything you need for quick diagnostics in one tiny, cross‑platform Go binary.

Build Latest release Go Reference License


✨ Why NOC2GO?

Need to ping a service, dig a DNS record, or peek at system details—but don’t want to juggle half‑a‑dozen tools that behave differently on every OS?
NOC2GO wraps the basics in a gorgeous little web UI and ships as one self‑contained executable for Windows, macOS, and Linux. Drop it onto a server, your home NAS, or a USB stick and you’re good to go. No installers, no baggage, just the essentials with a smile. 😊


🚀 Feature Highlights

Web UI Tile What it does
Ping IPv4/IPv6 ICMP with live graphs, custom packet size/TTL, DF‑bit toggle, and summary stats.
DNS Lookup A, AAAA, MX, NS, TXT, SRV, PTR—including reverse‑lookup helper, custom resolver support & caching.
System Info Hostname, OS/arch, kernel, uptime, interfaces, routes, DNS servers, proxy vars—handy for “what box is this again?” moments.
Settings Manage saved DNS servers & ping targets, change password, tweak privileged mode.
TLS out‑of‑the‑box Generates a self‑signed cert on first run and serves everything over HTTPS.

Under the hood you’ll also find:

  • Single YAML config (noc2go.yaml) that gets auto‑created on first launch.
  • Session cookies (secure & http‑only) with bcrypt password hashing.
  • Cross‑platform raw‑socket ping when running with elevated privileges (fallback to system ping otherwise).
  • No external dependencies—just Go’s standard library plus a handful of battle‑tested packages.

🏃 Quick Start

# 1. Grab a binary from the latest release page
#    (choose noc2go‑<version>‑windows_amd64.exe, noc2go‑darwin_arm64, etc.)
curl -L -o noc2go https://github.com/michaelklose/noc2go/releases/latest/download/noc2go-linux_amd64
chmod +x noc2go

# 2. Fire it up (first run creates config, cert & key in cwd)
./noc2go --port 8443
#  => Prints a one‑time admin password & HTTPS URL

# 3. Visit https://<host>:8443 in your browser
#    (accept the self‑signed cert if your browser asks)

First‑run tips

  • Admin credentials are shown in the terminal the very first time. Change the password under Settings → Account afterwards.
  • Re‑run with --config /path/to/noc2go.yaml if you’d like to keep the config elsewhere.
  • Add --privileged to enable raw‑socket goodies (requires root/Administrator).

🛠 Building from Source

Requires Go 1.24+.

git clone https://github.com/michaelklose/noc2go.git
cd noc2go
go build -o noc2go ./...

The output binary is fully static on Linux (CGO_ENABLED=0 by default) and contains embedded HTML templates, CSS & JS.


🔧 Command‑line Flags

Flag Default Description
--config noc2go.yaml Path to YAML config file.
--port auto‑select HTTPS port. 0 = pick default (8443) or next free.
--password (random on first run) Admin password seed when generating a fresh config.
--privileged false Enable raw‑socket features (needs root/Administrator). (coming soon)
--dns-server none Additional upstream resolver(s). Can be specified multiple times.

🤝 Contributing

Got an idea—or spotted a bug 🐞? PRs and issues are warmly welcomed!

  1. Fork → hack → commit (use conventional commits if you can)
  2. go test ./... (tests coming soon)
  3. Open a pull request—CI will run go vet, go test, and linting. (coming soon)

📜 License

NOC2GO is released under the GNU GPL v3.
See the LICENSE file for the full text.


Made with ❤️ and go run . by Michael

About

Portable, single‑binary network diagnostic toolkit with web UI—Ping, Traceroute, DNS, port scans, sys‑info

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published