154 lines
6.7 KiB
Markdown
154 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, Тим Кук, Все права не защищены.
|