GitLab License Generator This project generates a GitLab license for development purposes. If you encounter any problems, please troubleshoot them on your own.
Last tested on GitLab v17.6.0-ee.
Principles
src/generator.keys.rb
GitLab uses a public/private key pair to encrypt its license. The public key is shipped with the GitLab distribution, while the private key is kept secure. The license itself is simply a JSON dictionary. Since GitLab has made its code open-source, we can easily generate our own license.
src/generator.license.rb
The lib folder is extracted from GitLab’s source code. It is used to build and validate the license. The script src/generator.license.rb loads this functionality.
src/scan.features.rb
Removed with a script to generate empty json file due to DMCA takedown request.
Features are extracted from an object filled with constants. The most comprehensive plan for a license is Ultimate, but features like Geo Mirroring are not included in any standard plan. Therefore, we manually add these features.
Usage
Using Docker image (Zero setup)
Using this method license files are generated under ./license directory
Please note that in standard docker installations, owner of the files generated in license directory will be root
Before starting, ensure your environment is properly configured.
1. Install Ruby and gem
To run this project, you need Ruby and the gem package manager.
On Linux (Ubuntu/Debian):
sudo apt update
sudo apt install ruby-full
On macOS (via Homebrew):
brew install ruby
2. Install Bundler and necessary gems
After installing Ruby, you need to install Bundler to manage Ruby dependencies.
gem install bundler
3. Install the gitlab-license gem
The project requires the gitlab-license gem, which will be automatically downloaded and used by the script.
gem install gitlab-license
Steps to Generate the GitLab License
1. Clone the project repository
Clone this project to your local machine.
git clone https://github.com/Lakr233/GitLab-License-Generator.git
cd GitLab-License-Generator
2. Run the make.sh script
Once all the prerequisites are met, run the script:
./make.sh
The script will perform the following actions:
Download and extract the gitlab-license gem.
Copy and modify the required files.
Clone the GitLab source code from GitLab.com.
Generate a public/private key pair.
Generate a GitLab license.
3. Replace the public key in GitLab
The script generates a public key located in build/public.key. You need to replace GitLab’s existing public key with this newly generated one to ensure the license is accepted.
GitLab License Generator
English | Français | Russian
Description
GitLab License Generator This project generates a GitLab license for development purposes. If you encounter any problems, please troubleshoot them on your own.
Principles
src/generator.keys.rb
GitLab uses a public/private key pair to encrypt its license. The public key is shipped with the GitLab distribution, while the private key is kept secure. The license itself is simply a JSON dictionary. Since GitLab has made its code open-source, we can easily generate our own license.
src/generator.license.rb
The
lib
folder is extracted from GitLab’s source code. It is used to build and validate the license. The scriptsrc/generator.license.rb
loads this functionality.src/scan.features.rb
Removed with a script to generate empty json file due to DMCA takedown request.
Features are extracted from an object filled with constants. The most comprehensive plan for a license is Ultimate, but features like Geo Mirroring are not included in any standard plan. Therefore, we manually add these features.Usage
Using Docker image (Zero setup)
Using this method license files are generated under
./license
directoryMethod (1): Pull image
Method (2): Build image
Manual: Prerequisites
Before starting, ensure your environment is properly configured.
1. Install Ruby and gem
To run this project, you need Ruby and the gem package manager.
On Linux (Ubuntu/Debian):
On macOS (via Homebrew):
2. Install Bundler and necessary gems
After installing Ruby, you need to install Bundler to manage Ruby dependencies.
3. Install the
gitlab-license
gemThe project requires the
gitlab-license
gem, which will be automatically downloaded and used by the script.Steps to Generate the GitLab License
1. Clone the project repository
Clone this project to your local machine.
2. Run the
make.sh
scriptOnce all the prerequisites are met, run the script:
The script will perform the following actions:
gitlab-license
gem.3. Replace the public key in GitLab
The script generates a public key located in
build/public.key
. You need to replace GitLab’s existing public key with this newly generated one to ensure the license is accepted.If GitLab is installed on your server:
If GitLab is installed via Docker: Modify your
docker-compose.yml
file to mount the new public key inside the container:Then restart the container:
4. Install the license in GitLab
Once the public key is replaced, log in to GitLab’s admin interface to install the generated license.
build/result.gitlab-license
).If necessary, you can directly access the license upload page via:
5. Disable Service Ping (optional)
If you want to disable GitLab’s usage data collection (Service Ping), modify GitLab’s configuration file:
Open the configuration file:
Add the following line:
Reconfigure and restart GitLab:
Troubleshooting
LICENSE
This project is licensed under the WTFPL License.
Copyright (c) 2023, Tim Cook, All Rights Not Reserved.