# License Manager

Latest Release Downloads License: GPL-3.0 Open Issues Open PRs

[δΈ­ζ–‡](README.md) | [English](README_EN.md) --- ## Overview License Manager is a comprehensive software commercialization solution that integrates software licensing management, self-service user portals, and commercial operation capabilities. It supports dual-track operations for both B2B enterprise customers and B2C individual users, providing full-process digital services from registration and purchase to license activation. It employs a hybrid online/offline licensing model combined with hardware binding and RSA digital signatures to ensure security. ✨It enables **any programming language** and **any type of software product** to **quickly integrate licensing capabilities** via standardized **HTTP APIs** and **cross-platform client SDKs**. ## Demo Environment Live Demo Access URL: [lm.cedar-v.com:18080](http://lm.cedar-v.com:18080) **Login Credentials:** - Username: `admin` - Password: `admin@123` > πŸ’‘ This is a demo environment showcasing our current features. You can experience the implemented core functionalities while we continue active development with more features coming soon. ## Stars & Followers GitHub Stars GitHub Watchers If this project helps you, please give it a starβ€”your support keeps us moving! ## Client SDK Client SDK repository: [https://github.com/cedar-v/license-manager-sdk](https://github.com/cedar-v/license-manage-sdk-go) ## System Interface ### Login Page ![Login Page](docs/images/login.png) ### Management Dashboard ![Dashboard](docs/images/home.png) ### Customer Management ![Customer Management Page](docs/images/customer.png) ### License Management ![License Management Page](docs/images/license.png) The customer management module provides comprehensive customer information management features, including CRUD operations for customer data, status management, and authorization associations. ## Self-Service User Portal The platform provides comprehensive self-service user portals supporting **dual-track operations for B2B+B2C**: ### B2B Enterprise Customer Services - **Enterprise User Registration**: Mobile phone registration with enterprise admin managing member accounts - **Product Package Purchase**: Three package types (Trial, Basic, Professional) with bulk license purchasing - **License Code Management**: Online license purchase with offline activation and license sharing - **Device Management**: Enterprise users can view and manage all activated devices with device unbinding - **Order Management**: Complete order history queries and status tracking ### B2C Individual Customer Services - **Individual User Registration**: Quick mobile phone registration with simplified personal account management - **Flexible Purchasing**: Support for single or small quantity license purchases meeting individual user needs - **Convenient Activation**: Support for both online activation and offline activation modes - **Device Monitoring**: Individual users can monitor device status and usage in real-time ### Unified Payment Experience - **Alipay Integration**: Support for Alipay QR code payment with secure and reliable payment experience - **Payment Status Tracking**: Real-time payment status queries and callback notifications - **Multi-environment Support**: Sandbox environment testing and production environment switching ## Key Features - πŸ”§ **Customer Management**: Complete customer information management with status control - πŸ” **License Generation**: Online/offline license modes with hardware fingerprinting - πŸ“Š **License Management**: Real-time status monitoring and license lifecycle management - πŸ“¦ **Deployment Packages**: Automatic generation of deployment packages with configurations - 🌐 **API Services**: RESTful APIs for validation, activation, and heartbeat monitoring - βš™οΈ **System Management**: Admin authentication and monitoring dashboard - πŸ› οΈ **Cross-platform Tools**: Hardware information extraction tools for multiple platforms - πŸ‘₯ **Self-Service User Portal**: Dual-track B2B+B2C operations supporting enterprise customers and individual users with self-service operations ## Technical Stack - **Frontend**: Vue.js 3+ with modern UI components - **Backend**: Go 1.23+ with Gin framework, GORM, Viper configuration and Logrus logging - **Database**: MySQL 8+ - **Configuration**: YAML format configuration files - **Deployment**: Docker, single machine, or system service ## API Endpoints ``` POST /api/validate - License validation POST /api/activate - License activation POST /api/heartbeat - Heartbeat reporting GET /api/license/{code} - License information query GET /api/customers - Customer list API GET /tools/{tool} - Tool download ``` ## Security & Performance - **Security Features**: - JWT authentication and authorization - HMAC-SHA256 signature verification - Hardware fingerprint binding for anti-piracy - HTTPS transport encryption - Multi-language error message support (Chinese/English/Japanese) - **Performance**: - **High Concurrency**: Go native goroutines support, theoretically supports 10,000+ concurrent connections - **Low Latency**: Average API response time < 50ms - **Memory Optimized**: Go GC optimization, memory usage < 100MB - **Database Connection Pool**: Connection reuse for maximum database performance - **Reliability**: - Comprehensive error handling with multi-language error messages - Structured logging and monitoring - Automatic database migrations - Graceful shutdown and resource cleanup ## Installation ```bash # Clone the repository git clone https://github.com/cedar-v/license-manager.git cd license-manager # Local backend build & run (optional) cd backend/cmd go build -o license-manager # Configuration (choose one) # 1) Create config.yaml in the working directory (the app looks here first) # cp ../configs/config.example.yaml ./config.yaml && edit it # 2) Edit ../configs/config.yaml (the app will fall back to this path) ./license-manager ``` ## Docker Deployment ### Using Pre-built Images (Recommended) For quick deployment without downloading source code, you can use pre-built GitHub Container Registry images: For detailed deployment steps, please refer to: [GitHub Images Deployment Guide](docs/github-images-deploy.md) ### Build from Source We provide ready-to-use Docker Compose files for development and production: ```bash # Development (first run with --build is recommended) docker compose up -d --build # Production docker compose -f docker-compose.prod.yml up -d # Verify backend health curl http://localhost:18888/health ``` Notes - Backend config is mounted by Compose: - Dev: `backend/configs/config.dev.yaml` β†’ `/app/backend/cmd/config.yaml` - Prod: `backend/configs/config.prod.yaml` β†’ `/app/backend/cmd/config.yaml` - Frontend Nginx proxies `/api/` to `backend:18888` inside the Docker network. - Health checks use `curl`; the backend image includes `curl`. - For full details (reverse proxy, health checks, mounts, troubleshooting), see `README-Docker.md`. ## Open Source License This project is licensed under the **GNU General Public License v3.0 (GPL-3.0)**. ### License Description - **Free Use**: You are free to use, study, modify, and distribute this software - **Open Source Requirement**: If you distribute modified versions, they must also be open source under GPL-3.0 license - **Copyright Protection**: Derivative works using this software must retain the original copyright notice - **No Warranty**: The software is provided "as is" without any express or implied warranty ### Commercial Use - Commercial use is permitted, but derivative works must also be open source - For proprietary licensing or commercial support, please contact the project maintainers ### Full License Text For detailed license terms, please see the [LICENSE](LICENSE) file in the project root directory, or visit: https://www.gnu.org/licenses/gpl-3.0.html --- ## Contributing We welcome contributions! Please feel free to submit a Pull Request. ## Support ### User Feedback & Community We highly value user feedback and suggestions! Join our QQ group for discussions and communication: QQ Group QR Code Scan the QR code or search for the QQ group number to join and connect with other users and developers to: - Share usage experiences and best practices - Ask questions and get help - Participate in new feature discussions - Provide feedback and improvement suggestions ### Issue Reporting For technical issues or bug reports, please contact us through: - Submit GitHub Issues (recommended) - Provide feedback in the QQ group - Send email to project maintainers