Search by

liberusoftware / cms-laravel

curtisdelicata

Liberu CMS: a modular Laravel application with API, Filament, and Livewire foundations.

Package info

github.com/liberusoftware/project-cms-laravel-filament

Type:project

pkg:composer/liberusoftware/cms-laravel

Fund package maintenance!

liberusoftware

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 124

Open Issues: 85

v34.1.3 2026-11-14 17:28 UTC

This package is auto-updated.

Last update: 2026-11-14 21:36:47 UTC


README

Liberu CMS

Open-Source Content Management — Built with Laravel 13, Filament 5, Livewire 4, and PHP 8.5

License: MIT Open Source Love Latest Release codecov

Install Tests Docker

About Liberu CMS

Liberu CMS is a powerful, open-source content management system built on the latest versions of Laravel 13, PHP 8.5, Filament 5, and Livewire 4. Designed to be fast, flexible, and developer-friendly, it gives content creators and administrators an intuitive platform for building and managing modern digital experiences — from blogs and landing pages to full enterprise websites.

Whether you're a solo creator or a team managing large-scale digital content, Liberu CMS delivers the tools and structure you need, backed by a clean codebase and an active open-source community.

Contact us on WhatsApp YouTube Facebook Instagram X LinkedIn GitHub

Key Features

  1. User-Friendly Content Creation: An intuitive interface for creating and managing articles, multimedia content, and dynamic pages — no technical expertise required.

  2. Real-Time Livewire Interactions: Built with Livewire 4, Liberu CMS delivers seamless, reactive user experiences — edit, preview, and publish without full page reloads.

  3. Powerful Filament 5 Admin Panel: The Filament 5-powered admin panel provides a rich, customisable interface for managing users, roles, settings, and the entire content ecosystem.

  4. Customisable Templates: Tailor your site's appearance with flexible templates. Build unique, brand-aligned websites using the CMS's theming and layout tools.

  5. Role-Based Access Control: Granular permission management via Filament Shield, ensuring the right people have access to the right content and settings.

  6. Menu Builder: Easily create and manage navigation menus across your site using the integrated Filament Menu Builder.

  7. Scalability and Performance: Suitable for personal blogs through to enterprise-scale websites. The modern Laravel 12 foundation ensures excellent performance and reliability.

  8. Docker & Laravel Sail Support: Spin up a full development environment in minutes using Docker or Laravel Sail.

Our Projects

Installation

Requirements

  • PHP 8.5+
  • Composer
  • Node.js 22+
  • A supported database (MySQL, PostgreSQL, SQLite)

Option 1: Automated Script (Recommended)

The easiest way to get started is to run the included setup script from the command line. It will guide you through copying your environment file, installing dependencies, running migrations, and seeding the database.

git clone https://github.com/liberusoftware/project-cms-laravel-filament.git
cd cms-laravel
./setup.sh

Note: On Linux/macOS, run the script as you would any shell script in the terminal. On Windows, use Git Bash or WSL.

The script will prompt you to confirm each step, including whether to overwrite an existing .env file. If you already have a .env configured, answer n when prompted.

Note: The script runs database seeders automatically. Ensure your database credentials are correct in .env before proceeding.

Option 2: Manual Installation

If you prefer to install manually, run the following commands:

git clone https://github.com/liberusoftware/project-cms-laravel-filament.git
cd cms-laravel
cp .env.example .env
composer install
php artisan key:generate
php artisan migrate --seed
npm install
npm run build
php artisan serve

Ensure your .env file is configured with your database connection details before running migrations.

Option 3: Docker / Laravel Sail

You can also run Liberu CMS using Docker or the included Laravel Sail configuration.

Using Docker:

docker build -t cms-laravel .
docker run -p 8000:8000 cms-laravel

Using Laravel Sail:

./vendor/bin/sail up

Once running, access the application at http://localhost. For more details, see the Laravel Sail documentation.

Graphical Installer

For users who prefer a GUI-based setup, a graphical installer is available. Download and run it from the Releases page — it walks you through environment configuration and installation without needing to use the command line.

CMS workspace and onboarding

The website app panel retains /admin and the existing team switcher. Team owners can open Website setup to enter a website name, optional domain, language and timezone. Each Next saves progress for that team. Finishing creates (or updates) a CMS Core site in draft through the public Core actions; it does not publish content, configure DNS or enable modules. Website settings and progress are isolated per team. Other team members retain their normal content permissions and see the website overview without owner-only setup controls.

Enable onboarding on your installation

After installing or updating the application, run the migration and build the panel assets from the project directory:

php artisan migrate
npm run build
php artisan cms:platform-admin administrator@example.com

Replace administrator@example.com with the email address of an existing user on your installation. Then:

  1. Sign in at /platform-admin with that account and complete the platform setup wizard. Complete two-factor enrolment first if enforcement is enabled.
  2. Sign in at /admin as a website team owner, select the appropriate team, and choose Website setup from the overview or sidebar.
  3. Repeat website setup for each website team. Progress is saved separately for each team when you choose Next.

To remove platform administrator access later:

php artisan cms:platform-admin administrator@example.com --revoke

Platform access is separate from a team's super_admin role and cannot be assigned through the user edit form or public registration. The platform wizard saves shared name, contact email, language and currency to the existing General Settings store. These global settings are available only in the platform panel. Both panels retain the configured two-factor requirements; platform administrators are privileged users. Email delivery, backups and infrastructure configuration remain deployment tasks.

Both wizards are optional and can be revisited from the overview or sidebar. They preserve existing accounts, sessions and content. The interface uses the same responsive Filament controls, keyboard focus indicators and light/dark theme.

Validate the onboarding journeys with php artisan test tests/Feature/Filament/OnboardingTest.php, and build the shared panel theme with npm run build.

Testing and coverage

Run the application test suite with:

php artisan test

Generate the CI coverage report with:

XDEBUG_MODE=coverage php -d memory_limit=-1 artisan test --coverage-clover=coverage.xml --min=100

Coverage is a blocking gate for the configured application and module source scope. The threshold must not be lowered to accommodate an incomplete test suite.

Coverage is reported for the CMS application and its modules on the main branch through Codecov.

Contributing

Contributions are warmly welcome! Whether you want to fix a bug, add a feature, improve documentation, or raise an issue, your involvement helps make Liberu CMS better for everyone.

Pull Request Process:

  1. Fork the repository and create a new branch for your changes.
  2. Make your changes with clear, descriptive commit messages.
  3. Ensure tests pass by running php artisan test.
  4. Submit a pull request to the main branch with a clear description of what you've changed and why.
  5. The maintainers will review your PR and may request changes before merging.

If you're not comfortable writing code, raising a GitHub Issue is equally valuable — it helps us track bugs, ideas, and improvements.

We believe in an inclusive, collaborative community where every contribution is respected and appreciated.

License

Liberu CMS is open source, licensed under the MIT License.

The MIT license is one of the most permissive open-source licenses available. It means you are free to:

  • Use the software for any purpose — personal, commercial, or otherwise
  • Modify the source code to suit your needs
  • Distribute copies of the software, with or without your modifications
  • Integrate it into proprietary products without requiring you to open-source your own code

The only requirement is that the original copyright notice and licence text are included with any distribution.

This permissive approach makes Liberu CMS an ideal foundation for both individual projects and commercial products, with no hidden costs or licensing restrictions.

Contributors

Automatic module and theme publishing

.github/workflows/sync-packages.yml publishes packages changed under modules/ or themes/ on pushes to main. A manual run reconciles all tracked packages. Each package needs a composer.json with a liberusoftware/* name. Files are copied from Git into the root of liberusoftware/module-<directory> or liberusoftware/theme-<directory>. Where .liberu-meta.json defines a repositoryPrefix, that design is authoritative (for example, modules/module-manager becomes module-module-manager). Without a configured prefix, an existing module- or theme- directory prefix is kept. Destination history is preserved, deleted files are removed, and unchanged packages do not receive another commit or release. Removing an entire package leaves its public repository intact. This workflow makes tracked package edits publishable; install checks still require the project's Composer dependencies to resolve to those published package contents.

Configure these secrets in the packagist GitHub environment (or as repository or organization secrets available to this repository):

  • MODULE_SYNC_TOKEN: organization-authorized GitHub token able to create public repositories and read/write package contents and releases across the target repositories. Because package snapshots include .github/workflows, allow workflow writes too. A classic PAT needs repo and workflow scopes and an organization role permitted to create repositories. The default GITHUB_TOKEN cannot publish across these repositories.
  • PACKAGIST_USERNAME: Packagist account that owns or maintains these packages.
  • PACKAGIST_API_TOKEN: that account's main API token, required to submit new packages as well as update existing packages.

New packages start at their declared stable Composer version, or v1.0.0. Existing packages use the highest stable repository tag: a higher declared Composer version wins, BREAKING CHANGE: or type!: commits bump major, feat: commits bump minor, and other changes bump patch. Only commits touching the package since the last successful sync affect this decision. The first automated run and manual runs reconcile all packages, so canceled or failed runs cannot silently drop package changes. Tags and commits are pushed atomically, then a GitHub release is created and the package is submitted to or refreshed on Packagist. Rerunning a failed job completes publication without issuing another release for the same contents. Concurrent pushes from other projects are rejected instead of force-pushed; rerun the failed job.

The source project and its lockfile are not rewritten by publication. Different projects publishing the same directory name share a destination repository; coordinate their package contents. Run the publisher's local tests with python3 -m unittest discover -s .github/scripts -p 'test_sync_packages.py'.

Project family and presentation options

This repository hosts CMS with Laravel and Filament. Content authoring, publishing and delivery. Its existing installation instructions and manifests govern this application. The other presentations are independent skeletons derived from their matching Boilerplate foundation; repository availability does not establish product feature parity.

Other Laravel and Filament projects

Project Scope
Boilerplate Shared application foundation and module composition
Accounting ERP Ledgers, tax, reporting and finance workflows
Automation AI gateways, approvals, rules and integrations
Billing Subscriptions, pricing, payments and provisioning
Browser Game Game worlds, players and community workflows
Control Panel Infrastructure and hosting operations
CRM Relationships, sales pipelines and customer service
Ecommerce Catalogs, checkout, orders and fulfillment
Enterprise SAP Enterprise workspace and cross-product orchestration
Genealogy Family trees, research, evidence and collaboration
Liberu Platform Official sites, staff applications and platform composition
Maintenance Assets, work orders, schedules and field operations
Music DAW Composition, recording, sequencing and audio production
Real Estate Listings, sales, lettings and agency operations
Social Network Profiles, feeds, communities and moderation

Other presentations for CMS

  • Laravel · Inertia · Vue: Laravel routes and sessions with Vue pages over the Inertia protocol.
  • Laravel · Inertia · React: Laravel routes and sessions with React pages over the Inertia protocol.
  • Nuxt · Vue: Independent Vue application with Nuxt server rendering and reviewed API integration.
  • Next.js · React: Independent React application with explicit Next.js server/client boundaries.
  • React Native · Expo: Native iOS/Android application using React Native and Expo.
  • Flutter · Mobile: Flutter iOS/Android application using Dart and mobile widgets.
  • Dart · Desktop: Dedicated Dart desktop application with a Flutter host for Linux, macOS and Windows.
  • Dart · Mobile: Separate Dart mobile application with a Flutter host for iOS and Android.

Use the presentation implementation guides and product documentation to select compatible modules, reviewed contracts and the correct deployment boundary. Laravel remains authoritative for domain rules and tenant authorization across all clients.