diff --git a/config.docker.js b/config.docker.js index 6968621d4..01225c1d8 100644 --- a/config.docker.js +++ b/config.docker.js @@ -15,6 +15,24 @@ const CONFIG = { ssl: process.env.FLOOD_ENABLE_SSL === 'true' || process.env.FLOOD_ENABLE_SSL === true, sslKey: '/data/flood_ssl.key', sslCert: '/data/flood_ssl.cert', + diskUsageService: { + dontWatchMountPoints: [ + "/dev", + "/sys/fs/cgroup", + "/etc/resolv.conf", + "/etc/hostname", + "/etc/hosts", + "/dev/shm", + "/proc/asound", + "/proc/acpi", + "/proc/kcore", + "/proc/keys", + "/proc/timer_list", + "/proc/sched_debug", + "/proc/scsi", + "/sys/firmware", + ], + }, }; module.exports = CONFIG; diff --git a/server/services/diskUsageService.js b/server/services/diskUsageService.js index 13f6a6ebe..7a11c5602 100644 --- a/server/services/diskUsageService.js +++ b/server/services/diskUsageService.js @@ -11,12 +11,16 @@ const diskUsageServiceEvents = require('../constants/diskUsageServiceEvents'); const PLATFORMS_SUPPORTED = ['darwin', 'linux', 'freebsd']; const MAX_BUFFER_SIZE = 65536; -const filterMountPoint = - config.diskUsageService && config.diskUsageService.watchMountPoints - ? // if user has configured watchPartitions filter each line output for given - // array - mountpoint => config.diskUsageService.watchMountPoints.includes(mountpoint) - : () => true; // include all mounted file systems by default +const filterMountPoint = mountpoint => { + // include all mounted file systems by default + if (!config.diskUsageService) return true; + const {watchMountPoints, dontWatchMountPoints} = config.diskUsageService; + // whitelist + if (watchMountPoints) return watchMountPoints.includes(mountpoint); + // blacklist + if (dontWatchMountPoints) return !dontWatchMountPoints.includes(mountpoint); + return true; +}; const linuxDfParsing = () => execFile('df | tail -n+2', {