Fork of https://github.com/ajilaag/clamav-rest Remove prometheus for better memory but still have https access
Find a file
Yi Sheng Yap b0eb5989fa
Add more configuration options for ClamAV
- Scan alerts
 - On Access Scanning
2019-02-14 15:11:14 +08:00
scan-target Add more configuration options for ClamAV 2019-02-14 15:11:14 +08:00
tests Updated clam rest service to support additional abirt argument 2016-06-26 22:55:55 +01:00
vendor/github.com/dutchcoders/go-clamd vendor dependencies with 'dep' 2017-08-28 23:15:22 +03:00
.gitignore Virus scanning rest api 2015-07-26 22:46:59 +01:00
.godir Changed godir 2015-07-26 13:47:25 +01:00
.travis.yml remove golang build, build is done inside docker container 2017-11-11 01:08:12 +02:00
alert.sh Add more configuration options for ClamAV 2019-02-14 15:11:14 +08:00
clamrest.go wait max. 120 seconds to clamd to become active before exit. 2017-09-05 09:28:28 +03:00
docker-compose.yml docker compose run config for AWS ECS 2017-09-05 09:40:25 +03:00
Dockerfile Add more configuration options for ClamAV 2019-02-14 15:11:14 +08:00
eicar.com.txt Initial commit 2015-07-26 13:37:23 +01:00
eicar.test Add more configuration options for ClamAV 2019-02-14 15:11:14 +08:00
entrypoint.sh rest api now waits 120 seconds for clamd so no need to sleep before start 2017-09-05 09:30:03 +03:00
Gopkg.lock vendor dependencies with 'dep' 2017-08-28 23:15:22 +03:00
Gopkg.toml vendor dependencies with 'dep' 2017-08-28 23:15:22 +03:00
Procfile Added procfile 2015-07-26 13:39:46 +01:00
README.md styling 2017-11-10 20:41:52 +02:00

Build Status Docker Pulls

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. Virus definitions will be updated on every docker build.

Usage:

Run clamav-rest docker image:

docker run -p 9000:9000 --rm -it niilo/clamav-rest

Test that service detects common test virus signature:

$ 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:

$ 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

Developing:

Build golang (linux) binary and docker image:

env GOOS=linux GOARCH=amd64 go build
docker build . -t niilo/clamav-rest
docker run -p 9000:9000 --rm -it niilo/clamav-rest