The Multi-app plugin allows for the dynamic creation and management of multiple independent applications without separate deployments. Each sub-app is a completely independent instance with its own database, plugins, and configurations.
The Multi-app plugin itself does not provide user sharing capabilities.
To enable user integration across multiple applications, it can be used in conjunction with the Authentication Plugin.
Find the Multi-app plugin in the plugin manager and enable it.

Click "Multi-app" in the system settings menu to enter the multi-app management page:

Click the "Add New" button to create a new sub-app:

Click the Start button to start a sub-app.
If "Start on first access" was checked during creation, it will start automatically upon the first visit.
Click the View button to open the sub-app in a new tab.

You can view the memory and CPU usage of each application in the list.

Click the Logs button to view the sub-app's runtime logs.
If a sub-app is inaccessible after starting (e.g., due to database corruption), you can troubleshoot using the logs.

Click the Delete button to remove a sub-app.
When deleting, you can choose whether to delete the database as well. Please proceed with caution, as this action is irreversible.
By default, use /_app/:appName/admin/ to access sub-apps, for example:
Additionally, you can configure independent subdomains for sub-apps. You need to resolve the domain to the current IP address. If using Nginx, the domain must also be added to the Nginx configuration.
In the project root directory, you can use the command line to manage sub-app instances via PM2:
Go to the legacy multi-app management page and click the Migrate Data to New Multi-app button to perform the migration.

Sub-apps can use the same plugins as the main app (including versions), but plugins can be configured and used independently.
Sub-apps can be configured with independent databases. If you want to share data between applications, it can be achieved through external data sources.
Currently, data backup on the main app does not include sub-app data (it only includes basic sub-app information). Backups and migrations must be performed manually within each sub-app.
Sub-app versions will automatically follow the main app's upgrades, ensuring version consistency between the main and sub-apps.
The resource consumption of each sub-app is basically the same as the main app. Currently, the memory usage of a single application is around 500-600MB.