/muescheli

A simple AntiVirus-as-a-Service implementation using ClamAV

Primary LanguageGoApache License 2.0Apache-2.0

muescheli

("müscheli" is swiss german for a small sea shell or clam)

small service that connects to a ClamAV daemon through tcp

test locally

use the docker-compose.yml

$ docker-compose up --build

or

build ClamAV image and run

$ docker build -t clamav clamav
$ docker run -p 3310:3310 clamav

run the webservice (requires a go installation with dep)

$ dep ensure
$ go run main.go

run a test

$ curl -v -u muescheli:muescheli -X POST -H "Content-Type: multipart/form-data" -F "file1=@test/eicar.com" -F "file2=@test/test.txt"  http://localhost:8091/scan

or

$ curl -v -u muescheli:muescheli -X PUT --data-binary @test/eicar.com http://localhost:8091/scan

or

$ curl -u muescheli:muescheli -v http://localhost:8091/scan?url=https://tech.ebu.ch/docs/tech/tech3285.pdf

run on kubernetes

if you have the monostream helm chart repo installed

$ helm install monostream/muescheli

or manually deploy

$ kubectl create -f k8s/deployment.yml

this will start a pod with 2 containers (clamav and muescheli)

muescheli service exposed through random NodePort port