team-nifty-gmbh/flux-erp

19,671 4
Install
composer require team-nifty-gmbh/flux-erp
Latest Version:v1.10.3
PHP:^8.4
License:MIT
Last Updated:Oct 2, 2026
Links: GitHub  ·  Packagist
Maintainer: team-nifty

Flux ERP

Flux ERP is a modern, open-source ERP built on Laravel and Livewire. It ships as a Composer package that you install into a Laravel application.

[!IMPORTANT] Flux is a package, not a standalone app. That is why this repository has no artisan file and no bootstrap/app.php — those belong to the Laravel host application. You cannot run php artisan … inside this repository directly. Install it into a fresh Laravel app as shown below.

Requirements

  • PHP 8.4 (bcmath, intl, json, pdo, zip)
  • MySQL 8 / MariaDB
  • Meilisearch — search (Laravel Scout)
  • Composer 2

No Node.js or frontend build is needed on the project side. Flux serves its compiled assets straight from the package at runtime.

Installation

# 1. Create a fresh Laravel app
composer create-project laravel/laravel flux-app
cd flux-app

# 2. Require Flux (service provider, migrations, routes and assets auto-register)
composer require team-nifty-gmbh/flux-erp

# 3. Require the license package (provides the install wizard)
composer require team-nifty-gmbh/flux-license

# 4. Run the interactive install wizard
php artisan flux:install

# 5. Link storage for uploaded media
php artisan storage:link

Configure your database, Meilisearch and mail credentials in .env before running the wizard, and remove the default welcome route from routes/web.php (Flux registers its own).

The php artisan flux:install wizard guides you through the remaining setup (migrations, roles and permissions, base data, payment types, and so on). If you prefer to run the steps manually instead, use php artisan migrate and php artisan init:permissions.

Seeding base data

Add the seeder to database/seeders/DatabaseSeeder.php:

$this->call(\FluxErp\Database\Seeders\FluxSeeder::class);

then run php artisan db:seed.

Serve the app with php artisan serve (or Sail) and log in.

Frontend assets

Assets are compiled inside the package and served through its own /flux/… routes. The @fluxStyles and @fluxScripts Blade directives inject them — add these to your <head> and before </body> only if you use a custom layout instead of the shipped one. Nothing to build or publish.

Realtime (Laravel Reverb)

Flux uses Laravel Reverb for realtime features. Broadcasting credentials are read from .env at runtime, so no rebuild is required when they change.

php artisan reverb:start
REVERB_APP_ID=local
REVERB_APP_KEY=local
REVERB_APP_SECRET=local
REVERB_HOST=your.domain.com
REVERB_SCHEME=https
REVERB_PORT=443

In production run Reverb behind your web server as a reverse proxy so websocket traffic reaches it on port 443.

Publishing package resources (optional)

Only needed to override defaults:

Tag Publishes
flux-config config/flux.php
flux-views Blade views into resources/views/vendor/flux
flux-translations Language files
flux-migrations Migrations into database/migrations
flux-seeders Seeders into database/seeders
flux-docker Docker/Sail setup
php artisan vendor:publish --tag=flux-config

Development

Flux publishes a Docker/Sail setup that runs nginx instead of artisan serve:

php artisan vendor:publish --tag=flux-docker

Run the package test suite (uses Testbench) from the package directory:

composer install
composer test

The test suite needs MySQL 8 or MariaDB as well. phpunit.xml pins DB_CONNECTION=mysql, so the requirement above is not only about production. A local .env pointing at SQLite aborts on the first migration that uses raw MySQL, before a single test has run. That abort is not a failing test, it means the test database points at the wrong driver.

Give every session its own database. Parallel runs against one shared schema pull each other's tables away through RefreshDatabase, which shows up as Table 'testing.migrations' doesn't exist in the middle of a run:

mysql -e "CREATE DATABASE IF NOT EXISTS testing_mine;"
DB_DATABASE=testing_mine ./vendor/bin/testbench package:test

Documentation

Guides for extending Flux live in docs: routes, views, widgets, print views, monitorable jobs, backend customization.

License

Flux ERP is open-sourced software licensed under the MIT license.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

589,172,971 34,950
laravel/tinker

Powerful REPL for the Laravel framework.

498,216,183 7,442
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

413,412,504 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

394,964,158 4,660

Version History

Version Released PHP Laravel License
v1.10.3 ^8.4 ^13.23 MIT
v1.10.2 ^8.4 ^13.23 MIT
v1.10.1 ^8.4 ^13.23 MIT
v1.10.0 ^8.4 ^13.23 MIT
v1.9.13 ^8.4 ^13.23 MIT