gp247 / cms
Free CMS source code built with Laravel for your system.
Requires
- php: ^8.3
- gp247/core: ^3.10.2
- gp247/front: ^3.5.2
- laravel/framework: ^13.8
- laravel/tinker: ^3.0
Requires (Dev)
- barryvdh/laravel-debugbar: ^4.4
- fakerphp/faker: ^1.23
- laravel/pail: ^1.2.5
- laravel/pao: ^1.0.6
- laravel/pint: ^1.27
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- phpunit/phpunit: ^12.5.12
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
_____ _____ ___ _ _ _____
/ ____| __ \ |__ \| || | |___ |
| | __| |__) | ) | || |_ / /
| | |_ | ___/ / /|__ _| / /
| |__| | | / /_ | | / /
\_____|_| |____| |_| /_/
π Language: π¬π§ English (current) Β· π»π³ TiαΊΏng Viα»t
Free CMS source code built with Laravel for your system
composer create-project gp247/cms my-site "^3.0"
About GP247 CMS
- GP247 CMS makes it easy for you to build a website for your business.
- GP247 CMS is a complete system, combining
GP247/frontandGP247/core.
What can GP247 do?
- Provides a powerful and flexible role management solution.
- Offers a synchronous authentication API, enhancing API security with additional layers.
- Build and manage Plugins/Templates that work in the system
- Comprehensive access log monitoring system.
- Continuously updates security vulnerabilities.
- Multi-language support, easy to manage.
- GP247 is FREE
And more:
- GP247 builds an open ecosystem (plugin, template), helping users quickly build CMS, PMO, eCommerce, etc., according to your needs.
Core Laravel:
GP247 3.x
Core Laravel framework 13.x
UI built with Tailwind CSS 4
Website structure using GP247
Website-folder/
|
βββ app
β βββ GP247
β βββ Core(+) //Customize controller of Core
β βββ Helpers(+) //Auto load Helpers/*.php
β βββ Plugins(+) //Use `php artisan gp247:make-plugin --name=NameOfPlugin`
β βββ Front(+) //Customize controller of Front
β βββ Templates(+) //Use `php artisan gp247:make-template --name=NameOfTempate`
βββ public
β βββ GP247
β βββ Core(+)
β βββ Plugins(+)
β βββ Templates(+)
βββ resources
β βββ views/vendor
β βββ gp247-admin(+) //Core view overrides
β βββ gp247-front-admin(+) //Front view overrides
βββ vendor
β βββ gp247/core
β βββ gp247/front
βββ...
Quick Installation Guide
Requirements: PHP 8.3 or later, Composer 2, MySQL or MariaDB.
-
Check which PHP Composer runs on:
composer diagnose
The
PHP versionline must be 8.3 or later.β οΈ With an older PHP, Composer does not fail β it quietly installs an old, unsupported CMS version. Always keep
"^3.0"in the command of step 2 so Composer fails clearly instead. -
Create the project (replace
my-sitewith the folder name you want):composer create-project gp247/cms my-site "^3.0" cd my-site
This creates the
.envfile and theAPP_KEYfor you. -
Create an empty database, then open
.envand set the database section to match it:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password
-
Install GP247 CMS:
php artisan gp247:install
The command asks for confirmation β type
yes. When it finishes it prints the admin path and the sign-in account. -
Open your browser:
Page Address Sign in Website http://your-domainβ Admin http://your-domain/gp247_adminadmin/adminπ Change the
adminpassword right after your first sign-in.
Check the setup after installing:
php artisan gp247:doctor
Useful information:
View GP247 version
php artisan gp247:info
Update GP247
-
Back up the database and the
app/GP247,public/GP247folders before updating. -
Get the new code:
composer update gp247/core gp247/front
-
Apply the changes to the site (safe: no data is deleted, translations and templates you edited are not overwritten):
php artisan gp247:update
-
Check the result:
php artisan gp247:info
β οΈ Running
composer updatealone is not enough β always run step 3 as well.
Advanced options (overwrite translations with --overwrite-lang, refresh assets/views with --publish=β¦) can overwrite your customizations β read the GP247 update guide before using them.
Create plugin:
php artisan gp247:make-plugin --name=PluginName
To create a plugin zip file:
php artisan gp247:make-plugin --name=PluginName --download=1
Create template:
php artisan gp247:make-template --name=TemplateName
To create a template zip file:
php artisan gp247:make-template --name=TemplateName --download=1
Customization
Customize admin view
Each package publishes its admin views into its own views/vendor/<namespace> folder β publish only the tag you need:
php artisan vendor:publish --tag=gp247:core-view// -> views/vendor/gp247-admin
php artisan vendor:publish --tag=gp247:front-admin// -> views/vendor/gp247-front-admin
Customize the default template
The default GP247Front template is loaded straight from the package, so every file you have not published picks up new versions when you update. Publish only the file you need to change, for example the home page:
php artisan gp247:template-publish GP247Front --file=screen/home.blade.php// -> app/GP247/Templates/GP247Front/screen/home.blade.php
Override gp247_xxx functions
Step 1: Add the list of functions you want to override to the array in
config/gp247_functions_except.php
Step 2: Create a new function in the
app/GP247/Helpersdirectory, for exampleapp/GP247/Helpers/myfunction.php
Override gp247 controller files
You can override any controller (including API controllers) in GP247/Core and GP247/Front using the same mechanism: create the corresponding controller in app/GP247/{Core|Front}, extend the original controller, and prepend App to the original namespace.
Step 1: Create the matching file under
app/GP247/Core/...(keep the same sub-path and filename as in the original package).
Step 2: Make the new controller
extendthe original controller fromvendor/gp247/core/....
Step 3: Change the namespace from
GP247\Core\...toApp\GP247\Core\...(just prependApp, keep the rest as-is).
The same pattern applies to GP247\Front\* (becoming App\GP247\Front\*) and to API controllers (GP247\Core\Api\Controllers becomes App\GP247\Core\Api\Controllers).
Add route
Use prefix and middleware constants GP247_ADMIN_PREFIX, GP247_ADMIN_MIDDLEWARE in route declaration.
Reference: https://github.com/gp247net/core/blob/master/src/routes.php
Environment variables in .env file
Quickly disable GP247 and plugins
GP247_ACTIVE=1// To disable, set value 0
Disable APIs
GP247_API_MODE=1// To disable, set value 0
Data table prefixes
GP247_DB_PREFIX=gp247_//Cannot change after installing gp247
Path prefix to admin
GP247_ADMIN_PREFIX=gp247_admin