All Projects → tenancy → Multi Tenant

tenancy / Multi Tenant

Licence: mit
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

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to Multi Tenant

Tenancy
Automatic multi-tenancy for Laravel. No code changes needed.
Stars: ✭ 2,133 (-7.42%)
Mutual labels:  saas, multi-tenancy, laravel, tenant, tenancy
Tenancy
Run multiple websites using the same Laravel installation while keeping tenant specific data separated for fully independent multi-domain setups.
Stars: ✭ 916 (-60.24%)
Mutual labels:  saas, hacktoberfest, multi-tenant, laravel
go-saas
go data framework for saas(multi-tenancy)
Stars: ✭ 101 (-95.62%)
Mutual labels:  saas, multi-tenancy, tenant
Townhouse
A multi-tenant Laravel app for listing property rentals
Stars: ✭ 218 (-90.54%)
Mutual labels:  multi-tenant, multi-tenancy, laravel
K8spin Operator
K8Spin multi-tenant operator - OSS
Stars: ✭ 175 (-92.4%)
Mutual labels:  hacktoberfest, multi-tenant, multi-tenancy
multitenant
Multi-Tenant Spring Boot Application with separate databases using Hibernate and H2.
Stars: ✭ 15 (-99.35%)
Mutual labels:  multi-tenant, multi-tenancy, tenant
multitenant-microservices-demo
Full Isolation in Multi-Tenant SaaS with Kubernetes + Istio
Stars: ✭ 57 (-97.53%)
Mutual labels:  multi-tenant, saas, multi-tenancy
Gistlog
GistLog - simple, easy blogging based on GitHub gists
Stars: ✭ 237 (-89.71%)
Mutual labels:  saas, hacktoberfest, laravel
Bagisto
An easy to use, free and open source laravel eCommerce platform to build your online shop in no time.
Stars: ✭ 4,140 (+79.69%)
Mutual labels:  hacktoberfest, multi-tenant, laravel
Bdgt
Big finance tools in a small package
Stars: ✭ 159 (-93.1%)
Mutual labels:  hacktoberfest, laravel
Laravel 8 Stisla Jetstream
Laravel 8 + Jetstream + Livewire + Stisla
Stars: ✭ 159 (-93.1%)
Mutual labels:  hacktoberfest, laravel
Novapackages
Stars: ✭ 169 (-92.66%)
Mutual labels:  hacktoberfest, laravel
Media Manager
A simple file browser and up-loader for Laravel written in Vue.JS
Stars: ✭ 190 (-91.75%)
Mutual labels:  hacktoberfest, laravel
Symposium
Management of proposals, bios, photos, etc. for conference speakers.
Stars: ✭ 157 (-93.19%)
Mutual labels:  hacktoberfest, laravel
Laraplans
SaaS style recurring plans for Laravel.
Stars: ✭ 163 (-92.93%)
Mutual labels:  saas, laravel
Saas Boilerplate
SaaS boilerplate built in Laravel, Bootstrap 4 and VueJs.
Stars: ✭ 152 (-93.4%)
Mutual labels:  saas, laravel
Laravelresources
Speed Up package development for Laravel Apps with API's
Stars: ✭ 152 (-93.4%)
Mutual labels:  hacktoberfest, laravel
Laravel Debugbar
Laravel Debugbar (Integrates PHP Debug Bar)
Stars: ✭ 13,485 (+485.29%)
Mutual labels:  hacktoberfest, laravel
Laravel Messenger
Simple user messaging package for Laravel
Stars: ✭ 2,140 (-7.12%)
Mutual labels:  hacktoberfest, laravel
Laravel Invite Codes
This package allows you to easily manage invite codes for your Laravel application.
Stars: ✭ 174 (-92.45%)
Mutual labels:  hacktoberfest, laravel

Packagist build status codecov Packagist Codacy Badge Join our Discord server Mentioned in Awesome Laravel

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.

Complete documentation covers more than just the installation and configuration.

Requirements, recommended environment

  • Laravel 8.0+.
  • PHP 7.3+
  • Apache or Nginx.
  • MySQL, MariaDB, or PostgreSQL.

Please read the full requirements in the documentation.

Installation

composer require hyn/multi-tenant

Automatic service registration

Using auto discovery, the tenancy package will be auto detected by Laravel automatically.

Manual service registration

In case you want to disable webserver integration or prefer manual integration, set the dont-discover in your application composer.json, like so:

{
    "extra": {
        "laravel": {
            "dont-discover": [
                "hyn/multi-tenant"
            ]
        }
    }
}

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.


Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

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.

Changes

All changes are covered in the changelog.

Contact

Get in touch personally using;

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].