Sonarwall — это сканер, который проверяет сайт на наличие ошибок и уязвимых мест. Доступна как его online версия, так и установка на собственный ПК\сервер, для последующей проверки из командной строки с помощью установленного скрипта и браузера, доступного в системе.
Ставить сканер будем на Fedora 27 (на CentOS по умолчанию, устанавливается не достаточно свежая версия nodejs):
# dnf install npm
Представленная на сайте разработчиков простая инструкция, к сожалению, может работать не всегда, и отваливаться с ошибкой:
EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@sonarwhal/sonar/node_modules/canvas-prebuilt/canvas/build'
Так что установку будем выполнять вот такой командой:
# npm install -g --engine-strict sonarwhal --unsafe-perm=true
В некоторых случаях установку можно выполнить так:
# npm install -g --engine-strict @sonarwhal/sonar --unsafe-perm=true
При этом, в системе будет доступен бинарник sonar, а не sonarwall.
Перед использованием sonarwall его нужно настроить. В ходе настройки необходимо указать какой коннектор будет использоваться, в каком виде будут отображены результаты, будут ли использованы дефолтные правила проверки, и какие версии браузеров будут в ходе проверки учитываться. В зависимости от ситуации, мы можем перенастраивать сканер под новые, нужные нам условия (скорректировать правила, изменить коннектор и т. п.).
Для настройки выполняем команду:
# sonarwhal --init
Так как работать со сканером мы будем на сервере, то в качестве коннектора указываем jsdom, а вывод оставляем просто отформатированным — stylish. Запускаем сканирование, ждём некоторое время и получаем результаты с подробностями:
# sonarwhal https://sysadmin.pm
Исходники самого сканера, сайта с ним, онлайн-сервиса и дополнительных утилит к нему доступны на соответствующей Github странице.