ClamAV Security Dashboard v0.2.3 — Created Exclusively for ZimaOS
We created the ClamAV Security Dashboard specifically for ZimaOS. It provides a simple way to discover storage disks, approve folders, monitor scans and safely manage detected threats directly from a browser.
The application has been tested on both a ZimaCube Pro and a ZimaBoard.
Main features
- Automatic discovery of ZimaOS disks and folders under
/media - Select and save only the folders you want scanned
- Safe exclusions for AppData, Docker, backups, snapshots, virtual machines, recycle bins and other sensitive system folders
- Live scan progress
- Folder size, scanned size, remaining data, speed and ETA
- Current file display
- Scan history with detailed folder records
- ClamAV engine health and signature version
- Threat detection with the exact file path and signature
- Confirmed quarantine action
- Restore quarantined files to their original location
- Permanent deletion after quarantine
- Persistent scan and quarantine records
- No automatic deletion or quarantine
Scanning does not modify files. Quarantine, restore and permanent deletion always require a separate confirmed action.
Security validation
The complete detection and quarantine workflow was tested using the official harmless EICAR antivirus test file.
The test confirmed:
Eicar-Test-Signaturewas detected- The original file was moved into quarantine
- Its original path, SHA-256 hash, size and signature were recorded
- Restore returned the file to its exact original location with the same SHA-256 hash
- Re-quarantine and permanent deletion removed the file successfully
- Historical quarantine records remained available
Installation
Open the ZimaOS App Store, select Install Custom App, switch to YAML, and paste the following configuration.
Check that port 8095 is available first:
ss -lnt | grep ':8095 ' || echo "PORT 8095 AVAILABLE"
Then import:
services:
clamav-server:
image: clamav/clamav:1.5_base
restart: unless-stopped
environment:
TZ: ${TZ:-UTC}
FRESHCLAM_CHECKS: "12"
CLAMD_CONF_MaxThreads: "4"
CLAMD_CONF_MaxFileSize: 512M
CLAMD_CONF_MaxScanSize: 2G
CLAMD_CONF_StreamMaxLength: 512M
volumes:
- /DATA/AppData/clamav-dashboard/clamav:/var/lib/clamav
networks:
- clamav-security
clamav-dashboard:
image: ghcr.io/jacko88888/clamav-dashboard:0.2.3
restart: unless-stopped
depends_on:
clamav-server:
condition: service_healthy
ports:
- "8095:8080"
environment:
TZ: ${TZ:-UTC}
CLAMAV_HOST: clamav-server
CLAMAV_PORT: "3310"
DATA_DIR: /data
MEDIA_ROOT: /host-media
MAX_STREAM_BYTES: "536870912"
volumes:
- /DATA/AppData/clamav-dashboard/data:/data
- /media:/host-media:rw
networks:
- clamav-security
read_only: true
tmpfs:
- /tmp:rw,noexec,nosuid,size=256m
security_opt:
- no-new-privileges:true
networks:
clamav-security:
x-casaos:
title:
custom: ClamAV Security Dashboard
en_US: ClamAV Security Dashboard
icon: https://raw.githubusercontent.com/Cisco-Talos/clamav/main/logo.png
main: clamav-dashboard
scheme: http
port_map: "8095"
index: /
If port 8095 is already occupied, change it in both locations:
ports:
- "NEW_PORT:8080"
port_map: "NEW_PORT"
After installation, open:
http://YOUR-ZIMAOS-IP:8095
Select the folders you want to scan, click Save approved folders, and wait for the confirmation button to turn green. The approved folders will then appear in the scan selector.
Important permission information
The dashboard mounts /media with read/write access because quarantine and restore must move files from and back to their original locations.
Normal scanning is non-destructive. The application will not quarantine, restore or permanently delete anything without explicit confirmation.
Source code
GitHub repository:
Container image:
ghcr.io/jacko88888/clamav-dashboard:0.2.3
This is the first public release created specifically around the ZimaOS storage layout and Custom App installation workflow. Feedback and testing on other ZimaOS systems are welcome.