Ubuntu20.04部署GitLab

2023-11-08

安装

更新本地包&安装相关依赖

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

安装postfix(邮件服务器)时可能出现激活gitlab邮箱配置,选择Internet站点那个选项,输入发送邮件的目的邮箱

设置存储库&安装Gitlab

  • 下载配置存储库的脚本到tmp目录下。
cd /tmp && curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
  • 检查版本无误后,运行脚本开始设置GitLab的存储库。
sudo bash /tmp/script.deb.sh
  • 正式安装GitLab
sudo apt install gitlab-ce

配置

配置方式

  • 更改GitLab配置文件。
sudo vim /etc/gitlab/gitlab.rb
  • 进入VIM之后,在VIM中输入下列命令,查找修改的位置。
/"你要搜索的字符串"
  • 按下回车后锁定到第一个查询结果,使用n查找下一个,N查找上一个。
  • 找到修改位置后输入i进入修改状态(后为编辑状态,不详述)。

设置访问链接

  • 按照配置方式,搜索关键词external_url,修改url为你本地的IP
external_url 'http://{你的IP}'

IP在终端中使用ifconfig查看,不直接使用localhost是因为可能从外部访问。

url中使用httpsGitLab会自动重定向请求到加密站点

设置发送邮箱

  • 在你负责发送邮件的邮箱(假设使用QQ邮箱),选择设置>账户,选择开启POP3/SMTP服务,获取授权码

  • 按照配置方式,搜索关键词gitlab_rails(仅作参考,怎么方便怎么来),绑定邮箱并且配置SMTP

#绑定邮箱
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'QQ邮箱'			#xxx@qq.com
gitlab_rails['gitlab_email_display_name'] = '邮箱名称'	#xxx
 
#配置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

修改端口

  • 由于GitLab默认在80端口,可能和本地服务冲突,可以选择其他端口号替代。
  • 按照配置方式,搜索关键词nginx['listen_port'],修改端口为指定端口(我使用8099)。
nginx['listen_port'] = 8099
  • 修改端口后为了保持统一,需要将访问链接修改成加上端口号的url
external_url 'http://{你的IP}:{你的端口号}'

常用命令

命令 作用
gitlab-ctl reconfigure 修改gitlab.rb文件之后重新加载配置
gitlab-ctl status 查看 GitLab 状态
gitlab-ctl start 启动 GitLab
gitlab-ctl stop 停止 GitLab
gitlab-ctl restart 重启 GitLab
gitlab-ctl tail 查看所有日志
gitlab-ctl tail nginx/gitlab_acces.log 查看 nginx 访问日志
gitlab-ctl tail postgresql 查看 postgresql 日志

若不是在root用户权限下,需要在命令前加上sudo

  • 针对上述配置,执行完成后,需要重新配置。
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

初始化

  • 如果想访问配置链接登录,需要先对账号进行初始化。
  • 进入GitLab控制台。
sudo gitlab-rails console
  • 输入以下命令,修改root用户密码。
user = User.where(id:1).first
user.password = {新密码}
user.password_confirmation = {新密码}
user.save!
exit
  • 使用更改后的root用户登录,同时设置偏好

参考

Ubuntu20.04安装配置GitLab的方法步骤
管理员账号初始化
ubuntu搭建、安装gitlab服务器以及初始化密码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20.04部署GitLab 的相关文章

  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • 如何在不在存储库中的情况下执行 Git 命令?

    有没有一种方法可以在不位于存储库的情况下对存储库执行 Git 命令 例如这样的事情 git home repo log 请不要告诉我cd到它 我正在通过一个exec call Use C作为 git 的第一个参数 git C home re
  • git 2.32 git push -u origin master 没有任何反应

    I ve starting to use git github and I m stucked on how to push my codes to github I m following some tutorials and when
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • 在初始化脚本中切换用户?

    这是我的 Ubuntu 工作站上的初始化脚本 我需要以除 root 之外的其他用户身份运行命令 但我就是不知道应该如何完成它 两者都不sudo u or su newuser似乎有效 剧本 respawn console none star
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 是否可以检测 http git 远程是智能还是愚蠢?

    我正在我的应用程序中实现一个选项来使用 depth 1制作 git repo 的最小功能克隆 我刚刚意识到愚蠢的 http 传输不支持 depth 我想自动检测 http 远程是愚蠢的还是聪明的 这样我就可以省略 depth与哑 http
  • Git - 远程:错误:无法运行钩子/后接收:没有这样的文件或目录

    我收到错误 remote error cannot run hooks post receive No such file or directory 当尝试推送到远程时 接收后文件存在于正确的位置 testnew git hooks 并包含
  • 我应该把 .gitignore 放在哪里才能影响所有项目?

    我应该在哪里放置一个 gitignore文件以便我的所有项目都使用这些设置 我尝试了各种文件夹 只有将其放入项目文件夹中才能使其正常工作 但是设置 当然 仅应用于该项目 而不是我的其他项目 git 包含一个 全局 配置选项 可以告诉它在启动
  • 如何创建名称中带有正斜杠的标签

    当我已经有了类似的标签时 有什么方法可以创建名称中带有正斜杠的 git 标签吗 假设我有 1 16 0 标签 并且我想创建 1 16 0 1 0 0 标签 git tag 1 16 0 1 0 0 error refs tags 1 16
  • 使用Git记录文件复制操作

    当我使用 git mv 在 git 中移动文件时 状态显示该文件已被重命名 即使我更改了某些部分 它仍然被认为几乎是相同的东西 这很好 因为它让我可以跟踪它的历史记录 当我复制文件时 原始文件有一些历史记录 我想将其与新副本关联起来 我尝试
  • 哪些 git hooks 适用于“git rebase --continue”?

    我正在尝试为我的组织构建一组 git hook 脚本 我想使用的一个脚本 仅用于我自己的多个项目 将是检查git rebase continue我的代码中没有留下任何冲突标记 lt lt lt lt lt or gt gt gt gt gt
  • Gitolite git 克隆错误

    我正在尝试在我的服务器 Macos 服务器 上设置 gitolite 我按照此处找到的安装文档中的说明进行操作 http sitaramc github com gitolite doc 1 INSTALL html http sitara
  • 如何更改 GitHub 上的文件模式?

    git add test file git commit m first commit create mode 100644 test file git push git update index add chmod x test file
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • 如何仅根据拉取请求在 Jenkins 中运行阶段?

    我现在有一个基于 Jenkinsfile 的管道 其中包含多个阶段 每次提交到 Github 时都会由 webhook 触发 我想在每次提交时保持 构建 和 单元测试 阶段运行 但仅在分支准备拉取请求时运行 集成测试 阶段 我想要的是 st
  • 有人可以解释一下 Postgresql 角色、Postgresql 用户和 Linux 用户之间的关系吗?

    我正在尝试在 Ubuntu 14 服务器上设置 Postgres 9 3 此时我感到非常沮丧 我以前使用过 MySQL 所以我对一般数据库概念以及客户端 服务器模型等很满意 我从两个用户开始 root 和 sam 我 作为 sam 我使用
  • npm install 的问题(Angular)

    今天我尝试创建一个新项目 所以我使用这个命令 ng new NAME style less 并在我的cmder中弹出错误和警告 所以我卸载了 Roaming npm 和 npm cache 中的节点和文件 然后我安装了node并再次下载cm
  • 使用 git 子树时如何添加特定文件夹?

    我正在开发一个复杂的 Ionic 项目 我正在开发的许多组件和提供程序都是通用的 可以在我公司正在进行的其他项目中使用 这在软件开发中很常见 这是我提出的 Git 工作流程 该图显示了分支 my company library repo c
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其

随机推荐

  • 八数码深度优先搜索_程序员必知的十大基础实用算法之-DFS(深度优先搜索)...

    深度优先搜索 深度优先搜索是一种在开发爬虫早期使用较多的方法 它的目的是要达到被搜索结构的叶结点 即那些不包含任何超链的HTML文件 在一个HTML文件中 当一个超链被选择后 被链接的HTML文件将执行深度优先搜索 即在搜索其余的超链结果之
  • LoRa Mesh 自组网 采集器

    外观结构 分为主机跟从机 1个网络需要1个主机 技术参数和指标 电源 无线参数 有线参数 应用场景 无线抄表 实时监控 数据采集
  • 面向对象(OOP)的基本特征

    面向对象 OOP 的基本特征
  • 64位Windows11系统快速搭建修图神器codeformer运行环境教程详解

    前段时间发现一款低画质照片变高清图软件Codeformer引起了我极大的兴趣 经过学习 现在完全弄明白了它的安装 配置 使用方法 入坑良久 今日出坑 在这里留档备查 让我这个门外小白见识到了复杂的环境配置过程 入门深度学习首先要踩的也是必须
  • kotlin入门!万字长文轻松彻底入门Flutter,含泪整理面经

    前言 最近 有同学参加阿里云的面试 被问到 如果是MySQL引起的CPU消耗过大 你会如何优化 他说 这个问题他第一次遇到 当时一头雾水 不知道该如何回答 还好他当时机制 说MySQL底层不是他研究的重点 所以面试官没有再深入这块 因此 我
  • conda 导出环境/导入环境/导出base环境

    conda的虚拟环境真的非常实用 尤其是对于大的深度学习项目 给每个项目单独配一个环境 轻巧又容易管理 还能直接用别人配好的虚拟环境 非常方便 这里记录几个常用的导入导出命令免得每次找 查看可用环境 conda info envs 输出样式
  • 用群晖筑建音乐之「家」

    创意从业者的灵感总是随时迸发 一段简短的旋律就有可能谱成一首经典歌曲 而这个过程 不仅需要才华 学习 刻苦 还需要 方便保存所有这些灵感的 工具 群晖NAS为音乐爱好者或是音乐从业者打造私有音乐素材库 大量的音乐素材及作品都可以通过群晖NA
  • docker映射mysql修改字符编码_怎么在docker容器的mysql的编码格式变为utf8

    第一个方法 1 编辑MySql的配置文件 MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my ini 可以搜索 Linux下一般是 etc my cnf 在 mysqld 标签下加上以下内容 defa
  • 深拷贝浅拷贝的理解

    深拷贝 1 是指拷贝一个对象时 不仅仅把对象的引用进行复制 还把该对象引用的值也一起拷贝 2 源对象与拷贝对象互相独立 其中任何一个对象的改动都不会对另外一个对象造成影响 浅拷贝 1 指的是拷贝一个对象时 仅仅拷贝对象的引用进行拷贝 但是拷
  • “由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从...

    WCF程序中一般出现这样的错误 我们需要在服务端的web config中增加
  • 操作系统与shell

    操作系统与shell 操作系统与shell 一 什么是操作系统 1 什么是kernel 2 什么是shell 二 System Call 补充 用户态与内核态 操作系统与shell 一 什么是操作系统 操作系统 即Operating Sys
  • 一文读懂类加载机制

    类记载过程 多个java文件经过编译打包生成可运行的jar包 最终由java命令运行某个主类的main函数启动程序 这里首先需要通过类加载器把主类加载到jvm 主类在运行过程中如果使用到其他类 会逐步加载这些类 注意 jar包里的类不是一次
  • aws ec2 变更pem_用aws和jira建立一个连续的变更日志

    aws ec2 变更pem So you ve decided to go CI CD You read all about the org changes understand the ins and outs of the develo
  • Qt 如何实现文件类型关联

    何为文件打开关联 比如 一个扩展名为txt的文本 双击之后会调用 notepad exe 进行打开 doc的扩展名会调用word打开等等 咱们今天讲的是如何在Qt所编写的程序实现这个动作 这个关联动作都是记录在注册表中的 1 文件格式注册
  • Matlab函数之ismember,find

    一 ismember函数 1 ismember a b 返回前者是否存在于后者的logical数组 举例 a 1 2 3 4 5 6 b 3 5 6 ismember a b 返回的数组为 0 0 1 0 1 1 ismember b a
  • openldap2.4版本管理员文档中文翻译版

    OpenLDAP2 4管理员指南 文章目录 1 OpenLDAP介绍 2 快速开始指南 1 获得软件 2 解压压缩包 3 阅读文档 4 运行configure 5 编译软件 6 测试编译结果 7 安装软件 8 编辑配置文件 9 导入数据库配
  • 计算机网络 第4章 网络层

    第4章 网络层 网络层 network layer 负责为分组交换网上的不同主机提供通信 在发送数据时 将运输层产生的报文段或用户数据报封装成分组或包进行传送 在TCP IP体系中 分组也叫做IP数据包 或简称为数据报 4 1 网络层的几个
  • 透视投影矩阵的推导

    视锥体 如图 近截面与远截面之间构成的这个四棱台就是视锥体 而透视投影矩阵的任务就是把位于视锥体内的物体的顶点X Y Z坐标映射到 1 1 范围 这就相当于把这个四棱台扭曲变形成一个立方体 这个立方体叫做规则观察体 Canonical Vi
  • 如何在visio中画虚线框以及如何解决将visio图形复制到word文档中虚线变为实线的问题

    这两个问题都不是什么复杂的事情 但是如果对visio用的不多或者只是临时用起来碰到了这种问题还真是麻烦事儿 问题1 如何在visio中画虚线框 在上方的按钮中找到矩形工具那个按钮 对 点一下就可以在作图区画出来一个矩形了 可是这个矩形默认的
  • Ubuntu20.04部署GitLab

    安装 更新本地包 安装相关依赖 sudo apt update sudo apt install ca certificates curl openssh server postfix 安装postfix 邮件服务器 时可能出现激活gitl