【Gitlab】Ubuntu 20.04服务器部署Gitlab

写一个 适用于 Ubuntu 20.04/22.04 的 GitLab 一键部署脚本,包括:

  • 安装依赖

  • 安装 GitLab CE

  • 配置公网 IP 或域名

  • 自动开启 HTTPS(Let's Encrypt)

  • 配置防火墙

下面是完整脚本:

bash 复制代码
#!/bin/bash

# =========================
# GitLab 一键安装脚本
# =========================

# 1. 检查是否以 root 运行
if [ "$EUID" -ne 0 ]; then
  echo "请使用 root 用户运行此脚本"
  exit 1
fi

# 2. 更新系统
apt update && apt upgrade -y

# 3. 安装依赖
apt install -y curl openssh-server ca-certificates tzdata perl ufw

# 4. 配置防火墙
ufw allow http
ufw allow https
ufw allow OpenSSH
ufw --force enable

# 5. 安装 Postfix(用于邮件通知,可选)
debconf-set-selections <<< "postfix postfix/mailname string gitlab.example.com"
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
apt install -y postfix

# 6. 添加 GitLab 仓库
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash

# 7. 设置外部 URL
read -p "请输入你的域名或公网 IP(例:http://gitlab.example.com 或 http://123.123.123.123): " EXTERNAL_URL

# 自动生成 GitLab 配置文件
export EXTERNAL_URL=$EXTERNAL_URL

# 8. 安装 GitLab
apt install -y gitlab-ce

# 9. 重新配置 GitLab
gitlab-ctl reconfigure

# 10. 自动启用 HTTPS(Let's Encrypt)
read -p "是否启用 HTTPS(Let's Encrypt)? [y/n]: " ENABLE_HTTPS
if [[ "$ENABLE_HTTPS" == "y" || "$ENABLE_HTTPS" == "Y" ]]; then
    # 设置 GitLab 配置开启 Let's Encrypt
    gitlab-ctl stop nginx
    gitlab-ctl reconfigure

    # 编辑配置文件启用 Let's Encrypt
    GITLAB_CONFIG="/etc/gitlab/gitlab.rb"
    sed -i "s|^# external_url '.*'|external_url 'https://$EXTERNAL_URL'|" $GITLAB_CONFIG
    sed -i "s|^# letsencrypt\['enable'\] = false|letsencrypt['enable'] = true|" $GITLAB_CONFIG

    # 重新配置
    gitlab-ctl reconfigure
fi

# 11. 输出访问信息
echo "======================================"
echo "GitLab 安装完成!"
echo "访问地址: $EXTERNAL_URL"
echo "默认管理员账号: root"
echo "请首次访问设置管理员密码"
echo "======================================"

# 12. 查看服务状态
gitlab-ctl status

使用方法

  1. 新建一个脚本文件:

    nano install_gitlab.sh

  2. 粘贴上面的内容,保存并退出。

  3. 赋予执行权限并运行:

bash 复制代码
chmod +x install_gitlab.sh
sudo ./install_gitlab.sh
  1. 按提示输入 公网 IP 或域名,选择是否开启 HTTPS。

这个脚本安装的是 GitLab CE 社区版,支持 HTTPS,防火墙也会自动配置好。

相关推荐
Winlifes3 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理4 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123454 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s4 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人5 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人5 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅5 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人5 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr5 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林5 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器