2026-05-02 07:09:31 +00:00

77 lines
2.1 KiB
Markdown

# Central License Manager
This folder is a standalone multi-app activation manager that lives separately from the legacy `license_manager/` code.
## What it includes
- `index.php` — landing page + JSON API endpoints
- `manage.php` — admin dashboard for apps, licenses, and activations
- `install.php` — schema check / auto-install page
- `config.php` — local config and move-to-another-server settings
- `bootstrap.php` — shared DB, schema, and helper logic
## Tables it manages
- `clm_apps`
- `clm_licenses`
- `clm_activations`
## API endpoints
Use the folder base URL as the app setting:
```text
LICENSE_API_URL=https://your-domain.example/central_license_manager
```
Then the client will call:
- `index.php?action=activate`
- `index.php?action=verify`
- `index.php?action=deactivate`
- `index.php?action=health`
Admin/owner endpoints require the secret:
- `index.php?action=issue`
- `index.php?action=list`
- `index.php?action=apps`
- `index.php?action=update`
## Moving this folder later
1. Copy the whole `central_license_manager/` directory to the new server.
2. Set `CLM_DB_HOST`, `CLM_DB_NAME`, `CLM_DB_USER`, `CLM_DB_PASS`.
3. Set `CLM_API_SECRET` and `CLM_ADMIN_PASSWORD`.
4. Open `install.php` once to auto-create the tables.
5. Point each client app to the new base URL.
## Compatibility note
The API currently returns both:
- `max_activations`
- `allowed_activations`
That keeps older client code working while you gradually upgrade each app to send a dedicated `app_slug`.
## Current repo integration
This repo's `lib/LicenseService.php` now auto-detects this folder when `LICENSE_API_URL` is not set and uses it as the activation authority.
Default client values in this app:
- `LICENSE_APP_SLUG=bilingual-accounting`
- `LICENSE_APP_NAME=Bilingual Accounting`
You can override them per app with environment variables:
- `LICENSE_API_URL`
- `LICENSE_API_SECRET`
- `LICENSE_APP_SLUG`
- `LICENSE_APP_NAME`
- `LICENSE_PRODUCT_NAME`
- `LICENSE_PRODUCT_VERSION`
So when you move `central_license_manager/` to another server later, you only need to point each app to the new base URL and set the right app slug/name.