树莓派搭建私有 GitLab 服务器:告别 GitHub 的数据掌控指南

每当能够自行托管一个工具而摆脱对云服务的依赖,我总是按捺不住动手的冲动。GitHub 的确出色,可自从它被微软收购之后,我也渐渐理解了为何一些开发者宁愿将代码保存在自己的私有服务器上。GitLab 使得这一切成为可能,而树莓派正是低成本在家中进行这类实验的绝佳载体。
通过添加官方 GitLab 仓库,可以在 Raspberry Pi OS 上用 APT 安装社区版(Community Edition)软件包。建议使用树莓派 4 或更新的型号以获得足够流畅的性能。
接下来,我将先梳理 Git 与 GitLab 究竟是什么,以及为何值得使用它们。随后会一步步展示安装 GitLab 的过程,并介绍该软件的基础用法。
目录
- Git、GitLab 与 GitHub:三者究竟有何不同?
- 在树莓派上部署 GitLab
- 树莓派 GitLab 上手操作
- 常见疑问
Git、GitLab 与 GitHub:三者究竟有何不同?
那么,Git、GitLab 和 GitHub 之间的区别在哪里?让我们简单拆解一下。
Git
Git 是一款代码管理工具,用来在参与同一项目的开发者之间共享源代码。它支持多人对同一文件进行并行编辑,即使你是独行开发者,它也是备份代码、记录变更的一把好手。
如果你对这些工具有一定了解,会发现 Git 的目标与 SVN(Subversion)或 CVS(并发版本系统)是相同的。
关键差异在于,Git 不需要依赖集中式服务器即可工作;它借助开发者自己的电脑来存储文件。(不过,当项目中只有你一人时,仍建议在服务器上部署 Git,以确保代码安全。)
GitLab
GitLab 恰好填补了 Git 默认架构中那个缺失的服务器角色。它为你提供一个附带 Web 界面的备份托管端,用于管理你的项目。
起初,GitLab 仅仅是一个通过 Web 界面查看源代码的工具。但此后 GitLab 不断丰富功能,使其成为任何 Git 项目中不可或缺的一环。

GitLab 是一款免费且开源软件。
你也可以使用他们提供的托管云服务(如果你愿意),订阅价格在 0 到 99 美元之间。而在本教程中,我将演示如何在你的树莓派上安装其免费版本。
为何不用 GitHub?
如今,GitHub 已成为托管 Git 仓库的一项服务。然而正如我之前提到的,你无法掌控他们对你的源代码及信息所做的处理。
对于小型项目,GitHub 游刃有余,你可以迅速获得免费的源代码托管。但对于较大的项目或者企业,我并不能确信这是最佳选择。你无法确保数据安全,尤其是目前微软在运营它。
与此同时,GitLab 在持续提供越来越多的项目管理工具。举例来说,GitLab 上的权限管理更为精细。这使得你不仅可以添加 GitLab 上的开发者,还可以纳入所有需要参与项目的人员。
简而言之,换个角度理解:GitLab 就是你私有的、自行托管的 GitHub。
在树莓派上部署 GitLab
在树莓派上安装 GitLab 的主要步骤包括:
- 准备好操作系统
- 安装 GitLab 的依赖项
- 添加 GitLab 仓库并安装软件包
下面对每一步展开详细说明。
系统准备
要跟随本教程,你的树莓派需要运行 Raspberry Pi OS。任何版本均可,Raspberry Pi OS Lite 已经绰绰有余,因为安装 GitLab 不需要图形界面。
如果你需要协助,请参考我的 Raspberry Pi OS 分步安装指南。
https://raspberrytips.com/install-raspbian-raspberry-pi/
妥善安装完 Raspberry Pi OS 后,按以下步骤准备系统:
- 若尚未启用 SSH,请执行:
sudo raspi-config
- 依次进入 Interface options > SSH,选择 Yes 将其开启。
如需更详尽的手把手教程,我这里也准备了一份完整的 SSH 操作指南。
https://raspberrytips.com/ssh-guide-raspberry-pi/
- 更新系统:
sudo apt update
sudo apt upgrade
sudo reboot

重启完毕后,便可继续下一步。
安装依赖项
GitLab 在添加仓库之前需要设置一些依赖。其中大部分已预装在 Raspberry Pi OS 中,但你可能至少需要安装 Postfix(用于邮件通知)。
安装所有依赖的命令如下:
sudo apt install apt-transport-https postfix

输入 “Y” 确认继续。
此时会弹出 Postfix 的配置界面。
选择 “Internet site”,若有 DNS 名称则填入你的 DNS 名称。
如果你以后希望接收邮件通知,可以再行调整,这不算什么大问题,按照提示继续安装即可。
安装 GitLab 软件包
由于 GitLab 未包含在默认仓库中,我们需要添加它的仓库才能进行安装。
- 使用官方脚本添加 GitLab 仓库:
curl --location "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash

- 刷新软件包列表:
sudo apt update
- 安装 GitLab 软件包:
sudo EXTERNAL_URL="http://192.168.1.15" apt install gitlab-ce
将 EXTERNAL_URL 的值替换为你的 IP 地址或你计划使用的 DNS 名称(暂时不要填入 HTTPS 地址)。
该软件包接近 1GB,因此下载、解压和安装可能需要一些时间。
全部完成后,你将看到一个成功界面,其中含有一条重要信息:

树莓派 GitLab 上手操作
此刻,树莓派上的 GitLab 已经就绪,下面来看看如何使用它。本节将介绍登录 GitLab Web 面板以及创建第一个项目的方法。
访问 GitLab Web 界面
安装结束后,你可以通过 http://<EXTERNAL_URL> 访问 Web 界面。
使用安装命令中所定义的同一个 URL。

凭据如下:
- 登录名 = root
- 密码 = 安装过程中自动生成
你可以在 /etc/gitlab/initial_root_password 文件中找到它:

登录后请立即更改密码,因为以明文存储密码并不安全。修改 GitLab 密码的方法:
- 点击右上角的头像图标 > Edit profile(编辑个人资料)
- 在左侧菜单中,进入 Access > Password and authentication(访问 > 密码与认证)
- 最后,点击 Change password(更改密码)按钮

如果需要更详细的 GitLab 配置信息,可在 GitLab 文档中找到所有答案。
https://docs.gitlab.com/omnibus/README.html#installation-and-configuration-using-omnibus-package
创建你的第一个项目
登录 GitLab 界面后,你会看到类似下方的主页:

点击 “Create a project(创建项目)”,再选择 “Create a blank project(创建空白项目)”,然后填写表单:

挑选最满足你需求的选项,接着点击 “Create project(创建项目)” 完成创建。
你也可以使用模板或导入已有的 Git 项目。
项目创建后,你就能像往常一样用 Git 命令来操作它了:

项目的界面与 GitHub 上的非常相似。
例如,要在我的另一台树莓派上克隆测试项目,可以执行:
git clone http://192.168.30.19/root/my-test-project.git

就这样,你已经掌握了如何在树莓派上安装 GitLab 以及基本的使用方法。
如果你担心数据隐私并希望保持掌控,这是替代 GitHub 的一个出色方案。但若不想承担丢失一切的风险,请务必做好备份。
如需更多信息,请查看我关于如何备份树莓派的指南。
https://raspberrytips.com/backup-raspberry-pi/
常见疑问
在树莓派上使用 GitLab 是个好主意吗?
一旦解决优化问题后,它似乎运行得不错。但我不确定这是否是最理想的方案。拿它来尝试、确认你能够实现目标是很好的。但从长远看,你需要一台更强大的设备,以及存储风险更低的方案(SD 卡并非最安全的存储介质)。GitLab 配置文件在哪里?
据我所知,所有配置似乎都集中在 /etc/gitlab/gitlab.rb 文件中。其中的选项并不总是直观,但你可以在 GitLab 网站和论坛上获得帮助。