Search by

liberu-cms / cms-laravel

curtisdelicata

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

Package info

github.com/liberu-cms/cms-laravel

Issues

Type:project

pkg:composer/liberu-cms/cms-laravel

Fund package maintenance!

liberusoftware

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 123

v34.0.2 2026-11-02 14:12 UTC

This package is not auto-updated.

Last update: 2026-11-05 05:11:02 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/cms-laravel.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/cms-laravel.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.

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'.