155 lines
6.7 KiB
Markdown
155 lines
6.7 KiB
Markdown
![]() |
<div align="center">
|
|||
|
|
|||
|
# Генератор лицензий GitLab
|
|||
|
|
|||
|
<p align="center">
|
|||
|
<a href="../README.md">English</a>
|
|||
|
</p>
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
## Описание
|
|||
|
|
|||
|
**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**.
|
|||
|
|
|||
|
При необходимости вы можете напрямую перейти на страницу загрузки лицензии через:
|
|||
|
```
|
|||
|
<YourGitLabURL>/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, Тим Кук, Все права не защищены.
|