Windows

This section provides a step-by-step guide to installing Babel Licensing Service on Windows 11

This section offers a comprehensive guide to installing Babel Licensing Service on a Windows 11 environment. By following these step-by-step instructions, you can effectively set up and configure the Babel Licensing Service on your Windows 11 system.

Prerequisites

To successfully install Babel Licensing Service on Windows 11, you will need to ensure that the following prerequisites are met.

  • Ensure that Windows 11 has been updated to the latest version

  • MariaDB v9.1 distrib 10.6 or later version or Microsoft SQL Server

  • .NET 7 ASP.NET runtime version 7 or the required version for Babel Licensing Service

  • Babel Licensing Service ZIP package (e.g., babel_service_net70_10.0.0.zip)

  • Babel Obfuscator Server or Data Center edition license file (babel.licenses)

  • If running the install script, PowerShell version 7 or greater is required

Install Script

The BabelLicensingService.ps1 PowerShell script is designed to automate the installation and configuration process of the Babel Licensing Service on Windows environments described in this paragraph.

This script ensures prerequisites such as administrative privileges, correct PowerShell version, and the MariaDB CLI command are met before initiating the installation process. It provides a user-friendly interface allowing users to Install and query the service status.

During the installation, it handles tasks like extracting the installation ZIP, copying the license file, creating the database, modifying the appsettings.json for accurate connection strings, and installing the service with the correct configurations, ensuring a seamless and error-free setup experience, minimizing the risk of manual configuration errors.

To use the BabelLicensingService.ps1 script, follow the steps below:

  1. Download the script from this link.

  2. Copy the downloaded script into a temporary folder.

  3. Place the Babel service zip archive (named babel_service_net70_x.y.z.zip, where x.y.z is the version) and the license file (babel.licenses) in the same temporary folder as the script.

When attempting to run the script, you may encounter the following error:

The file C:\Projects\BabelSvc\BabelLicensingService.ps1 is not digitally signed. You cannot run this script on the current system.

To resolve this, you can modify the execution policy to a less restrictive one, allowing the script to run, by executing the following command:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

However, please be aware that setting the execution policy to Unrestricted can expose the system to potential security risks, so it is crucial to only run scripts from trusted sources and consider resetting the policy to a more secure setting once you have finished running your script.

Once the above steps are completed, run the BabelLicensingService.ps1 script from the temporary folder to start the installation process.

If you prefer not to use the BabelLicensingService.ps1 script, you can continue reading for step-by-step instructions on how to manually set up the service.

Setup Files

Setting up the Babel Licensing Service requires extracting the necessary service assemblies and configurations from the provided ZIP file, babel_service_net70_10.0.0.zip, to the appropriate directory on your Windows machine. Below are the step-by-step instructions to extract the ZIP file using Windows Explorer to the C:\BabelSvc directory.

Navigate to the location where babel_service_net70_10.0.0.zip is saved on your computer using Windows Explorer.

  • Right-click on the babel_service_net70_10.0.0.zip file.

  • Select Extract All... from the context menu.

  • In the ‘Extract Compressed (Zipped) Folders’ dialog box that appears, enter the path C:\BabelSvc directory as the destination to extract the files.

  • Click Extract.

By following these instructions, you will have successfully extracted all the necessary files for the Babel Licensing Service from the babel_service_net70_10.0.0.zip file to the C:\BabelSvc directory using Windows Explorer.

License File

Copy the license file babel.licenses, into the extract folder. This step ensures that the service can access the required licensing information.

Creating Database

When setting up the Babel Licensing Service, creating a dedicated database is a crucial step. HeidiSQL, a powerful and easy-to-use open-source database management tool, can be used in conjunction with MariaDB to facilitate this process. Below are the step-by-step instructions to create a database using HeidiSQL and MariaDB.

Start by launching HeidiSQL and switch to the SQL tab to run the following SQL commands:

CREATE DATABASE licenses;
CREATE USER babel@localhost IDENTIFIED BY 'YourUniquePassword';
GRANT ALL PRIVILEGES ON licenses.* TO babel@localhost;
FLUSH PRIVILEGES;

After executing the above steps, verify that the licenses database has been created successfully and that the babel user has the correct privileges assigned. You can do this by logging in with the babel user credentials and trying to access the licenses database.

Configuring Babel Licensing Service

Configuring the Babel Licensing Service is a crucial step to ensure its proper functionality and integration with your environment. This involves modifying the appsettings.json file located in the extracted folder and adjusting various settings to match your specific requirements.

Editing appsettings.json

To start, navigate to the extracted folder and locate the appsettings.json file. Open this file with your preferred text editor and proceed to modify the following configurations:

"Database": {
  "Provider": "MySQL"
},
"ConnectionStrings": {
  "SQLServer": "",
  "MySQL": "Server=127.0.0.1;User=babel;Password=YourUniquePassword;Database=licenses",
  "SQLite": ""
},

Here, ensure that the Provider under Database is set to MySQL, and the MySQL connection string is correctly configured with the appropriate server address, user, password, and database name. Replace YourUniquePassword with the actual password you've set for the babel user in MariaDB.

Configuring Kestrel

In the EndpointDefaults section, the Protocols is set to Http1AndHttp2, allowing the server to communicate using both HTTP1 and HTTP2 protocols, providing flexibility and compatibility with different types of clients.

"Kestrel": {
  "EndpointDefaults": {
    "Protocols": "Http1AndHttp2"
  },
  "Endpoints": {
    "gRPC": {
      "Url": "http://*:5005",
      "Protocols": "Http2"
    }
  }
},

The Endpoints section is where you define specific endpoints for the service. Here, an endpoint named gRPC is configured with the Url set to http://*:5005, allowing the service to listen on all available network interfaces on port 5005. The Protocols for this endpoint is specifically set to Http2, optimizing it for gRPC communication.

When configuring Kestrel, ensure that the specified URLs and protocols align with your service requirements and network environment, and adjust them as necessary to achieve the desired behavior and performance of your service.

Configuring Serilog

Further, configure the Serilog section to set up logging preferences:

"Serilog": {
  "Using": ["Serilog.Sinks.Console", "Serilog.Sinks.File"],
  "MinimumLevel": {
    "Default": "Information",
    "Override": {
      "Microsoft": "Warning",
      "System": "Warning",
      "Grpc": "Warning"
    }
  },
  "Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
  "WriteTo": [
    {"Name": "Console"},
    {
      "Name": "File",
      "Args": {
        "path": "C:\\BabelSvc\\log.txt",
        "rollingInterval": "Day"
      }
    }
  ]
},

In this section, specify the full path to the log file, especially when running Babel Licensing Service as a Windows Service, to avoid any logging issues. For instance, "path": "C:\\BabelSvc\\log.txt" sets the log file to be stored in the C:\BabelSvc directory.

Application Settings

Lastly, under the Application section, specify the LicenseFile, SigningKey, and TokenExpiration values:

"Application": {
  "LicenseFile": "babel.licenses",
  "SigningKey": "Secret Token Key",
  "TokenExpiration": "00:30:00"
},

Here, LicenseFile should be set to babel.licenses. Customize the SigningKey by replacing Secret Token Key with your unique key, which will secure the communication between application clients and the Babel Licensing Service. Adjust the TokenExpiration value according to your requirements to set the token's validity duration.

Start Babel Licensing Service

To start the Babel Licensing Service using PowerShell, first, open PowerShell from the Start menu. Navigate to the directory where Babel.Licensing.Service.exe is located using the cd command, typically:

cd C:\BabelSvc

Once in the correct directory, run the executable with the following command:

.\Babel.Licensing.Service.exe

After executing, monitor the output messages to ensure the service starts and operates without errors, referring to the service documentation for any troubleshooting needs.

When starting the service, a Windows Firewall popup may appear, requesting permission for the service to communicate over the network. It is crucial to allow this by choosing the 'Allow access' option, enabling the service to interact with other networked systems and the internet, ensuring its proper functionality and availability.

Running as a Windows Service

To ensure Babel Licensing Service operates efficiently in the background and is available upon system startups, it is recommended to run it as a Windows service. Running as a service allows Babel Licensing Service to operate independently of user sessions, offering uninterrupted service availability and functionality.

To accomplish this, you can use PowerShell’s New-Service command, which is designed to create a new entry for a Windows service in the registry and the service database. Below is the adapted command using New-Service in PowerShell:

New-Service -Name "Babel.Licensing" -BinaryPathName "C:\BabelSvc\Babel.Licensing.Service.exe" -DisplayName "Babel Licensing" -StartupType "Automatic" -Description "Babel licensing and reporting network services."

In this command:

  • -Name "Babel.Licensing" specifies the name of the service.

  • -BinaryPathName ".\Babel.Licensing.Service.exe" defines the path to the service's executable file, indicating the current directory.

  • -DisplayName "Babel Licensing" assigns a display name to the service, which is how it will appear in the Services application or other user interfaces.

  • -StartupType "Automatic" configures the service to start automatically with the system.

  • -Description "Babel licensing and reporting network services." provides a description, offering insights into the service's role and functionality.

This command should be run in a PowerShell session with administrative privileges to ensure the proper creation and configuration of the service. After executing the command, the Babel Licensing Service will be set up as a Windows service, ready to offer continuous operation and availability on the system.

Start the Service

Start-Service -Name "Babel.Licensing"

Stop the Service

Stop-Service -Name "Babel.Licensing"

Get Service Status

Get-Service -Name "Babel.Licensing" 

Uninstall the Service

Get-Service -Name "Babel.Licensing" | Remove-Service

Remember to run these commands in a PowerShell session with administrative privileges to ensure they execute correctly.

Last updated