rawbinn / larapress
A WordPress-inspired CMS package for Laravel with admin panel, themes, plugins, and content management.
Requires
- php: ^8.3
- astrotomic/laravel-translatable: ^11.12
- illuminate/config: ^13.0
- illuminate/filesystem: ^13.0
- illuminate/support: ^13.0
- illuminate/view: ^13.0
- intervention/image: ^3.0
- rawbinn/lp-auth: ^1.0
- rawbinn/media: ^1.0
- rawbinn/themes: ^2.0
- spatie/laravel-sitemap: ^8.0
- webwizo/laravel-shortcodes: ^1.0
- yajra/laravel-datatables: ^13.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.13
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^12.0
Suggests
- rawbinn/larapress-starter-themes: Optional gear/nova starter themes and favicon assets.
- rawbinn/lp-auth: Required for users, roles, and admin authentication.
- rawbinn/media: Required for the media library.
- rawbinn/themes: Required for the theme engine.
Provides
None
Conflicts
None
Replaces
None
README
A WordPress-inspired CMS for Laravel with an admin panel, themes, plugins, pages, posts, menus, settings, and SEO tools.
Requirements
- PHP 8.3+
- Laravel 13
- MySQL/MariaDB or PostgreSQL
- Composer
Required companion packages (installed automatically):
| Package | Purpose |
|---|---|
rawbinn/lp-auth |
Users, roles, permissions |
rawbinn/media |
Media library and uploads |
rawbinn/themes |
Theme engine and asset resolution |
Installation
composer require rawbinn/larapress rawbinn/lp-auth rawbinn/media rawbinn/themes php artisan lp-auth:install php artisan vendor:publish --tag=media-config php artisan larapress:install --skip-setup php artisan migrate php artisan larapress:seed php artisan larapress:install --setup-only php artisan storage:link
larapress:install --setup-only prompts for site title, description, email, and admin password. The same email is used for site contact and admin login. It creates the administrator account and saves site settings.
Use php artisan larapress:install --force to overwrite published files.
Install flags:
--without-support— skip editor/support assets (CodeMirror, flags, logos)--without-assets— skip compiled admin assets--with-themes— also runlarapress-starter-themes:installwhen that package is installed--skip-setup— skip site/admin setup prompts--setup-only— skip publishing and only run site/admin setup--site-title=,--site-description=,--admin-email=,--admin-password=— non-interactive setup (all four required together)
Non-interactive setup example:
php artisan larapress:install --setup-only \ --site-title="My Site" \ --site-description="Site meta description" \ --admin-email="admin@example.com" \ --admin-password="secret-password"
Optional starter themes package:
composer require rawbinn/larapress-starter-themes php artisan larapress-starter-themes:install
Optional extra publishes:
php artisan vendor:publish --tag=larapress-lang php artisan vendor:publish --tag=media-assets
Quick start
1. Register middleware
Add the Larapress middleware to your web group in bootstrap/app.php (or app/Http/Kernel.php on older apps):
->withMiddleware(function (Middleware $middleware) { $middleware->appendToGroup('web', [ \Rawbinn\Larapress\Middleware\Larapress::class, ]); })
2. Configure the user model
namespace App\Models; use Rawbinn\Auth\Models\User as BaseUser; class User extends BaseUser { // }
Update config/auth.php and config/larapress.php to point at your user model.
3. Publish and configure access
Ensure config/access.php exists in your application (or publish it from your app skeleton) and seed an administrator user with the Administrator role.
4. Enable the admin bar (optional)
In Settings → Miscellaneous, set Show Adminbar to Yes for logged-in users on the frontend.
Publish tags
| Tag | Contents |
|---|---|
larapress |
config/larapress.php |
larapress-access |
config/access.php |
larapress-custom-css |
config/custom-css.php |
larapress-themes-config |
config/themes.php |
admin-menu |
config/admin-menu.php |
larapress-admin |
Compiled admin assets in public/vendor/larapress |
larapress-support |
Editor and support assets (CodeMirror, flags, logos) |
larapress-lang |
Language files |
larapress-assets |
Deprecated legacy bulk asset publish |
Configuration
Key options in config/larapress.php:
return [ 'user_model' => App\Models\User::class, 'user_confirmation_route' => env('LARAPRESS_USER_CONFIRMATION_ROUTE', 'frontend.auth.account.confirm'), 'admin_bar' => false, 'admin_analytics' => [ 'enabled' => env('LARAPRESS_ADMIN_ANALYTICS', false), 'tracking_id' => env('LARAPRESS_ADMIN_ANALYTICS_ID'), ], ];
The Miscellaneous settings screen stores most runtime options (site title, SEO, reCAPTCHA, admin bar) in the settings table.
Plugins and themes
- Drop plugins into
plugins/{slug}/and install via Admin → Plugins orphp artisan plugin:install {slug} - Install demo themes with
rawbinn/larapress-starter-themes, then activate one in Admin → Themes
Artisan commands
php artisan plugin:list php artisan plugin:install contact php artisan plugin:activate contact php artisan plugin:deactivate contact php artisan plugin:uninstall contact
Development
From the monorepo root:
composer test:larapress composer lint:larapress composer analyse:larapress
From the package directory:
cd packages/rawbinn/larapress composer install npm install npm run build composer test composer lint composer analyse
License
MIT. See LICENSE.