Laralord enables multi-tenancy for any stateless Laravel application without requiring code modifications. It is an OpenSwoole wrapper designed to provide a high-performance, multi-tenant server setup for Laravel applications.
The main idea is to gain the benefits of a multi-tenant application without adding complexity to the development process.
This project aims to separate tenant management from your application's business logic.
You can serve a Laravel application developed with a single-tenant approach in a multi-tenant environment..
Laravel is an open source PHP framework for web application development.
Overview of Laravel Trademarks: The respective trademarks mentioned in the offering are owned by the respective companies, and use of them does not imply any affiliation or endorsement.
-
Multi-Tenant Support:
- Detect tenant ID via headers, cookies, JWT tokens, query strings, or POST data.
- Operate in:
- Single-Tenant Mode: Optimized server for a single tenant with pre-booted Laravel instances for ultra-fast responses.
- Multi-Tenant Mode: Dynamically resolve environment credentials per tenant, supporting concurrent requests with isolated environments.
- S3 Bucket Proxy: Simplifies serving static files and tenant-specific frontends from an S3 or S3-compatible bucket.
-
High Performance:
- Pre-boot Laravel application in Single-Tenant Mode, reducing response delay by up to 20ms.
- Process Isolation: Each request is executed in a separate process using the
pcntl
extension.
-
Unified Queue Workers and Scheduler:
- Fair distribution of resources between tenants in both the queue system and scheduler.
- Supports isolated task execution per tenant, ensuring that each tenant has equal access to resources.
-
Dynamic Credentials Update:
- Periodically fetch and update credentials from HashiCorp Vault, ensuring that tenant environments are always using the latest credentials.
-
Containerization Support:
- Application built for containerization, offering simple and clear configuration, even through environment variables.
- PHP: >= 8.2
- PHP Extensions:
openswoole
,inotify
,apcu
,sysvmsg
,pcntl
,redis
- Environment Variables Source: Vault, file-based, or directory-based configurations supported
- System Utilities:
bash
,curl
This project is licensed under the MIT License - see the LICENSE file for details.