Laralord enables multi-tenancy for any stateless Laravel application without requiring code updates.It is an OpenSwoole wrapper designed to provide a high-performance, multi-tenant server setup for Laravel Application.

0.1.2 2025-04-11 16:21 UTC

README

Test GitHub Release Docker Image Version

Laralord Server   Laralord Project - Server

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..

What is Laravel?

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.

Key Features

  1. 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.
  2. 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.
  3. 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.
  4. Dynamic Credentials Update:

    • Periodically fetch and update credentials from HashiCorp Vault, ensuring that tenant environments are always using the latest credentials.
  5. Containerization Support:

    • Application built for containerization, offering simple and clear configuration, even through environment variables.

Requirements

  • 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

Documentation

  1. Installation
  2. Server
  3. S3-Proxy
  4. Queue
  5. Scheduler
  6. Environment Source and Resolvers
  7. Multi-Tenant Helpers

Licensing

This project is licensed under the MIT License - see the LICENSE file for details.