MCPcopy Index your code
hub / github.com/cedar-v/license-manager

github.com/cedar-v/license-manager @v1.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.0 ↗ · + Follow
1,025 symbols 2,173 edges 99 files 593 documented · 58% updated 3mo agov1.1.0 · 2026-01-17★ 1295 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

License Manager

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

中文 | English


Overview

License Manager is an independent software licensing platform that provides license code generation, distribution, validation, and management services for IoT platforms and other software systems. It offers both online and offline licensing modes with hardware-based binding for enhanced 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
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

System Interface

Login Page

Login Page

Management Dashboard

Dashboard

Customer Management

Customer Management Page

License Management

License Management Page

The customer management module provides comprehensive customer information management features, including CRUD operations for customer data, status management, and authorization associations.

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

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

# 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

Build from Source

We provide ready-to-use Docker Compose files for development and production:

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

Extension points exported contracts — how you extend this code

Cache (Interface)
Cache 缓存接口 [3 implementers]
backend/pkg/cache/cache.go
EnumService (Interface)
EnumService 枚举服务接口 [3 implementers]
backend/internal/service/interfaces.go
NavItem (Interface)
(no doc)
frontend/src/components/common/layout/index.ts
SMSService (Interface)
SMSService 短信服务接口 [2 implementers]
backend/pkg/utils/sms.go
CustomerService (Interface)
CustomerService 客户服务接口 [2 implementers]
backend/internal/service/interfaces.go
BreadcrumbItem (Interface)
(no doc)
frontend/src/components/common/layout/index.ts
Serializer (Interface)
Serializer 序列化接口 [1 implementers]
backend/pkg/cache/cache.go
DashboardService (Interface)
DashboardService 仪表盘服务接口 [2 implementers]
backend/internal/service/interfaces.go

Core symbols most depended-on inside this repo

Error
called by 179
backend/pkg/i18n/errors.go
Format
called by 135
backend/pkg/logger/logger.go
getCurrentTimestamp
called by 95
backend/internal/api/handlers/auth_handler.go
GetErrorMessage
called by 44
backend/pkg/i18n/manager.go
Set
called by 31
backend/pkg/cache/cache.go
Marshal
called by 27
backend/pkg/cache/cache.go
GetEnumMessage
called by 27
backend/pkg/i18n/manager.go
Get
called by 23
backend/pkg/cache/cache.go

Shape

Method 520
Function 250
Struct 188
Interface 62
Class 2
TypeAlias 2
Enum 1

Languages

Go88%
TypeScript12%

Modules by API surface

backend/internal/repository/interfaces.go56 symbols
backend/internal/service/interfaces.go44 symbols
backend/internal/service/cu_user_service.go39 symbols
frontend/src/api/license.ts34 symbols
backend/pkg/utils/sms.go33 symbols
backend/pkg/i18n/manager.go32 symbols
backend/internal/repository/cu_user_repository.go29 symbols
backend/internal/models/auth.go27 symbols
backend/pkg/cache/cache.go26 symbols
backend/pkg/cache/factory.go23 symbols
backend/internal/service/cu_order_service.go22 symbols
backend/internal/repository/cu_order_repository.go21 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add license-manager \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page