{"id":20208177,"url":"https://github.com/cubiclesoft/php-license-server","last_synced_at":"2025-04-10T12:54:41.124Z","repository":{"id":43172585,"uuid":"247289480","full_name":"cubiclesoft/php-license-server","owner":"cubiclesoft","description":"A high-performance license server system service for creating and managing products, major versions, and software licenses for the purpose of selling installable software products.","archived":false,"fork":false,"pushed_at":"2023-02-04T18:00:24.000Z","size":730,"stargazers_count":56,"open_issues_count":0,"forks_count":21,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T11:44:22.233Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cubiclesoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/cli.php","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-14T14:14:57.000Z","updated_at":"2025-02-06T06:34:03.000Z","dependencies_parsed_at":"2024-11-14T05:34:31.219Z","dependency_job_id":"0f14e5ac-41a6-4493-8778-838dde7549c0","html_url":"https://github.com/cubiclesoft/php-license-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fphp-license-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fphp-license-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fphp-license-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fphp-license-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cubiclesoft","download_url":"https://codeload.github.com/cubiclesoft/php-license-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248221525,"owners_count":21067571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T05:34:25.678Z","updated_at":"2025-04-10T12:54:41.108Z","avatar_url":"https://github.com/cubiclesoft.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"PHP-based Software License Server\n=================================\n\nA high-performance license server system service for creating and managing products, major versions, and software licenses for the purpose of selling installable software products.  Comes with a SDK and command-line tool.  Works anywhere that PHP runs.\n\nFor when you need a robust license server but want to just get back to writing software.\n\n[![CubicleSoft Software License Server Overview/Intro video](https://user-images.githubusercontent.com/1432111/77229703-99c91480-6b4c-11ea-96fb-16b477486a67.png)](https://www.youtube.com/watch?v=WtVs9I0bxnU \"CubicleSoft Software License Server Overview/Intro\")\n\nSee it in action:\n\n* [License Server Demo/Test Site](https://license-server-demo.cubiclesoft.com/)\n* [File Tracker](https://file-tracker.cubiclesoft.com/)\n\n[![Donate](https://cubiclesoft.com/res/donate-shield.png)](https://cubiclesoft.com/donate/) [![Discord](https://img.shields.io/discord/777282089980526602?label=chat\u0026logo=discord)](https://cubiclesoft.com/product-support/github/)\n\nFeatures\n--------\n\n* Generate unique [encrypted serial numbers](https://cubicspot.blogspot.com/2020/03/adventuring-deeply-into-software-serial.html) on a per-major version basis.  Each encrypted serial number contains:  Date created or date the license expires, product ID, product classification, major and minor version numbers, per-application custom bits (e.g. a hardware hash, digital/physical copy, purchase avenue, single/multi-user license), and per-user hash checksum bits.\n* Quickly and easily manage products (up to 1,024), major versions (up to 256 per product), product classes (up to 16 per major version - e.g. Standard, Pro, Enterprise), and software licenses (unlimited).\n* Supports per-license activation limits, download limits, and revoking the occasional rogue license.\n* Supports various common customizations (e.g. storing an external order number alongside each license, setting the character encoding scheme for each major version's serials, etc).\n* Can generate complex order numbers designed to keep business finances private while still supporting account reconciliation of transactions (e.g. SEC GAAP compliance).\n* Optional history logging for all license actions.\n* Has a PHP SDK for communicating directly with the service.\n* Also comes with a complete, question/answer enabled command-line interface.  Nothing to compile.  Cross platform.\n* Has a liberal open source license.  MIT or LGPL, your choice.\n* Designed for relatively painless integration into your project.\n* Sits on GitHub for all of that pull request and issue tracker goodness to easily submit changes and ideas respectively.\n\nGetting Started\n---------------\n\nPlace the contents of this repository in a secure location on a host.  Note that for performance reasons there is no security for the license server.  However, it only starts as a localhost-only server on port 24276, which means someone has to gain access to the host to make changes directly.\n\nTo start the server, simply run:\n\n```\nphp server.php\n```\n\nIn a separate window/terminal, run:\n\n```\nphp tools.php\n```\n\nWhich utilizes the PHP SDK to provide a guided command-line interface for setting up products, versions, and managing licenses.\n\nThe PHP SDK is located at `support/sdk_license_server.php` and is standalone (i.e. you can copy just that file to your application and it'll work fine).  Be sure to check out the [SDK documentation](https://github.com/cubiclesoft/php-license-server/blob/master/docs/sdk_license_server.md).  Use the PHP SDK to provide the interface between a web server running PHP and the license server to do things such as creating a license after completing a purchase, retrieving the list of licenses that the user owns, and activating/deactivating licenses when the software is installed/uninstalled.  Example usage of the SDK can be found in `tools.php`.\n\nTo install the server so that it runs at boot, first stop any running instances and then run the following as root/Administrator:\n\n```\nphp server.php install\n```\n\nThen start the `php-license-server` system service using standard OS tools.\n\nPerformance\n-----------\n\nFor additional performance, [install the PECL libev extension](https://pecl.php.net/package/ev) via `pecl install ev` and [raise the system ulimit](https://stackoverflow.com/questions/34588/how-do-i-change-the-number-of-open-files-limit-in-linux) to support thousands of simultaneous connections.  Since connections are generally short-lived, performance gains will only be noticeable under heavy system load.  Also, the PECL libev extension itself does not function properly on Windows and is therefore ignored by this software.\n\nThe included `concurrency_test.php` is a basic benchmarking script.  In concurrency testing, the script verified over 6,150 serial numbers per second (verification only) and a separate run of the script activated over 4,275 serial numbers per second (activation only) on an Intel 6th Gen Core i7 running Windows 10 Pro (64-bit).  The underlying serial number verification class can validate up to 27,000 serials numbers per second in a single thread on the same hardware.\n\nWhile the `concurrency_test.php` script can be run standalone, it is designed to be run with [CubicleSoft PHP concurrency tester](https://github.com/cubiclesoft/php-concurrency-tester/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubiclesoft%2Fphp-license-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcubiclesoft%2Fphp-license-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubiclesoft%2Fphp-license-server/lists"}