Skip to content

Installation

This guide will walk you through installing both components of the License Management project. You can install them independently or together depending on your needs.

  • Operating System: Linux, Windows, or Unix
  • Rust: Version 1.88+ and Cargo
  • Python: Version 3.x (for command mode parsing scripts)
  • Git: For cloning the repository (if building from source)

License Server Detail (Next.js Application)

Section titled “License Server Detail (Next.js Application)”
  • Node.js: Version 18+
  • Package Manager: npm, yarn, or pnpm
  • Okta Account: For authentication setup
  • License Monitor: Access to license servers and OpenTelemetry endpoint
  • License Server Detail: Access to License Monitor API and Okta services
  • Firewall: Ensure appropriate ports are open (default: 8080 for License Monitor, 3000 for License Server Detail)
Section titled “Option 1: Pre-built Binaries (Recommended)”

Pre-built binaries are available for download from GitHub Releases for:

  • Linux: x86_64, aarch64
  • Windows: x86_64, aarch64
Terminal window
# Download the latest release (replace with actual version)
wget https://github.com/keithce/license_monitor/releases/latest/download/license_monitor-linux-x86_64.tar.gz
# Extract the archive
tar -xzf license_monitor-linux-x86_64.tar.gz
# Make executable
chmod +x license_monitor
# Move to system path (optional)
sudo mv license_monitor /usr/local/bin/
Terminal window
# Install Rust using rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Reload your shell
source ~/.cargo/env
# Verify installation
rustc --version
cargo --version
Terminal window
# Clone the repository
git clone https://github.com/keithce/license_monitor.git
cd license_monitor
# Build the project
cargo build --release
# The executable will be in target/release/license_monitor
Terminal window
# Test the installation
./target/release/license_monitor --help
Terminal window
# Using Node Version Manager (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
# Install and use Node.js 18+
nvm install 18
nvm use 18
Terminal window
# Clone the repository
git clone https://github.com/keithce/license-server-detail.git
cd license-server-detail
# Install dependencies (using pnpm - recommended)
npm install -g pnpm
pnpm install
# Or using npm
npm install
Terminal window
# Test the installation
pnpm dev
# or
npm run dev

The application should start on http://localhost:3000.

Create a basic configuration file:

Terminal window
# Create config directory
mkdir -p ~/.config/license_monitor
# Create basic config.toml
cat > ~/.config/license_monitor/config.toml << EOF
# Command mode configuration
[command_mode]
command = "lmstat -a"
interval_seconds = 300 # 5 minutes
# API server configuration
[api]
enabled = true
bind_address = "127.0.0.1"
bind_port = 8080
enable_websockets = true
# Daemon mode configuration
[daemon]
log_file = "logs/daemon.log"
log_level = "info"
EOF

Create environment configuration:

Terminal window
# Create .env.local file
cat > .env.local << EOF
# Public client variables
NEXT_PUBLIC_API_BASE_URL=http://localhost:8080
NEXT_PUBLIC_API_TIMEOUT_MS=10000
NEXT_PUBLIC_LOG_LEVEL=debug
# Server-side variables (replace with actual values)
LICENSE_MONITOR_API_KEY=your-license-monitor-api-key
LICENSE_MONITOR_BASE_URL=http://localhost:8080
AUTH_OKTA_ID=your-okta-client-id
AUTH_OKTA_SECRET=your-okta-client-secret
AUTH_OKTA_ISSUER=https://your-okta-domain.okta.com/oauth2/default
AUTH_SECRET=replace-with-strong-random-string
NEXTAUTH_URL=http://localhost:3000
EOF
Terminal window
# Start License Monitor in API mode
./license_monitor --mode api --api-host 0.0.0.0 --api-port 8080
# In another terminal, test the API
curl http://localhost:8080/api/health
Terminal window
# Start the development server
pnpm dev
# Open browser to http://localhost:3000
  • License Monitor binary is executable and responds to --help
  • License Monitor API starts successfully on port 8080
  • License Server Detail builds and starts on port 3000
  • Basic configuration files are created
  • Environment variables are set (for License Server Detail)
  • Network connectivity between components is working
  • Check permissions: Ensure the binary is executable
  • Check ports: Verify port 8080 is available
  • Check dependencies: Ensure Python 3.x is installed
  • Node.js version: Ensure you’re using Node.js 18+
  • Dependencies: Try clearing node_modules and reinstalling
  • Memory: Ensure sufficient memory for the build process
  • Network: Verify License Monitor is running and accessible
  • Configuration: Check API base URL configuration
  • Firewall: Ensure ports are open