在 Ubuntu 上安装 GitLab 可以帮助您轻松地搭建一个自己的 Git 代码托管平台。本教程将向您展示如何在 Ubuntu 上安装和配置 GitLab。
模式一:通过Docker安装
1. 设置环境
mkdir -p ~/gitlab
echo "export GITLAB_HOME=$HOME/gitlab" >> ~/.bashrc
source ~/.bashrc
Local location | Container location | Usage |
---|---|---|
$GITLAB_HOME/data | /var/opt/gitlab | For storing application data. |
$GITLAB_HOME/logs | /var/log/gitlab | For storing logs. |
$GITLAB_HOME/config | /etc/gitlab | For storing the GitLab configuration files. |
2. 安装GitLab
步骤1:安装GitLab镜像
sudo docker run --detach \
--publish 430:443 --publish 810:80 --publish 23: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 2048m \
gitlab/gitlab-ee:latest
查看docker运行情况:
sudo docker logs -f gitlab
获取用户名 root 和密码
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
说明: 密码文件将在 24 小时后的第一次重新配置运行中自动删除。
查看gitlab运行情况:
sudo docker logs -f gitlab
步骤2:配置GitLab
修改$GITLAB_HOME/config
目录下的gitlab.rb
配置文件:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#配置邮箱来源, 与展示的名称
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '您的qq邮箱地址'
gitlab_rails['gitlab_email_display_name'] = '您的邮箱显示名称'
#smtp配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "您的qq邮箱地址"
gitlab_rails['smtp_password'] = "您的授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
nginx['enable'] = true
重新启动docker:
sudo docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure
gitlab-ctl start
可以访问 http://127.0.0.1:810
模式二:在本地安装
步骤 1:安装必要的软件包
在开始之前,确保您的 Ubuntu 系统已经安装了必要的软件包。您可以使用以下命令来安装:
sudo apt update
sudo apt install curl openssh-server ca-certificates postfix
在安装 postfix 期间,您将被提示选择邮件配置类型。请确保选择 Internet Site 并按照提示进行操作。
如果显示下面错误:
dpkg: 处理软件包 openssh-server (--configure)时出错:
已安装 openssh-server 软件包 post-installation 脚本 子进程返回错误状态 10
在处理时有错误发生:
openssh-server
运行下面命令:
# 卸载openssh-server
sudo apt-get remove openssh-server
# 删除openssh-server的残留配置文件
sudo rm /var/lib/dpkg/info/openssh-server.*
# 重新安装openssh-server
sudo apt-get install openssh-server
步骤 2:安装 GitLab
接下来,您需要添加 GitLab 的软件仓库并安装 GitLab。使用以下命令来添加 GitLab 的软件仓库:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
然后,使用以下命令安装 GitLab:
sudo apt install gitlab-ce
这将下载并安装 GitLab CE(社区版)。
如果出现下面报错:
# apt-get install gitlab-ce
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gitlab-ce
需要配置国内加速镜像:
sudo vim /etc/apt/sources.list.d/gitlab_gitlab-ce.list
将OLD:
deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
换成:
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal main
deb-src https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal main
步骤 3:配置 GitLab
在配置GitLab之前,您需要确保防火墙规则足够宽松以允许Web流量。如果您遵循先决条件中链接的指南,则将启用ufw防火墙,键入以下内容查看活动防火墙的当前状态:
sudo ufw status
/etc/services文件中提供了HTTP和HTTPS的端口映射协议,因此我们可以按名称允许该流量。如果您尚未启用OpenSSH流量,则现在也应该允许该流量:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
安装完成后,您需要对 GitLab 进行一些基本配置。首先,编辑 GitLab 的配置文件:
sudo gedit /etc/gitlab/gitlab.rb
找到 external_url 配置项,并将其设置为您服务器的 IP 地址或域名。例如:
## GitLab URL
external_url 'http://your-server-ip:625'
external_url 'https://your-server-ip:626'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#配置邮箱来源, 与展示的名称
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '您的qq邮箱地址'
gitlab_rails['gitlab_email_display_name'] = '您的邮箱显示名称'
#smtp配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "您的qq邮箱地址"
gitlab_rails['smtp_password'] = "您的授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
nginx['enable'] = true
nginx['listen_port'] = 9091 // GitLab端口,默认80端口
unicorn['port'] = 9092 // 可不修改,默认监听8080端口
external_url ‘http://your-server-ip’
保存并关闭文件。
接下来,重新配置 GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
这将应用您所做的更改并重新配置 GitLab。
步骤 4:设置开机自启动
GitLab开机自动启动
设置GitLab开机自启动命令为
sudo systemctl enable gitlab-runsvdir.service
禁止GitLab开机自启动命令为
sudo systemctl disable gitlab-runsvdir.service
步骤 5:访问 GitLab
现在,您可以使用您的服务器 IP 地址或域名来访问 GitLab 的 Web 界面。在浏览器中输入以下 URL:
http://your-server-ip
您将被重定向到 GitLab 的登录页面。首次登录时,您需要创建一个管理员帐户。
完成上述步骤后,您已成功安装和配置了 GitLab。现在,您可以使用 GitLab 来托管您的代码,并与其他开发人员一起协作。
步骤6:gitlab默认储存目录
gitlab资料默认存储位置在/var/opt/gitlab/git-data/repositories,备份的位置可以更换,使用如下命令:(默认可以不修改,那么默认生成在/var/opt/gitlab/backups)
可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
sudo gedit /etc/gitlab/gitlab.rb
找到gitlab_rails[‘backup_path’] = “/data/gitBackup” 取消注释并修改为自定义备份路径
# 重读配置
sudo gitlab-ctl reconfigure
# 重启服务
sudo gitlab-ctl restart
附录
常用命令 说明
sudo gitlab-ctl reconfigure 重新加载配置,每次修改/etc/gitlab/gitlab.rb文件之后执行
sudo gitlab-ctl status 查看 GitLab 状态
sudo gitlab-ctl start 启动 GitLab
sudo gitlab-ctl stop 停止 GitLab
sudo gitlab-ctl restart 重启 GitLab
sudo gitlab-ctl tail 查看所有日志
sudo gitlab-ctl tail nginx/gitlab_acces.log 查看 nginx 访问日志
sudo gitlab-ctl tail postgresql 查看 postgresql 日志
评论区