/clamav

ClamAV Private Mirror with Cache.

Primary LanguageGoMIT LicenseMIT

ClamAV Private Mirror

license Build Status

How To Use

  • go get -v ./... && go build -v . && PRIMARY_MIRROR="https://database.clamav.net" ./clamav

What It Does

  1. Starts an asynchronous download of the current antivirus definitions.
    1. Downloads three databases:
      1. main
      2. bytecode
      3. daily
    2. Parses each database's header for similar versions.
    3. If there is a similar/related version, it also gets downloaded.
    4. Downloaded files are stored in-memory in a cache for client downloads.
  2. Initialises a cron job to download the new database definitions every hour.
  3. Starts the web server and serves from cache.
  4. Evicts files from cache every 3 hours to prevent stale definitions.

Mirrors

In order to function properly as a localised cache, you need to set the PRIMARY_MIRROR environment variable. Below is a short list of known mirrors.

If for some reason the primary mirror fails, if you set SECONDARY_MIRROR, it will try that one.

Contributing

  • Keep It Simple.

To unzip the CVD files: cd filedefs/ && tail -c $(expr $(wc -c $FILE.cvd | awk '{print $1}') - 512) $FILE.cvd | tar zxvf -