![Build Status](https://travis-ci.org/niilo/clamav-rest.svg) [![Docker Pulls](https://img.shields.io/docker/pulls/niilo/clamav-rest.svg)]() This is two in one docker image so it runs open source virus scanner ClamAV (https://www.clamav.net/), automatic virus definition updates as background process and REST api interface to interact with ClamAV process. Travis CI build will build new release on weekly basis and push those to Docker hub [ClamAV-rest docker image](https://hub.docker.com/r/niilo/clamav-rest/). Virus definitions will be updated on every docker build. h2. Usage Run clamav-rest docker image: ```bash docker run -p 9000:9000 --rm -it niilo/clamav-rest ``` Test that service detects common test virus signature: ```bash $ curl -i -F "file=@eicar.com.txt" http://localhost:9000/scan HTTP/1.1 100 Continue HTTP/1.1 406 Not Acceptable Content-Type: application/json; charset=utf-8 Date: Mon, 28 Aug 2017 20:22:34 GMT Content-Length: 56 { Status: "FOUND", Description: "Eicar-Test-Signature" } ``` Test that service returns 200 for clean file: ```bash $ curl -i -F "file=@clamrest.go" http://localhost:9000/scan HTTP/1.1 100 Continue HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Mon, 28 Aug 2017 20:23:16 GMT Content-Length: 33 { Status: "OK", Description: "" } ``` *Status codes:* 200 - clean file = no KNOWN infections 406 - INFECTED 400 - ClamAV returned general error for file 412 - unable to parse file 501 - unknown request h2. Developing Build golang (linux) binary and docker image: ```bash env GOOS=linux GOARCH=amd64 go build docker build . -t niilo/clamav-rest docker run -p 9000:9000 --rm -it niilo/clamav-rest ```