chowder

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2022 License: MIT Imports: 11 Imported by: 0

README

Go Report Card

Chowder

Chowder is a HTTP Proxy for the ClamAV antivirus. It has run providing ClanAV scans for live services in house for years.

It assumes you want to run ClamAV to scan things but you also want (perhaps because you want to loadbalance/provision into a service mesh/K8S):

  • POST /scan passing the entire body as a binary stream to the backing ClanAV (transparently converting format).
  • GET /metrics Prometheus endpoint with throughput, scan outcome, durations etc.
  • GET /healthz endpoints for load balancing.
  • HTTPS if either of the supplied certfile or keyfile resolve to a file.
  • Logs (preferably JSON) for all scan requests with the outcomes clearly logged.
  • Auth (arbitary token) using an Authorization header if you supply a users.yml (a yaml dict of token: username).
  • Minimal overhead in RAM/CPU/Latency.

Deployment

  • Setup a backing clamd with a tcp socket (presumably over localhost/pod container neighbour).
  • Clone this repository, install go
  • Run go build at the root of the cloned repository
  • Run the chowder binary (with --help for config flags)

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL