No description
Find a file
Andy Scherzinger 2d52f3882d
Merge pull request #467 from nextcloud/feat/workflow-auto-update-reuse.yml
ci: update reuse.yml workflow from template
2025-10-20 11:52:24 +02:00
.github Merge pull request #467 from nextcloud/feat/workflow-auto-update-reuse.yml 2025-10-20 11:52:24 +02:00
.tx [tx-robot] Update transifex configuration 2022-10-01 02:26:32 +00:00
appinfo feat(deps): Add Nextcloud 33 support 2025-09-04 12:51:13 +02:00
css chore: Add SPDX header 2024-07-05 11:24:04 +02:00
img chore: Add SPDX header 2024-07-05 11:24:04 +02:00
js chore: Add SPDX header 2024-07-05 11:24:04 +02:00
l10n fix(l10n): Update translations from Transifex 2025-10-04 00:35:39 +00:00
lib Merge pull request #512 from nextcloud/double-scan-seek 2025-10-01 12:27:52 +02:00
LICENSES ci: Add resuse check 2024-07-05 11:29:01 +02:00
screenshots chore: Add SPDX header 2024-07-05 11:24:04 +02:00
templates fix: squash commit 2025-06-24 10:06:24 +05:30
tests fix: change config to av_blocklisted_directories and allow array of directories in blockListedDirectories 2025-09-23 09:41:20 +05:30
.gitignore chore: Add SPDX header 2024-07-05 11:24:04 +02:00
.nextcloudignore chore: Add SPDX header 2024-07-05 11:24:04 +02:00
.php-cs-fixer.dist.php chore: Add SPDX header 2024-07-05 11:24:04 +02:00
.scrutinizer.yml chore: Add SPDX header 2024-07-05 11:24:04 +02:00
AUTHORS.md chore: Add SPDX header 2024-07-05 11:24:04 +02:00
CHANGELOG.md chore(release): v6.0.0-beta.1 2025-01-21 15:15:26 +01:00
composer.json chore(deps): bump nextcloud/ocp to dev-master (and peers) 2025-02-03 10:44:47 +01:00
composer.lock chore(dev-deps): Bump nextcloud/ocp package 2025-10-12 02:36:07 +00:00
krankerl.toml chore: Add SPDX header 2024-07-05 11:24:04 +02:00
LICENSE Add licence file to repo 2018-03-02 15:45:29 +01:00
psalm.xml fix: wrap encrypted group folders 2025-05-06 23:02:00 +02:00
README.md docs: add chapter about background scan timeouts 2025-03-27 10:29:57 +01:00
REUSE.toml chore: Add SPDX header 2024-07-05 11:24:04 +02:00

Nextcloud Antivirus for Files

REUSE status Build Status Scrutinizer Code Quality Code Coverage

files_antivirus is an antivirus app for Nextcloud using ClamAV or Kaspersky.

Features

  • 🐿️ When the user uploads a file, it's checked
  • ☣️ Infected files will be deleted and a notification will be shown and/or sent via email
  • 🔎 It runs a background job to scan all files
  • 🦺 It will block all uploads if the file cannot be checked to ensure all files are getting scanned.

Requirements

One of

  • ClamAV as binaries on the Nextcloud server
  • ClamAV running in daemon mode
  • Kaspersky Scan Engine running in HTTP mode
  • Any virus scanner supporting ICAP (ClamAV and Kaspersky are tested, others should work)

Install

Documentation about installing ClamAV and this app can be found in our documentation.

ClamAV Details

This app can be configured to work with the executable or the daemon mode (recommended ❤️) of ClamAV. If this is used in daemon mode, it can connect through network or local file-socket. In daemon mode, it sends files to a remote/local server using the INSTREAM command.

Kaspersky HTTP Details

When running Kaspersky in HTTP mode the SessionTimeout will need to be set to a value higher than default, a value of 10 minutes (600000 millisecond) or higher is recommended to properly deal with larger uploads

ICAP (version 5.0 and later)

The app support the ICAP protocol which is a standard supported by various antivirus software products.

Some additional configuration is required depending on the antivirus software used:

  • ICAP service: The name of the service the antivirus software expects
  • ICAP virus response header: The name of the header the antivirus software send the details of the detected virus in

ClamAV ICAP

  • ICAP service: avscan
  • ICAP virus response header: X-Infection-Found

Kaspersky ICAP

  • ICAP service: req
  • ICAP virus response header: X-Virus-ID

Additionally, the Kaspersky scan engine needs some additional configuration:

TLS Encryption

Using TLS encryption for the ICAP connection is supported, this requires the ICAP server to use a valid certificate. If the certificate isn't signed by a trusted certificate authority, you can import the certificate into Nextcloud's certificate bundle using

occ security:certificates:import /path/to/certificate

Timeouts of background scan

For the background scan to work reliably when using php-fpm for Nextcloud, you need to adjust the default_socket_timeout in php-fpm to a bigger value than the default of 60 seconds. Depending on how long the scan takes, a value of 600 or even higher is recommended.