License Mate
is an open-source software license manager that you can deploy easily in a variety of environments and customize to your own needs. This is made using Flask
for REST API
server, React.js
for the server UI and MongoDB
for the database.
License Mate
is a tool or system designed to help organizations and individuals manage the distribution, tracking, and compliance of software licenses. It serves as a central hub for controlling how software licenses are allocated, monitored, and maintained for a software. Here's a breakdown of its key functions:
- License Creation and Allocation
- License Tracking
- License Validation
- License Renewal
- License Deactivation and Removal
Companies and individuals who develop and distribute software products can use License Mate
to control access and distribution of their software.
This method is preferred as MongoDB Atlas
has data redundancy built-in.
- Create the following
docker compose
on your server and name itcompose.yml
.
name: license-mate
services:
backend:
image: yjpictures/license-mate:1.1
container_name: backend
ports:
- 80:80
environment:
MONGODB_URI: mongodb+srv://<username>:<password>@<yourcluster>.mongodb.net/
ADMIN_PWD: <admin_password>
MANAGER_PWD: <manager_password>
CLIENT_PWD: <client_password>
REQUIRED_CREATE: name, email, company, product, machine-node, machine-sn
UNIQUE_VALIDATE: email, machine-node, machine-sn
-
Create a
MongoDB Atlas
project/cluster and add the IP address(es) of the server intoMongoDB
(project -> security -> network access) for whitelisting (could also allow access from anywhere but its not recommended). -
Customize the environment variables based on your needs,
MONGODB_URI
is a connection string that can be obtained from yourMongoDB
project. -
Run
docker compose up
in your server to pull the image and run it into a container.
Simple as that! License Mate server should now be running on your port 80
.
- Create the following
docker compose
on your server and name itcompose.yml
.
name: license-mate
services:
backend:
image: yjpictures/license-mate:1.1
container_name: backend
ports:
- 80:80
environment:
ADMIN_PWD: <admin_password>
MANAGER_PWD: <manager_password>
CLIENT_PWD: <client_password>
REQUIRED_CREATE: name, email, company, product, machine-node, machine-sn
UNIQUE_VALIDATE: email, machine-node, machine-sn
networks:
- backend-network
depends_on:
- database
database:
image: mongo:6.0
container_name: database
environment:
MONGODB_DATA_DIR: /data/db
MONDODB_LOG_DIR: /dev/null
volumes:
- licenseDB:/data/db
networks:
- backend-network
volumes:
licenseDB:
name: licenseDB
driver: local
networks:
backend-network:
name: license-mate
driver: bridge
-
Customize the environment variables based on your needs.
-
Run
docker compose up
in your server to pull the image and run it into a container.
Simple as that! License Mate server should now be running on your port 80
.
Coming soon! You would soon be able to install everything through an installer file.
The interactive documentation for all the REST API calls can be seen if you open the server URL on a browser. You will be able to see all the different requests you can send including the required parameters, JSON payload schema and expected output. You can even test out the requests right through the browser window.
License Mate
uses HTTP Basic Auth
for authentication purposes.
Route /ui
after the server URL will allow users to open Admin section, where admins can manage the licenses through the web browser.
Depending on the size and scale, we can host, manage and customize License Mate to suit your needs so you can focus on the client side of things.