# arcline-audit

One-command site health auditor. Checks SSL, HTTP security headers, DNS records, redirect chains, and basic infrastructure info for any domain.

Useful for onboarding new clients and producing a quick written report before an engagement starts.

## Stack

- Go — single static binary, no runtime dependencies
- Standard library only — zero external dependencies

## Usage

```sh
# Full audit (all checks)
arcline-audit example.com

# Run specific checks
arcline-audit example.com --checks ssl,dns

# JSON output
arcline-audit example.com --json

# Write to file
arcline-audit example.com --out report.txt
```

### Flags

| Flag | Description |
|---|---|
| `--checks` | Comma-separated check groups: `ssl`, `http`, `dns`, `infra` (default: `all`) |
| `--json` | Output as JSON instead of terminal format |
| `--out` | Write report to a file instead of stdout |

## Checks

| Group | What it checks |
|---|---|
| SSL/TLS | Certificate validity, expiry, chain completeness, TLS version, cipher suite warnings |
| HTTP | Redirect chain (http→https), security headers (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy), Server header disclosure, response time |
| DNS | A/AAAA records, MX records, SPF, DKIM, DMARC, DNSSEC detection |
| Infrastructure | CDN detection, common port probes (80, 443, 22, 3306, 5432) |

## Example output

```
$ arcline-audit example.com

  ── SSL ────────────────────────────────────────────────
  [OK]  valid certificate (2026-08-29)
  [OK]  not self-signed
  [OK]  certificate chain is complete
  [OK]  TLS 1.3
  [OK]  cipher suite: TLS_AES_128_GCM_SHA256

  ── HTTP ───────────────────────────────────────────────
  [WARN] no HSTS header
  [WARN] Server header disclosed: cloudflare
  [OK]  response time 34ms

  ── DNS ────────────────────────────────────────────────
  [OK]  A record: 104.20.23.154
  [OK]  MX records present (1)
  [OK]  SPF record found
  [WARN] no DMARC record

  ── Infrastructure ─────────────────────────────────────
  [OK]  CDN detected: Cloudflare
```

## Build

```sh
# Local build
make build

# Cross-compile for all platforms
make release
```

This produces:

- `arcline-audit-linux-amd64`
- `arcline-audit-darwin-amd64`
- `arcline-audit-windows-amd64.exe`

## Install

```sh
sudo cp arcline-audit-linux-amd64 /usr/local/bin/arcline-audit
sudo chmod 0755 /usr/local/bin/arcline-audit
```

## License

MIT — see [LICENSE](LICENSE).
