Tenancy multi-database integration for FilamentPHP
composer require tomatophp/filament-tenancy
after install your package please run this command
php artisan filament-tenancy:install
in your .env
add this
CENTRAL_DOMAIN=tomatophp.test
where tomatophp.test
is your central domain, and make sure you add a root user or a user have a permission to create database, then in your main central panel add this plugin
use TomatoPHP\FilamentTenancy\FilamentTenancyPlugin;Â ->plugin(FilamentTenancyPlugin::make()->panel('app'))
now you need to create a panel for tenancy app
php artisan filament:panel
and make the name same as ->panel('app')
, in your tenancy app panel add this plugin
 use TomatoPHP\FilamentTenancy\FilamentTenancyAppPlugin; ->plugin(FilamentTenancyAppPlugin::make())
now on your config\database.php
add this code
...'connections' => [ 'dynamic' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], ...],
now run config:cache
php artisan config:cache
on your bootstrap\app.php
add this middleware
use Stancl\Tenancy\Middleware\InitializeTenancyByDomain;use Stancl\Tenancy\Middleware\InitializeTenancyBySubdomain;Â ->withMiddleware(function (Middleware $middleware) { $middleware->group('universal', [ InitializeTenancyByDomain::class, InitializeTenancyBySubdomain::class, ]);})
you can allow impersonate to tanent panel with 1 click by use this method on your plugin
 use TomatoPHP\FilamentTenancy\FilamentTenancyPlugin; ->plugin( FilamentTenancyPlugin::make() ->panel('app') ->allowImpersonate())
you can publish config file by use this command
php artisan vendor:publish --tag="filament-tenancy-config"
you can publish views file by use this command
php artisan vendor:publish --tag="filament-tenancy-views"
you can publish languages file by use this command
php artisan vendor:publish --tag="filament-tenancy-lang"
you can publish migrations file by use this command
php artisan vendor:publish --tag="filament-tenancy-migrations"
you can join our discord server to get support TomatoPHP
you can check docs of this package on Docs
Please see CHANGELOG for more information on what has changed recently.
Please see SECURITY for more information about security.
The MIT License (MIT). Please see License File for more information.