You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run multiple websites using the same Laravel installation while keeping tenant specific data separated for fully independent multi-domain setups, previously github.com/hyn/multi-tenant
The unobtrusive Laravel package that makes your app multi tenant. Serving
multiple websites, each with one or more hostnames from the same codebase. But
with clear separation of assets, database and the ability to override logic per
tenant.
Suitable for marketing companies that like to re-use functionality
for different clients or start-ups building the next software as a
service.
Offers:
Integration with the awesome Laravel framework.
Event driven, extensible architecture.
Close - optional - integration into the web server.
The ability to add tenant specific configs, code, routes etc.
Database separation methods:
One system database and separated tenant databases (default).
Table prefixed in the system database.
Or .. manually, the way you want, by listening to an event.
If you disable auto discovery you are able to configure the providers by yourself.
Register the service provider in your config/app.php:
'providers' => [
// [..]// Hyn multi tenancy.Hyn\Tenancy\Providers\TenancyProvider::class,
// Hyn multi tenancy webserver integration.Hyn\Tenancy\Providers\WebserverProvider::class,
],
Deploy configuration
First publish the configuration and migration files so you can modify it to your needs:
php artisan vendor:publish --tag tenancy
Open the config/tenancy.php and config/webserver.php file and modify to your needs.
Make sure your system connection has been configured in database.php. In case you didn't override the system connection name the default connection is used.
Now run:
php artisan migrate --database=system
This will run the required system database migrations.
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
Contributors
License and contributing
This package is offered under the MIT license. In case you're interested at
contributing, make sure to read the contributing guidelines.
Testing
Run tests using:
vendor/bin/phpunit
If using MySQL, use:
LIMIT_UUID_LENGTH_32=1 vendor/bin/phpunit
Please be warned running tests will reset your current application completely, dropping tenant and system
databases and removing the tenancy.json file inside the Laravel directory.
Run multiple websites using the same Laravel installation while keeping tenant specific data separated for fully independent multi-domain setups, previously github.com/hyn/multi-tenant