GitLab VPS 主机,代码与 CI/CD 放在自己的服务器上
- 用官方 gitlab/gitlab-ce Docker 镜像安装
- 推荐16 GB内存或以上的套餐
- root 权限与公网 IPv4·IPv6 地址
HELPER VPS GitLab VPS是自行部署GitLab Community Edition的Linux云服务器,每月$25.00起,按发票付款。创建服务器时选择Docker应用镜像,通过SSH连接并运行官方gitlab/gitlab-ce镜像,即可在自己的服务器上管理团队的代码、问题和流水线。
什么是 GitLab?
GitLab 是集 Git 仓库管理、代码评审、Issue 管理、CI/CD 流水线和容器镜像仓库于一体的开发平台。GitLab Community Edition(CE)是开源发布的免费版,团队可以安装在自己的服务器上,自行保存代码和开发记录。默认就包含合并请求、Wiki、里程碑等协作功能。
官方 gitlab/gitlab-ce Docker 镜像中除 GitLab 本体外,还包含 PostgreSQL、Redis、Nginx、Puma、Sidekiq,一个容器就能运行整个服务。配置、日志和数据以卷的形式单独保存在服务器磁盘上,把容器换成新版本,仓库和用户信息也原样保留。
GitLab VPS 能做什么?
一台自托管 GitLab 的服务器,就能把整个开发流程集中到自己的服务器上。
公司内部 Git 仓库
任意创建私有项目,用群组和角色为每位团队成员分配读写权限。
CI/CD 流水线
一个 .gitlab-ci.yml 文件即可自动运行测试、构建和部署,并直接在合并请求中查看结果。
容器镜像仓库
把构建好的 Docker 镜像推送到 GitLab 镜像仓库,部署服务器可直接拉取使用。
Issue 与项目管理
用 Issue 看板、标签、里程碑和 Wiki,在代码旁边一起管理日程和文档。
如何购买 GitLab 服务器?
从首次付款到首次登录只需三步。
第 1 步。 选择16 GB或以上的套餐
选择付款方式,选择离团队较近的城市,并选择16 GB内存或以上的套餐。
第 2 步。 用 Docker 应用镜像创建
在镜像列表中选择 Docker,就会创建一台备好 Docker Engine 和 Docker Compose 的 Ubuntu 24.04 服务器。
第 3 步。 SSH 登录执行命令
以 root 通过 SSH 登录执行下面的命令,几分钟后在浏览器中打开服务器地址,用 root 账户登录。
如何安装 GitLab CE?
通过 SSH 连接用 Docker 应用镜像创建的服务器,执行下面的命令。把 gitlab.example.com 换成自己的域名或服务器 IP;由于服务器 SSH 使用22端口,GitLab 的 Git SSH 开放在2222端口。首次启动需要几分钟,用最后一行命令可以查看 root 初始密码(该文件会在24小时后删除)。
export GITLAB_HOME=/srv/gitlab
sudo mkdir -p $GITLAB_HOME
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest
sudo docker logs -f gitlab
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password在 VPS 上自行安装 GitLab 有什么好处?
自己运营 GitLab VPS,代码和流水线都按自己的标准处理。
代码在自己的服务器上。 仓库、Issue 和 CI 记录保存在您所选城市的服务器磁盘上,访问权限也由您决定。
不按用户数收费。 GitLab CE 是免费版,一份服务器费用就能按需创建团队成员账户。
CI 时长随心用。 在自己的服务器上挂接 GitLab Runner,流水线运行时长在服务器性能范围内自由使用。
可选大内存套餐。 内存型套餐配备 16~128 GB 内存,仓库和用户众多的 GitLab 也能稳稳支撑。
轻松扩充磁盘。 创建时添加 50~1000 GB 的额外磁盘,长期保存仓库和镜像仓库中的镜像。
用自动备份守护。 自动备份选项与 gitlab-backup 命令搭配使用,服务器和 GitLab 数据双重保存。
与 GitLab 搭配使用的技术
官方 GitLab CE 镜像内含以下技术,在 GitLab VPS 上一起运行。
- Docker
- PostgreSQL
- Redis
- NGINX
- Ubuntu
把服务器放在离用户近的地方
在 31 个国家的 40 个城市,都能以相同价格创建 GitLab 服务器。
GitLab VPS 需要多少 GB 内存?
GitLab同时运行Web服务器、后台任务、数据库和缓存,因此至少需要4 GB内存,我们建议团队实际使用16 GB或以上。12 GB时,几个人同时使用界面可能会变慢,因此HELPER VPS建议从4 vCPU、16 GB套餐开始。高性能NVMe磁盘套餐使仓库克隆和搜索更快。
如果在同一台服务器上用 GitLab Runner 运行 CI 任务,构建也会占用内存,16 GB 套餐更合适。用户和项目多的团队可选内存型 m32 这类大内存套餐,并把 Runner 分到其他服务器上,GitLab 界面就能始终轻快。一个账户最多可创建10台服务器,这样拆分也很容易。
开始自托管 GitLab 后需要设置什么?
首次登录后修改 root 密码,并在管理区域把注册改为审批制或关闭,只让团队成员进入。使用域名的话,把 /srv/gitlab/config/gitlab.rb 中的 external_url 设为 https 地址并开启 letsencrypt 设置,然后执行 sudo docker exec -it gitlab gitlab-ctl reconfigure,就会自动配上 HTTPS 证书。
通知邮件通过在 gitlab.rb 的 SMTP 设置中填入使用587端口的邮件发送服务来发送。想让 Git SSH 地址显示为2222端口,请把 gitlab_rails['gitlab_shell_ssh_port'] 的值设为2222。定期用 sudo docker exec -t gitlab gitlab-backup create 创建备份,升级新版本时先确认官方升级路径再更换镜像,更加安全。
GitLab 主机常见问题
选择和安装 GitLab VPS 时的常见问题。
GitLab VPS 是一键安装的吗?
用 Docker 应用镜像创建服务器后,用一条 docker run 命令运行官方 gitlab/gitlab-ce 镜像。粘贴上面的命令,等待几分钟,浏览器中就会打开 GitLab 登录页面。
GitLab 最少需要多少 GB 内存?
GitLab至少需要4 GB内存,我们建议团队使用16 GB或以上更顺畅。因此我们建议从4 vCPU、16 GB套餐(g16,n16)开始,如果还运行CI Runner,请选择32 GB套餐。
可以在 Ubuntu 镜像上用 Omnibus 软件包安装吗?
可以,也可以在用 Ubuntu 创建的服务器上添加 GitLab 官方软件包仓库进行安装。Docker 方式把配置、日志和数据分为不同的卷,更新和迁移更方便,因此本页介绍 Docker 方式。
在哪里查看 root 初始密码?
用 sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password 命令查看。该文件会在首次设置24小时后删除,登录后请立即修改为新密码。
Git SSH 使用什么端口?
服务器本身的 SSH 使用22端口,因此上面的命令把 GitLab 的 Git SSH 开放在2222端口。在 gitlab.rb 中把 gitlab_shell_ssh_port 设为2222,仓库页面上的 SSH 地址也会正确显示。
如何配置 HTTPS 证书?
把域名指向服务器 IP 后,将 gitlab.rb 中的 external_url 改为 https 地址并开启 letsencrypt,再执行 gitlab-ctl reconfigure,证书就会自动签发和续期。
GitLab Runner 也能放在同一台服务器上吗?
可以,在同一台服务器上以容器方式部署 gitlab/gitlab-runner 镜像并注册即可。构建会同时占用内存和 CPU,建议选择 16 GB 套餐,或把 Runner 单独放在一台小服务器上。
GitLab 可以发送邮件通知吗?
可以,在 gitlab.rb 的 SMTP 设置中填入使用587端口的邮件发送服务,合并请求和 Issue 通知就会发出。HELPER VPS 服务器的出站25端口已关闭,因此采用这种方式发送。
如何更新 GitLab?
用 gitlab-backup 创建备份后,拉取新镜像,并用相同的卷重建容器即可。跨大版本升级时,请按 GitLab 官方升级路径经由中间版本逐步升级。
仓库增多后可以扩充磁盘吗?
创建服务器时可以添加 50~1000 GB 的额外磁盘。把 GITLAB_HOME 设为额外磁盘的路径,仓库、镜像仓库和备份都能存放在充裕的空间里。
购买 GitLab 服务器如何付款?
选择付款方式并创建服务器,立即开始使用。在周期结束前支付续费发票,您的开发将永不中断。
GitLab 是由 GitLab Inc. 和社区开发的开源项目,GitLab 名称和标志的权利归其所有者所有。GitLab CE 的安装、更新、设置和使用支持由您自行负责。使用 GitLab CE 不额外收费,服务器费用为所选套餐的价格。
GitLab 服务器指南
拿到服务器后建议先做的事。
