# Генератор лицензий GitLab

English

## Описание **GitLab License Generator** Этот проект генерирует лицензию GitLab для **целей разработки**. Если у вас возникнут какие-либо проблемы, пожалуйста, устраните их самостоятельно. > [Последнее тестирование](../README.md). ## Принципы ### **src/generator.keys.rb** GitLab использует пару открытого/закрытого ключа для шифрования своей лицензии. Открытый ключ поставляется с дистрибутивом GitLab, а закрытый ключ хранится в безопасности. Сама лицензия представляет собой просто словарь JSON. Поскольку GitLab сделал свой код открытым, мы можем легко сгенерировать собственную лицензию. ### **src/generator.license.rb** Папка `lib` извлекается из исходного кода GitLab. Она используется для сборки и проверки лицензии. Скрипт `src/generator.license.rb` загружает эту функциональность. ### **src/scan.features.rb** Функции извлекаются из объекта, заполненного константами. Самый полный план лицензии — **Ultimate**, но такие функции, как Geo Mirroring, не включены ни в один стандартный план. Поэтому мы вручную добавляем эти функции. ## Использование ### Предпосылки Перед началом убедитесь, что ваша среда правильно настроена. #### 1. Установите Ruby и gem Для запуска этого проекта вам понадобится **Ruby** и менеджер пакетов **gem**. - **В Linux (Ubuntu/Debian)**: ```bash sudo apt update sudo apt install ruby-full ``` - **На macOS** (через Homebrew): ```bash brew install ruby ``` #### 2. Установите Bundler и необходимые gems После установки Ruby вам необходимо установить **Bundler** для управления зависимостями Ruby. ```bash gem install bundler ``` #### 3. Установите gem `gitlab-license` Для проекта требуется gem `gitlab-license`, который будет автоматически загружен и использован скриптом. ```bash gem install gitlab-license ``` ### Шаги по созданию лицензии GitLab #### 1. Клонируйте репозиторий проекта Скопируйте этот проект на свой локальный компьютер. ```bash git clone https://github.com/Lakr233/GitLab-License-Generator.git cd GitLab-License-Generator ``` #### 2. Запустите скрипт `make.sh` После выполнения всех предварительных условий запустите скрипт: ```bash ./make.sh ``` Скрипт выполнит следующие действия: - Загрузит и распакует gem-файл `gitlab-license`. - Скопирует и изменит необходимые файлы. - Клонирует исходный код GitLab с GitLab.com. - Сгенерирует пару открытого и закрытого ключей. - Создаст лицензию GitLab. #### 3. Замена открытого ключа в GitLab Скрипт генерирует открытый ключ, расположенный в `build/public.key`. Вам необходимо заменить существующий открытый ключ GitLab на этот недавно сгенерированный, чтобы убедиться, что лицензия принята. - **Если на вашем сервере установлен GitLab**: ```bash sudo cp ./build/public.key /opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub sudo gitlab-ctl reconfigure sudo gitlab-ctl restart ``` - **Если GitLab установлен через Docker**: Измените файл `docker-compose.yml`, чтобы смонтировать новый открытый ключ внутрь контейнера: ```yaml volumes: - "./build/public.key:/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub" ``` Затем перезапустите контейнер: ```bash docker-compose down docker-compose up -d ``` #### 4. Установите лицензию в GitLab После замены открытого ключа войдите в интерфейс администратора GitLab, чтобы установить сгенерированную лицензию. 1. Войдите в GitLab как администратор. 2. Перейдите в **Admin Area** из верхнего правого угла. 3. Перейдите в **Settings > General** и загрузите сгенерированный файл лицензии (`build/result.gitlab-license`). 4. Установите флажок **Terms of Service** и нажмите **Add License**. При необходимости вы можете напрямую перейти на страницу загрузки лицензии через: ``` /admin/license/new ``` #### 5. Отключить Service Ping (необязательно) Если вы хотите отключить сбор данных об использовании GitLab (Service Ping), измените файл конфигурации GitLab: - Откройте файл конфигурации: ```bash sudo nano /etc/gitlab/gitlab.rb ``` - Добавьте следующую строку: ```bash gitlab_rails['usage_ping_enabled'] = false ``` - Перенастройте и перезапустите GitLab: ```bash sudo gitlab-ctl reconfigure sudo gitlab-ctl restart ``` ### Поиск неисправностей - **Ошибка HTTP 502**: Если вы столкнулись с этой ошибкой, дождитесь завершения запуска GitLab (это может занять некоторое время). ## ЛИЦЕНЗИЯ Данный проект лицензирован по **WTFPL License**. Авторские права (c) 2023, Тим Кук, Все права не защищены.