PHPackages                             plesk/wappspector - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. plesk/wappspector

ActiveProject[CLI &amp; Console](/categories/cli)

plesk/wappspector
=================

Command-line interface utility to analyze the file structure of a web hosting server and identify the frameworks and CMS used in the websites hosted on it.

0.2.8(1y ago)1311.4k↓26.9%Apache-2.0HTMLPHP &gt;=8.0CI passing

Since Mar 19Pushed 2mo ago19 watchersCompare

[ Source](https://github.com/plesk/wappspector)[ Packagist](https://packagist.org/packages/plesk/wappspector)[ RSS](/packages/plesk-wappspector/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (20)Used By (0)

wappspector
===========

[](#wappspector)

Command-line interface utility to analyze the file structure of a web hosting server and identify the frameworks and CMS used in the websites hosted on it.

[![unit-test](https://github.com/plesk/wappspector/actions/workflows/unit-test.yml/badge.svg)](https://github.com/plesk/wappspector/actions/workflows/unit-test.yml)

Matchers
--------

[](#matchers)

### Technology &amp; Frameworks

[](#technology--frameworks)

TechnologyVersionCheck typePHP-Any `*.php` fileRuby2, 3`Rakefile` in root dirPython2, 3Any `*.py` fileLaravel8, 9, 10`artisan` file in root dirSymfony3, 4, 5, 6`symfony.lock` file in root dirCodeIgniter4`spark` file in root dirCakePHP3, 4`bin/cake` fileYii2`yii` file in root dirComposer-`composer.json` file in root dir.NET-Any `*.dll` fileNode.js-`package.json` file in root dir### CMS

[](#cms)

NameMajor versionCheck typeWordPress2 - 6Existence and contents of `wp-includes/version.php`Joomla!1 - 6Existence and contents of `configuration.php` in root dir and version files in `libraries/src/Version.php` or `libraries/cms/version/version.php` or similarDrupal6 - 10Existence and contents of `/modules/system/system.info` or `/core/modules/system/system.info.yml`PrestaShop1.6, 1.7.8, 8.0Existence and contents of `/config/settings.inc.php`TYPO37.6, 8.7, 9, 10, 11, 12Existence and contents of `/typo3/sysext/core/Classes/Core/SystemEnvironmentBuilder.php` or `/typo3/sysext/core/Classes/Information/Typo3Version.php` or `/t3lib/config_default.php`### Site builders

[](#site-builders)

NameCheck typeSitejetThe `index.html` file exists and contains the `ed-element` and `webcard.apiHost=` stringsWebPresenceBuilderThe `index.html` file contains the `` tag or contains the following DOM structure: the `div` tag with the `page` ID contains the `div` tags with the `watermark` and `layout` IDsSite.proThe `sitepro` folder exists and the `sitepro` string is contained in the `web.config` or `.htaccess` filesDuda.coThe `Style` folder contains the `desktop.css`, `mobile.css`, or `tablet.css` files. The style file contains the `dmDudaonePreviewBody` or `dudaSnipcartProductGalleryId` strings, or the `Scripts/runtime.js` file contains the `duda` stringSiteplusThe `index.html` file exists and contains the `edit.site` string, and the `/bundle/publish/` directory exists and contains the `bundle.js` file. The `bundle.js` file contains the `siteplus` stringHow to build phar
-----------------

[](#how-to-build-phar)

```
composer global require clue/phar-composer
composer install
php -d phar.readonly=off ~/.composer/vendor/bin/phar-composer build .
```

Run the created `wappspector.phar`:

```
./wappspector.phar ./test-data
```

Changing matchers order
-----------------------

[](#changing-matchers-order)

To change the matchers order or to disable some of them, you should override `matchers` entry of DI container.

```
$diContainer = \Plesk\Wappspector\DIContainer::build();
$matchers = $diContainer->get('matchers');
array_unshift($matchers, \Some\New\Matcher::class);
$diContainer->set('matchers', $matchers);
```

or

```
// only detect WordPress installs
$diContainer = \Plesk\Wappspector\DIContainer::build();
$diContainer->set('matchers', [\Plesk\Wappspector\Matchers\Wordpress::class]);
```

Testing
-------

[](#testing)

```
./vendor/bin/phpunit
```

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance66

Regular maintenance activity

Popularity31

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 61.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~39 days

Recently: every ~77 days

Total

18

Last Release

481d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5928ecaf5890c963894d11983fbbf88b64ac619c641efa30d5e1140070f4ec54?d=identicon)[xgin](/maintainers/xgin)

---

Top Contributors

[![kryptamine](https://avatars.githubusercontent.com/u/7682795?v=4)](https://github.com/kryptamine "kryptamine (33 commits)")[![xgin](https://avatars.githubusercontent.com/u/5378093?v=4)](https://github.com/xgin "xgin (10 commits)")[![sofiiakulish](https://avatars.githubusercontent.com/u/51999409?v=4)](https://github.com/sofiiakulish "sofiiakulish (6 commits)")[![akhtyam](https://avatars.githubusercontent.com/u/14862025?v=4)](https://github.com/akhtyam "akhtyam (4 commits)")[![joemast](https://avatars.githubusercontent.com/u/11463844?v=4)](https://github.com/joemast "joemast (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisRector

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/plesk-wappspector/health.svg)

```
[![Health](https://phpackages.com/badges/plesk-wappspector/health.svg)](https://phpackages.com/packages/plesk-wappspector)
```

###  Alternatives

[acmephp/acmephp

Let's Encrypt client written in PHP

649155.1k](/packages/acmephp-acmephp)[adrianfalleiro/slim-cli-runner

Run command line tasks for Slim PHP

4290.6k2](/packages/adrianfalleiro-slim-cli-runner)[soy-php/soy

PHP task runner focused on clean syntax and allowing flexible implementation

6612.1k10](/packages/soy-php-soy)[php-school/php-workshop

PHP Workshop Framework

466.3k6](/packages/php-school-php-workshop)[dpi/dogit

191.1k](/packages/dpi-dogit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
