No description
  • JavaScript 54.2%
  • PHP 37%
  • TypeScript 4.6%
  • Vue 4.2%
Find a file
Ferdinand Thiessen ba508cd836
Merge pull request #587 from nextcloud/dependabot/npm_and_yarn/protobufjs-7.5.5
chore(deps-dev): bump protobufjs from 7.5.4 to 7.5.5
2026-05-04 14:06:25 +02:00
.github Merge pull request #582 from nextcloud/dependabot/github_actions/andstor/file-existence-action-3.1.0 2026-05-04 14:05:19 +02:00
.tx [tx-robot] Update transifex configuration 2022-10-01 02:26:32 +00:00
appinfo refactor: migrate to OCP\AppFramework\Services\IAppConfig 2026-03-26 12:38:35 +01:00
img chore: Add SPDX header 2024-07-05 11:24:04 +02:00
l10n fix(l10n): Update translations from Transifex 2026-04-22 00:41:48 +00:00
lib Merge pull request #584 from nextcloud/bug-noid-icap-hardening 2026-05-04 14:05:53 +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
src test: add frontend unit tests for services 2026-03-26 12:38:36 +01:00
templates refactor: migrate frontend to Vue 2026-03-26 12:38:36 +01:00
tests fix(scanner): Make scan interval configurable and harden scheduling 2026-04-29 13:01:31 +01:00
vendor-bin chore: update phpunit 2026-03-11 19:38:31 +01:00
.gitignore test: add e2e tests for admin settings using playwright 2026-03-26 12:38:36 +01:00
.nextcloudignore chore: add ESLint for frontend linting 2026-03-26 12:38:36 +01:00
.php-cs-fixer.dist.php chore: code style 2026-03-11 18:43:49 +01: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: fix lint 2026-03-11 19:38:31 +01:00
composer.lock chore(dev-deps): Bump nextcloud/ocp package 2026-05-03 03:18:42 +00:00
eslint.config.js chore: add ESLint for frontend linting 2026-03-26 12:38:36 +01:00
krankerl.toml chore: adjust config files 2026-03-26 12:38:36 +01:00
LICENSE Add licence file to repo 2018-03-02 15:45:29 +01:00
package-lock.json Merge pull request #587 from nextcloud/dependabot/npm_and_yarn/protobufjs-7.5.5 2026-05-04 14:06:25 +02:00
package.json chore(deps-dev): bump vitest in the vitest group across 1 directory 2026-04-25 01:11:20 +00:00
playwright.config.ts test: add e2e tests for admin settings using playwright 2026-03-26 12:38:36 +01:00
psalm.xml chore: psalm fixes 2026-03-11 18:43:49 +01:00
README.md chore: adjust config files 2026-03-26 12:38:36 +01:00
REUSE.toml refactor: migrate frontend to Vue 2026-03-26 12:38:36 +01:00
tsconfig.json refactor: migrate frontend to Vue 2026-03-26 12:38:36 +01:00
vite.config.ts test: add e2e tests for admin settings using playwright 2026-03-26 12:38:36 +01:00

Nextcloud Antivirus for Files

REUSE status

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.