add initial Go implementation of arcline-audit

Implements the full site health auditor with four check groups:

  - SSL/TLS (certificate validity, expiry, chain, TLS version, ciphers)

  - HTTP (redirect chain, security headers, response time)

  - DNS (A/AAAA, MX, SPF, DKIM, DMARC, DNSSEC)

  - Infrastructure (CDN detection, common port probes)

Includes CLI with --checks filter, --json and --out flags,

cross-compile Makefile, and GitLab CI pipeline.

Signed-off-by: Blake Ridgway <blake@blakeridgway.com>
This commit is contained in:
Blake Ridgway
2026-06-23 05:08:34 -05:00
parent 088bb7e138
commit fce90f458c
13 changed files with 1167 additions and 11 deletions

57
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,57 @@
stages:
- test
- build
- release
.test_template: &test
stage: test
image: golang:1.22-alpine
script:
- go vet ./...
- go build -o /dev/null ./cmd/arcline-audit/
test:linux:
<<: *test
.build_template: &build
stage: build
image: golang:1.22-alpine
script:
- apk add --no-cache make
- make ${TARGET}
artifacts:
paths:
- arcline-audit-*
expire_in: 30 days
build:linux:
<<: *build
variables:
TARGET: linux
build:darwin:
<<: *build
variables:
TARGET: darwin
build:windows:
<<: *build
variables:
TARGET: windows
release:
stage: release
image: golang:1.22-alpine
script:
- apk add --no-cache make
- make release
- echo "Release artifacts: arcline-audit-*"
artifacts:
paths:
- arcline-audit-linux-amd64
- arcline-audit-darwin-amd64
- arcline-audit-windows-amd64.exe
expire_in: 90 days
only:
- tags