Git Product home page Git Product logo

mallen7 / license-mate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yjpictures/license-mate

0.0 0.0 0.0 1.02 MB

Software License Manager: Docker deployable Flask REST API server with MongoDB database, simplifying software license management for easy integration and efficient tracking

Home Page: https://www.licensemate.ca

License: GNU General Public License v3.0

JavaScript 48.92% Python 34.92% HTML 7.55% Dockerfile 8.61%

license-mate's Introduction

๐ŸŒ๐Ÿ”— licensemate.ca

Version License GitHub Docker Pulls X (formerly Twitter) LinkedIn Reddit

What is this?

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:

  1. License Creation and Allocation
  2. License Tracking
  3. License Validation
  4. License Renewal
  5. License Deactivation and Removal

Who is this for?

Companies and individuals who develop and distribute software products can use License Mate to control access and distribution of their software.

How to deploy this license manager?

Method 1: Self-hosted server and Cloud MongoDB (preferred)

This method is preferred as MongoDB Atlas has data redundancy built-in.

  1. Create the following docker compose on your server and name it compose.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
  1. Create a MongoDB Atlas project/cluster and add the IP address(es) of the server into MongoDB (project -> security -> network access) for whitelisting (could also allow access from anywhere but its not recommended).

  2. Customize the environment variables based on your needs, MONGODB_URI is a connection string that can be obtained from your MongoDB project.

  3. 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.

Method 2: Self-hosted server and MongoDB

  1. Create the following docker compose on your server and name it compose.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
  1. Customize the environment variables based on your needs.

  2. 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.

Method 3: Installer files (coming soon)

Coming soon! You would soon be able to install everything through an installer file.

What about client side and documentation for API?

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.

Want us to take care of hosting your license manager?

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.

Contact us for more information!

license-mate's People

Contributors

yjpictures avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.