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.
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.
If this project helps you, please give it a star—your support keeps us moving!
Client SDK repository: https://github.com/cedar-v/license-manager-sdk




The customer management module provides comprehensive customer information management features, including CRUD operations for customer data, status management, and authorization associations.
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
Multi-language error message support (Chinese/English/Japanese)
Performance:
Database Connection Pool: Connection reuse for maximum database performance
Reliability:
# 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
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
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.
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
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
We welcome contributions! Please feel free to submit a Pull Request.
We highly value user feedback and suggestions! Join our QQ group for discussions and communication:

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
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
$ claude mcp add license-manager \
-- python -m otcore.mcp_server <graph>