服务器搭建 Git 仓库 GitLab Gitea 实践指南
在当今的软件开发领域,版本控制系统已经成为必不可少的工具。Git 作为分布式版本控制系统,因其高效、灵活的特点被广大开发者所青睐。然而,仅仅拥有 Git 工具是不够的,我们还需要一个可靠的平台来托管和管理 Git 仓库。GitLab 和 Gitea 是两种流行的选择,它们分别提供了丰富的功能和轻量级的服务,满足不同规模项目的需求。本文将详细介绍如何在服务器上搭建 GitLab 和 Gitea,并提供一些实用的配置建议,帮助开发者更好地管理自己的代码仓库。
1.环境准备
在开始搭建 Git 仓库之前,我们需要准备好合适的服务器环境。通常,我们可以选择以下几种操作系统:
-
Linux 发行版:如 Ubuntu, CentOS, Debian 等。这些 Linux 发行版在服务器领域广泛使用,具有稳定性和强大的社区支持。
-
Windows Server:虽然 Linux 更受开发者喜爱,但 Windows Server 在某些企业环境中也有一定应用。
本文将以 Ubuntu 20.04 为例,介绍如何在 Linux 服务器上搭建 GitLab 和 Gitea。
1.1 安装 Git
首先,我们需要确保服务器上已经安装了 Git。打开终端并运行以下命令:
sudo apt update
sudo apt install git
安装完成后,可以通过以下命令验证 Git 是否安装成功:
git --version
1.2 配置服务器
为了便于管理用户和权限,建议在服务器上创建一个专门的用户来运行 Git 服务。可以使用以下命令创建用户:
sudo adduser git
设置密码并赋予该用户 sudo 权限:
sudo usermod -aG sudo git
切换到新创建的用户:
sudo su - git
2.搭建 GitLab
GitLab 是一个功能丰富的 Git 仓库管理平台,提供了代码托管、CI/CD、容器注册等功能。我们将以 Omnibus GitLab 安装包为例,介绍如何在服务器上搭建 GitLab。
2.1 下载安装包
访问 GitLab 官方网站,下载适用于 Ubuntu 的 Omnibus GitLab 安装包。例如,最新的稳定版本可能是:
wget https://packages.gitlab.com/gitlab/gitlab-omnibus/gitlab-ce_15.3.1-omnibus-x86_64.deb
2.2 安装 GitLab
运行以下命令安装 GitLab:
sudo dpkg -i gitlab-ce_15.3.1-omnibus-x86_64.deb
安装过程中可能会出现依赖性问题,可以使用以下命令解决:
sudo apt --fix-broken install
2.3 初始化 GitLab
安装完成后,运行以下命令初始化 GitLab:
sudo gitlab-ctl reconfigure
初始化完成后,可以通过以下命令启动 GitLab:
sudo gitlab-ctl start
和查看状态:
sudo gitlab-ctl status
2.4 访问 GitLab
打开浏览器并访问 http://your_server_ip,你应该能够看到 GitLab 的登录界面。默认管理员用户是 root,初始密码可以在服务器上的 /etc/gitlab/gitlab.rb 文件中找到。
2.5 配置 GitLab
为了更好地适应项目需求,我们需要对 GitLab 进行一些配置。编辑 /etc/gitlab/gitlab.rb 文件,修改相关参数:
gitlab_rails['default_queue_size'] = 20
gitlab_rails['monitoring整体状态'] = true
gitlab_rails['sidekiq队列调度'] = true
保存文件后,运行以下命令应用新的配置:
sudo gitlab-ctl reconfigure
3.搭建 Gitea
Gitea 是一个轻量级的 Git 仓库管理平台,提供了与 GitLab 相似的核心功能,但安装和配置更为简单。下面我们将介绍如何在服务器上搭建 Gitea。
3.1 下载安装包
访问 Gitea 官方网站 下载适用于 Ubuntu 的 Gitea 安装包。例如,最新的稳定版本可能是:
wget https://dl.gitea.io/gitea/gitea-1.19.0-linux-amd64.tar.gz
3.2 解压安装包
解压下载的安装包:
tar -xzvf gitea-1.19.0-linux-amd64.tar.gz
3.3 创建运行用户
同 GitLab 的配置一样,我们创建一个专门的用户来运行 Gitea:
sudo adduser --system --group gitea
3.4 移动文件并设置权限
将解压后的文件移动到 /opt 目录并设置权限:
sudo mv gitea-1.19.0-linux-amd64 /opt/gitea
sudo chown -R gitea:gitea /opt/gitea
创建必要的目录并设置权限:
sudo mkdir -p /opt/gitea/custom/conf /opt/gitea/custom/data
sudo chown -R gitea:gitea /opt/gitea/custom
3.5 配置 Gitea
复制 Gitea 默认配置文件并编辑:
sudo cp /opt/gitea/conf/app.conf /opt/gitea/custom/conf/app.conf
sudo nano /opt/gitea/custom/conf/app.conf
在配置文件中,你可以修改数据库类型、端口、域名等参数:
[server]
port = 3000
root_url = http://your_server_ip/
[repository]
auto_create制度建设 = true
[database]
type = sqlite3
path = /opt/gitea/custom/data/db.sqlite3
3.6 启动 Gitea
创建一个系统服务来管理 Gitea:
sudo nano /etc/systemd/system/gitea.service
添加以下内容:
[Unit]
Description=Gitea - Git repository manager
After=syslog.target network.target
[Service]
User=gitea
Group=gitea
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/gitea -c /opt/gitea/custom/conf/app.conf run
Restart=always
Environment=GLAB_SET befind false
Type=simple
LimitNOFILE=65536
LimitNPROC=512
[Install]
WantedBy=multi-user.target
启动并启用 Gitea 服务:
sudo systemctl start gitea
sudo systemctl enable gitea
3.7 访问 Gitea
打开浏览器并访问 http://your_server_ip:3000,你应该能够看到 Gitea 的登录界面。默认管理员用户是 admin,初始密码可以在服务器上的 /root/gitea密码.md 文件中找到。
4.配置域名和 HTTPS
为了提高服务的可靠性,建议为 GitLab 和 Gitea 配置域名和 HTTPS。下面我们将介绍如何配置 Let's Encrypt 证书来实现免费 HTTPS。
4.1 安装 Certbot
Certbot 是一个流行的自动化证书颁发工具,支持多种域名和证书颁发机构。安装 Certbot:
sudo apt install certbot
4.2 获取证书
为 GitLab 获取证书:
sudo certbot certonly --standalone -d your_domain --preferred-challenges=dns --email your_email@example.com
为 Gitea 获取证书:
sudo certbot certonly --standalone -d your_domain --preferred-challenges=dns --email your_email@example.com
4.3 配置 Nginx
编辑 Nginx 配置文件,为 GitLab 和 Gitea 添加 HTTPS 支持。例如,为 GitLab 配置:
sudo nano /etc/nginx/sites-available/gitlab
添加以下内容:
server {
listen 443 ssl;
server_name your_domain;
ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
location / {
proxy_pass http://gitlab;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
同样为 Gitea 配置:
sudo nano /etc/nginx/sites-available/gitea
添加以下内容:
server {
listen 443 ssl;
server_name your_domain;
ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
location / {
proxy_pass http://gitea:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置:
sudo ln -s 

AI 助手2 天前
发表在:欢迎使用emlog感谢您的分享!很高兴看到大家对工业3D...
AI 助手5 天前
发表在:欢迎使用emlog感谢分享!您的观点很独特,听起来像是一...
AI 助手6 天前
发表在:欢迎使用emlog非常感谢您的分享!3D сканеры...
AI 助手9 天前
发表在:欢迎使用emlog非常感谢您的分享!听起来3D金属打印技...
AI 助手10 天前
发表在:欢迎使用emlog谢谢分享!WMS系统确实能提升仓储效率...
AI 助手11 天前
发表在:欢迎使用emlog谢谢分享这些有价值的建议!希望您的3D...
主机评测博客14 天前
发表在:内存卡损坏数据恢复的7个方法(内存卡读不出修复)https://www.88993.cn...
emlog14 天前
发表在:欢迎使用emlog这是系统生成的演示评论