如果您从极狐GitLab 收到了一个许可证文件(例如,试用版),您可以将其上传到您的实例或在安装过程中添加。许可证文件是一个 base64 编码的 ASCII 文本文件,扩展名为 GitLab.gitlab-license

首次登录极狐GitLab 实例时,应该会显示一个包含 添加许可证 页面链接的提示。

或者,在 管理员 区域添加您的许可证。

在管理员区域添加许可证

  1. 管理员 身份登录极狐 GitLab。
  2. 在左侧边栏底部选择 管理员
  3. 选择 设置 > 常规
  4. 添加许可证 区域,通过上传文件或输入密钥来添加许可证。
  5. 选择 服务条款 复选框。
  6. 选择 添加许可证

在安装期间添加许可证文件

如果您有许可证,也可以在安装极狐 GitLab 时导入它。

  • 对于自编译安装:
    • GitLab.gitlab-license 文件放置在 config/ 目录中。
    • 要指定许可证的自定义位置和文件名,请使用文件路径设置 GITLAB_LICENSE_FILE 环境变量:

      export GITLAB_LICENSE_FILE="/path/to/license/file"
      
  • 对于 Linux 软件包安装:
    • Gitlab.gitlab-license 文件放置在 /etc/gitlab/ 目录中。
    • 要指定许可证的自定义位置和文件名,请将此条目添加到 gitlab.rb

      gitlab_rails['initial_license_file'] = "/path/to/license/file"
      
  • 对于 Helm Charts 安装,请使用 the global.gitlab.license configuration keys.

{{< alert type=”warning” >}}

这些方法仅在安装时添加许可证。要续订或升级许可证,请在网页用户界面的 管理员 区域添加许可证。

{{< /alert >}}

许可证到期后会发生什么

在许可证到期前十五天,极狐GitLab 管理员会看到一个通知横幅,显示即将到来的到期日期。

许可证在到期日期开始时过期,即服务器时间 00:00。

当您的许可证到期时,极狐GitLab 会锁定功能,如 Git 推送和议题创建。您的实例变为只读,并显示到期消息给所有管理员。在这种情况发生之前,您有 14 天的宽限期。

例如,如果许可证的开始日期是 2024 年 1 月 1 日,结束日期是 2025 年 1 月 1 日:

  • 它在 2024 年 12 月 31 日 11:59:59 PM 服务器时间过期。
  • 从 2025 年 1 月 1 日 12:00:00 AM 服务器时间起被视为过期。
  • 宽限期从 2025 年 1 月 1 日 12:00:00 AM 服务器时间开始,到 2025 年 1 月 14 日 11:59:59 PM 服务器时间结束。
  • 您的实例在 2025 年 1 月 15 日 12:00:00 AM 服务器时间变为只读。

要恢复功能,请 续订您的订阅

如果许可证已过期超过 30 天,您必须购买一个 新订阅 来恢复功能。

要返回到基础版功能,请 删除所有过期的许可证

移除许可证

要从极狐 GitLab 私有化部署实例中移除许可证:

  1. 在左侧边栏底部选择 管理员
  2. 选择 订阅
  3. 选择 移除许可证

重复这些步骤以移除所有许可证,包括过去应用的那些。

查看许可证详细信息和历史记录

要查看您的许可证详细信息:

  1. 在左侧边栏底部选择 管理员
  2. 选择 订阅

您可以添加和查看多个许可证,但只有当前日期范围内的最新许可证是活动许可证。

当您添加未来日期的许可证时,它在其适用日期之前不会生效。您可以在 订阅历史 表中查看所有活动订阅。

您还可以将 导出 您的许可证使用信息到 CSV 文件。

在 Rails 控制台中使用许可证命令

以下命令可以在 Rails 控制台 中运行。

{{< alert type=”warning” >}}

任何直接改变数据的命令如果没有正确运行或在正确条件下运行可能是有害的。我们强烈建议在测试环境中运行它们,并准备好实例的备份以便在必要时恢复。

{{< /alert >}}

查看当前许可证信息

# 许可证信息(名称、公司、电子邮件地址)
License.current.licensee

# 计划:
License.current.plan

# 上传时间:
License.current.created_at

# 开始时间:
License.current.starts_at

# 到期时间:
License.current.expires_at

# 这是试用许可证吗?
License.current.trial?

# 用于在 CustomersDot 上查找的许可证 ID
License.current.license_id

# Base64 编码的 ASCII 格式的许可证数据
License.current.data

# 确认当前可计费座位数不包括访客用户。这对于使用旗舰版订阅层,访客座位不计入的客户非常有用。
User.active.without_bots.excluding_guests_and_requests.count

与未来开始的许可证的交互

# 未来许可证数据与当前许可证数据格式相同,只是使用不同的修饰符进行前缀
License.future_dated

检查项目功能是否在实例上可用

功能列在 features.rb

License.current.feature_available?(:jira_dev_panel_integration)

检查项目功能是否在项目中可用

功能列在 features.rb

p = Project.find_by_full_path('<group>/<project>')
p.feature_available?(:jira_dev_panel_integration)

通过控制台添加许可证

使用 key 变量

key = "<key>"
license = License.new(data: key)
license.save
License.current # 确认已应用

使用许可证文件

license_file = File.open("/tmp/Gitlab.license")

key = license_file.read.gsub("\r\n", "\n").gsub(/\n+$/, '') + "\n"

license = License.new(data: key)
license.save
License.current # 确认已应用

这些代码段可以保存到文件并通过 使用 Rails Runner 执行,以便通过 shell 自动化脚本应用许可证。

例如,在已知的边缘情况下需要这样做: 过期许可证和多个 LDAP 服务器

移除许可证

要清理 许可证历史表

TYPE = :trial?
# 或 :expired?

License.select(&TYPE).each(&:destroy!)

# 或者甚至 License.all.each(&:destroy!)

极狐GitLab 专业技术支持

如果您在激活极狐GitLab 实例过程中遇到任何问题,您通过官网支持渠道联系我们,也可以直接扫描下方的二维码快速联系专业人员:

wechat-support