Detects FOSS CMS in the local filesystem

Related tags

CMS cmsscanner
Overview

Build Status

CMS-Garden CMSScanner

This tool is developed by the CMS-Garden project. It's designed to scan a local filesystem for installations of the well known FOSS CMS systems that are part of the CMS-Garden Project:

  • Contao
  • CONTENIDO
  • Drupal
  • Joomla
  • TYPO3 CMS
  • WordPress
  • Prestashop
  • Alchemy CMS
  • PivotX
  • Concrete5

It is designed to work on Linux, OS X and FreeBSD.

For available options, try running:

cmsgarden.phar --list

Installation instructions

  1. Download the current version of CMSScanner as a phar archive:

    wget https://cms-garden.github.io/cmsscanner/downloads/cmsscanner-0.5.0.phar && mv cmsscanner-0.5.0.phar cmsscanner.phar

  2. Make it executable

    chmod +x cmsscanner.phar

  3. OPTIONAL: Configure your system to recognize where the executable resides. There are 3 options:

    1. Create a symbolic link in a directory that is already in your PATH, e.g.:

      $ ln -s /path/to/cmsscanner/cmsscanner.phar /usr/bin/cmsscanner.phar

    2. Explicitly add the executable to the PATH variable which is defined in the the shell configuration file called .profile, .bash_profile, .bash_aliases, or .bashrc that is located in your home folder, i.e.:

      export PATH="$PATH:/path/to/cmsscanner:/usr/local/bin"

    3. Add an alias for the executable by adding this to you shell configuration file (see list in previous option):

      $ alias cmsscanner.phar=/path/to/cmsscanner/cmsscanner.phar

      For options 2 and 3 above, you should log out and then back in to apply your changes to your current session.

  4. OPTIONAL: Test that scanner executable is found by your system:

    $ which scanner.phar

Using the scanner

You can start scanning for CMS installations by calling the phar, followed by the detection command and a path to scan in:

cmsscanner.phar cmsscanner:detect /var/www

Depending on the amount of files and folders in this path, a scan take quite a while. After the scan is over, the tool will give you a summary of the results:

machine:root$ ./bin/cmsscanner cmsscanner:detect /var/www
Successfully finished scan!
CMSScanner found 5 CMS installations!

+--------+-----------------+
| CMS    | # Installations |
+--------+-----------------+
| Joomla | 2               |
| Drupal | 3               |
+--------+-----------------+

It's also possible to pass multiple paths to the scanner:

cmsscanner.phar cmsscanner:detect /var/www/docroot1 /var/www/docroot2

Options

Detect used versions:

cmsscanner.phar cmsscanner:detect --versions /var/www

Output:

Successfully finished scan!
CMSScanner found 5 CMS installations!

+--------+-----------------+
| CMS    | # Installations |
+--------+-----------------+
| Joomla | 2               |
| Drupal | 3               |
+--------+-----------------+

Version specific stats:
Joomla:
+---------+-----------------+
| Version | # Installations |
+---------+-----------------+
| 3.6.5   | 2               |
+---------+-----------------+
Drupal:
+---------+-----------------+
| Version | # Installations |
+---------+-----------------+
| Unknown | 1               |
| 8.2.7   | 2               |
+---------+-----------------+

Detect used modules/extensions:

cmsscanner.phar cmsscanner:detect --modules /var/www

Output:

Successfully finished scan!
CMSScanner found 56 CMS installations!

+------------+-----------------+-----------+
| CMS        | # Installations | # Modules |
+------------+-----------------+-----------+
| Joomla     | 29              | 131       |
| Prestashop | 1               | 0         |
| Contao     | 4               | 7         |
| WordPress  | 7               | 2         |
| TYPO3 CMS  | 3               | 1         |
| Drupal     | 4               | 8         |
| Contenido  | 8               | 0         |
+------------+-----------------+-----------+

Module specific stats:
Joomla:
+------------------------------------+-----------------+
| Module                             | # Installations |
+------------------------------------+-----------------+
| JSN_UNIFORM_PLUGIN_BUTTON_TITLE    | 1               |
| JSN_UNIFORM_PLUGIN_CONTENT_TITLE   | 1               |
| JSN ImageShow Quick Icons          | 1               |
| PLG_SYSTEM_AKEEBAUPDATECHECK_TITLE | 3               |
| PLG_SYSTEM_BACKUPONUPDATE_TITLE    | 3               |
| Content - JSN ImageShow            | 1               |
...

Limit recursion depth

By using the --depth options, it's possible to limit the recursion depth of the scan. This will increase the performance but decrease the accuracy of the scan:

cmsscanner.phar cmsscanner:detect --depth=3 /var/www

Output a JSON report

If you want to use the scan results for something else, you can export them as a JSON report:

cmsscanner.phar cmsscanner:detect --report=/tmp/cmsreport.json --versions /var/www

This results in a report file like this:

[
   {
	  "name":"Drupal",
	  "version":"5.23",
	  "path":"\/var\/www\/drupal-5.23"
   },
   {
	  "name":"Drupal",
	  "version":"6.14",
	  "path":"\/var\/www\/drupal-6.14"
   }
]

Detect used modules and append them to report:

cmsscanner.phar cmsscanner:detect --report=/tmp/cmsreport.json --versions --modules /var/www

Output:

[
   {
	  "name":"Joomla",
	  "version":"3.4.6",
	  "path":"\/var\/www\/joomla",
	  "modules":[
		 {
			"name":"mod_articles_archive",
			"version":"3.0.0",
			"path":"\/var\/www\/joomla\/modules\/mod_articles_archive",
			"type":"module"
		 }
	  ]
	}
]

Read paths from an input file

It's also possible to pass a file that contains a 0-byte separated list of paths:

cmsscanner.phar cmsscanner:detect --readfromfile /absolute/path/to/file

Developer Information

Run the tests

set up the repo

  • Install composer (if not done yet)
  • cd into the cloned repository
  • run composer install to install the dependencies

Run the tests

Run the PHP Unit tests

composer php:test

Run the PHPCS tests

composer php:cs

Build the phar

First it's recommended to :

  • ensure that in your php.ini for CLI you have set phar.readonly to off.
  • composer dependencies are installed with composer install
With phpive
  • install phive as explained at https://phar.io/#Install
  • run phive install --force-accept-unsigned
  • run compile to build:
    tools/box compile
    
Manualy

Phar file will be put as cmsscanner.phar

Prebuilt Packages (unofficial)

Comments
  • Remove unknown if there is nothing unknown

    Remove unknown if there is nothing unknown

    New result

    Successfully finished scan!
    CMSScanner found 9 CMS installations!
    
    +-----------+-----------------+
    | CMS       | # Installations |
    +-----------+-----------------+
    | Joomla    | 6               |
    | Drupal    | 1               |
    | TYPO3 CMS | 1               |
    | WordPress | 1               |
    +-----------+-----------------+
    
    Version specific stats:
    Joomla:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 4               |
    | 1.5.26  | 1               |
    | 2.5.27  | 1               |
    +---------+-----------------+
    Drupal:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | 8.2.7   | 1               |
    +---------+-----------------+
    TYPO3 CMS:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | 7.6.15  | 1               |
    +---------+-----------------+
    WordPress:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | 4.7.3   | 1               |
    +---------+-----------------+
    
    Execution time: 1.1708610057831 seconds
    Memory consumption: 4M
    
    

    Actual result

    Successfully finished scan!
    CMSScanner found 9 CMS installations!
    
    +-----------+-----------------+
    | CMS       | # Installations |
    +-----------+-----------------+
    | Joomla    | 6               |
    | Drupal    | 1               |
    | TYPO3 CMS | 1               |
    | WordPress | 1               |
    +-----------+-----------------+
    
    Version specific stats:
    Joomla:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 4               |
    | 1.5.26  | 1               |
    | 2.5.27  | 1               |
    +---------+-----------------+
    Drupal:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 8.2.7   | 1               |
    +---------+-----------------+
    TYPO3 CMS:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 7.6.15  | 1               |
    +---------+-----------------+
    WordPress:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 4.7.3   | 1               |
    +---------+-----------------+
    
    Execution time: 1.2243068218231 seconds
    Memory consumption: 4M
    
    

    Thanks for the idea @nullbytes

    enhancement 
    opened by zero-24 8
  • Wordpressfix

    Wordpressfix

    Up to now only Wordpress plugins which are in a separate folder will bee detected. Simple plugins in a file in the directory .../wordpress/wp-content/plugins/ - like Hello Dolly - are ignored.

    This PR expands the search directories so, that files in the folder .../wordpress/wp-content/plugins/ are searched too.

    enhancement 
    opened by astridx 7
  • phpBB detected as Contendio

    phpBB detected as Contendio

    Hi,

    A site with phpBB 3 gets detected as Contendio based on a file called startup.php. I think the detectSystem method needs to be a bit more specific.

    opened by helmo 5
  • Uncaught TypeError: Illegal offset type in isset or empty

    Uncaught TypeError: Illegal offset type in isset or empty

    Hi,

    First of all, thank you for this great scanner :).

    I'm seeing this error from time to time:

    Fatal error: Uncaught TypeError: Illegal offset type in isset or empty in phar:///usr/src/scanner/cmsscanner.phar/src/Command/DetectCommand.php:228
    Stack trace:
    #0 phar:///usr/src/scanner/cmsscanner.phar/src/Command/DetectCommand.php(142): Cmsgarden\Cmsscanner\Command\DetectCommand->generateStats(Array, true, true)
    #1 phar:///usr/src/scanner/cmsscanner.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php(253): Cmsgarden\Cmsscanner\Command\DetectCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #2 phar:///usr/src/scanner/cmsscanner.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(889): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #3 phar:///usr/src/scanner/cmsscanner.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(193): Symfony\Component\Console\Application->doRunCommand(Object(Cmsgarden\Cmsscanner\Command\DetectCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    
    ///usr/src/scanner/cmsscanner.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(124): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #5 phar:///usr/src/scanner/cmsscanner.phar/bin/cmsscanner(18): Symfony\Component\Console\Application->run()
    #6 /usr/src/scanner/cmsscanner.phar(10): require('phar:///usr/src...')
    
    }
      thrown in phar:///usr/src/scanner/cmsscanner.phar/src/Command/DetectCommand.php on line 228
    

    Should the value be tested before using it? https://github.com/CMS-Garden/cmsscanner/blob/cbedf20bf196cf3cd9e8854a4658d860f1d1a1a4/src/Command/DetectCommand.php#L228

    opened by coudenysj 3
  • Do not call contains() for finder

    Do not call contains() for finder

    The contains() filters seem to be executed with logical AND after the file name filters. This completely kills the detection. (The unit tests did work because every test gets its own finder instance)

    opened by liayn 3
  • Merging feature/whd-hackathon?

    Merging feature/whd-hackathon?

    Hi,

    Do you have a timeline when you would like to have the feature/whd-hackathon branch merged? Or is there is list blockers? I don't mind rebasing my feature branches again, but would like to get these finished.

    opened by helmo 2
  • Create cmsscanner.phar tutorial

    Create cmsscanner.phar tutorial

    @degobbis did a step by step example where how to do the cmsscanner.phar in german. Where do you want to have that? A wiki entry here on github or better in the readme?

    question 
    opened by zero-24 2
  • Add some test data and add Modules to the summary view on console

    Add some test data and add Modules to the summary view on console

    If you use the parameter --modules, for example

    /cmsscanner$ php bin/cmsscanner cmsscanner:detect --modules /var/www/html you currently get an error message

      [InvalidArgumentException]                                                   
      The "/cmsscanner/tests/mockfiles/contao/contao4/system/modules  
      " directory does not exist.      
    
    

    and you do not see the modules in the summary view on the console.

    This PR added test data into the folder /tests/mockfiles/contao/contao4/system/modules (to correct the error) and completed the summary view on the console so that modules are shown.

    Here you can see an example:

    php bin/cmsscanner cmsscanner:detect --modules  /var/www/html
    Successfully finished scan!
    CMSScanner found 56 CMS installations!
    
    +------------+-----------------+-----------+
    | CMS        | # Installations | # Modules |
    +------------+-----------------+-----------+
    | Joomla     | 29              | 131       |
    | Prestashop | 1               | 0         |
    | Contao     | 4               | 7         |
    | WordPress  | 7               | 2         |
    | TYPO3 CMS  | 3               | 1         |
    | Drupal     | 4               | 8         |
    | Contenido  | 8               | 0         |
    +------------+-----------------+-----------+
    
    Module specific stats:
    Joomla:
    +------------------------------------+-----------------+
    | Module                             | # Installations |
    +------------------------------------+-----------------+
    | JSN_UNIFORM_PLUGIN_BUTTON_TITLE    | 1               |
    | JSN_UNIFORM_PLUGIN_CONTENT_TITLE   | 1               |
    | JSN ImageShow Quick Icons          | 1               |
    | PLG_SYSTEM_AKEEBAUPDATECHECK_TITLE | 3               |
    | PLG_SYSTEM_BACKUPONUPDATE_TITLE    | 3               |
    | Content - JSN ImageShow            | 1               |
    ...
    
    opened by astridx 2
  • Implement the version checks for the newest joomla versions

    Implement the version checks for the newest joomla versions

    Implement the version checks for the newest joomla versions

    How to test

    • install multibe joomla versions
    • run ./bin/cmsscanner cmsscanner:detect /var/www --versions

    Expected result after the patch

    Successfully finished scan!
    CMSScanner found 6 CMS installations!
    
    +-----------+-----------------+
    | CMS       | # Installations |
    +-----------+-----------------+
    | Joomla    | 4               |
    | Drupal    | 1               |
    | WordPress | 1               |
    +-----------+-----------------+
    
    Version specific stats:
    Joomla:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 1.5.26  | 1               |
    | 2.5.27  | 1               |
    | 3.6.0   | 1               |
    | 3.6.5   | 1               |
    +---------+-----------------+
    Drupal:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 8.2.7   | 1               |
    +---------+-----------------+
    WordPress:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 4.7.3   | 1               |
    +---------+-----------------+
    
    Execution time: 1.2367210388184 seconds
    Memory consumption: 4M
    
    

    Actual result

    Successfully finished scan!
    CMSScanner found 5 CMS installations!
    
    +-----------+-----------------+
    | CMS       | # Installations |
    +-----------+-----------------+
    | Joomla    | 3               |
    | Drupal    | 1               |
    | WordPress | 1               |
    +-----------+-----------------+
    
    Version specific stats:
    Joomla:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 3               |
    +---------+-----------------+
    Drupal:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 8.2.7   | 1               |
    +---------+-----------------+
    WordPress:
    +---------+-----------------+
    | Version | # Installations |
    +---------+-----------------+
    | Unknown | 0               |
    | 4.7.3   | 1               |
    +---------+-----------------+
    
    Execution time: 0.83501696586609 seconds
    Memory consumption: 4M
    
    

    Additional comments

    Thanks to @nullbytes for the help with the regex!

    opened by zero-24 2
  • Update herrera-io/phar-update requirement from 1.* to 1.* || 2.*

    Update herrera-io/phar-update requirement from 1.* to 1.* || 2.*

    Updates the requirements on herrera-io/phar-update to permit the latest version.

    Commits
    • 15643c9 Fixing branch alias.
    • 34417fb Switching to herrera-io/php-version.
    • 00a79e1 Unsetting example public key URL in some tests.
    • 5607847 Updating ignore list.
    • fbe7d93 Minor style fixes.
    • f4e7047 Checking if already defined.
    • 5ed077b Supporting upgrading to pre-release versions.
    • 8f9ce06 Removing realpath() use, which breaks inside a Phar.
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • [DrupalAdapter] Fix Travis error after #60

    [DrupalAdapter] Fix Travis error after #60

    This here tries to fix the drupal travis error reported here #65 by reverting this change here: https://github.com/CMS-Garden/cmsscanner/commit/f05f1a12e11c580caa2026b7e65dc139f00e7023#diff-7383f15d436a88fa320e7b9e19ca7cfa from @antondollmaier & @SniperSister

    opened by zero-24 1
  • Provide last stable version to each CMS

    Provide last stable version to each CMS

    Could be interesting to provide last version available to each CMS. Could be useful to detetect outdated CMS

    Take in consideration latest version and some LTS version

    opened by camlafit 0
  • Add output options

    Add output options

    Hi

    In my use case, I need to parse json result directly to jq. Could be nice to provide an option to set output option with at least curse (default) and json

    Thanks

    opened by camlafit 0
  • Add staticHtmlAdapter

    Add staticHtmlAdapter

    Would it be easy to detect a static only site?

    The current adapters all look for a pattern to be present in either file name or content, but for this we'd have to check the absence of other things.

    E.g. a single html file in a subfolder of a wordpress site should not be detected here. The presences of index.html is a good indication, but to be useful I'd want be sure no other php files are present (e.g. a contact.php file for some form processing). And the html files should not contain inline <?php ?> shippits.

    Or we'd have to also create a GenericPhpAdapter that acts as a fallthrough for when we have *.php files but no cms is detected.

    I've been drafting a bit of this in a feature/statichtml branch

    opened by helmo 5
Owner
CMS Garden
CMS Garden
Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS

Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS. Building this Content Management System, we focused on simplicity. To achieve this, we implemented a simple but powerful API's.

Flextype 524 Dec 30, 2022
PHPVibe Open source video CMS / Video Sharing CMS / Youtube Api v3 / Video Embeds

PHPVibe Video CMS Free Video Sharing CMS The modern choice of design inspired by Youtube and a social videos sharing module that may just cut it for y

MediaVibe 71 Dec 18, 2022
NukeViet 132 Nov 27, 2022
BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the project website for more information.

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

null 5 Aug 15, 2022
Baicloud CMS is a lightweight content management system (CMS) based on PHP and MySQL and running on Linux, windows and other platforms

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

null 5 Aug 15, 2022
Doptor CMS is a Laravel 5 based CMS

Introduction Doptor CMS is a Laravel 5 based CMS. Find out more about Doptor by reading below. ;) About Doptor CMS Doptor is an Integrated and well-de

DOPTOR 4 Sep 11, 2022
Bismuth CMS is a ready-made Website CMS based on Yii 2 Advance Template

Bismuth CMS is a ready-made Website CMS based on Yii 2 Advance Template, it's the simplest and easy to set up CMS you may come across.

Hamadas Telebrain 1 Feb 11, 2022
Bootstrap CMS - PHP CMS powered by Laravel 5 and Sentry

Bootstrap CMS Bootstrap CMS was created by, and is maintained by Graham Campbell, and is a PHP CMS powered by Laravel 5.1 and Sentry. It utilises many

Bootstrap CMS 2.5k Dec 27, 2022
GetSimple CMS - a flatfile CMS that works fast and efficient and has the best UI around, it is written in PHP

GetSimple CMS is a flatfile CMS that works fast and efficient and has the best UI around, it is written in PHP.

null 370 Dec 30, 2022
Amila Laravel CMS - Free, open-source Simple Bootstrap Laravel CMS

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project. Only add few database tables with prefixes, not affect your existing database tables. Support Laravel 7.x & Laravel 6.x & Laravel 5.x & MySql & PostgreSql - Amila Laravel CMS

Alex Zeng 96 Sep 6, 2022
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

Grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are alr

Grav 13.6k Jan 4, 2023
Self-hosted CMS platform based on the Laravel PHP Framework.

October is a Content Management System (CMS) and web platform whose sole purpose is to make your development workflow simple again. It was born out of

October CMS 10.8k Jan 4, 2023
Craft is a flexible, user-friendly CMS for creating custom digital experiences on the web and beyond.

About Craft CMS Craft is a flexible, user-friendly CMS for creating custom digital experiences on the web and beyond. It features: An intuitive, user-

Craft CMS 2.9k Jan 1, 2023
Pyro is an experienced and powerful Laravel PHP CMS.

PyroCMS PyroCMS is an easy to use, powerful, and modular CMS and development platform built with Laravel 5. Security If you discover any security rela

PyroCMS 3.1k Dec 23, 2022
Multilingual PHP CMS built with Laravel and bootstrap

Lavalite This is an open source of Content Management System developed with Laravel framework. Documentation Visit Documentation section in the websit

LavaLite 2.6k Jan 4, 2023
Multilingual CMS built with Laravel.

TypiCMS TypiCMS is a modular multilingual content management system built with Laravel. Out of the box you can manage pages, events, news, places, men

TypiCMS, Laravel multilingual CMS 1.1k Jan 7, 2023
Drag and Drop Website Builder and CMS with E-commerce

Microweber: Drag-and-Drop CMS Current version: 1.2 running on Laravel 8! Download | What is Microweber? | Core features of Microweber | Requirements |

Microweber 2.6k Dec 31, 2022
The repository for Coaster CMS (coastercms.org), a full featured, Laravel based Content Management System

The repository for Coaster CMS (coastercms.org) a Laravel based Content Management System with advanced features and Physical Web integration. Table o

Coaster CMS 392 Dec 23, 2022
Borgert is a CMS Open Source created with Laravel Framework 5.6

A simple CMS to start projects in Laravel containing some modules. Blog, Pages, Products, Mailbox, Image Gallery, Log Viewer and Users. Frontend: Blog

Borgert Inc. 300 Dec 30, 2022