当前位置: 首页 > news >正文

linux下安装gitlab

检查当前系统 yum --version
关闭防火墙 / 放行端口(80、443、22) # 放行端口 firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --permanent --add-service=ssh firewall-cmd --reload

2.安装依赖

yum install -y curl policycoreutils-python openssh-server openssh-clients postfix systemctl enable sshd && systemctl start sshd systemctl enable postfix && systemctl start postfix

3.导入gutlab官方源(社区免费版)

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

4.安装gitlab,绑定域名

EXTERNAL_URL="https://***.***.com" yum install -y gitlab-ce

5.配置文件

1.gitlab配置

vim /etc/gitlab/gitlab.rb # 对外访问域名 external_url 'https://***.***.com' # 使用自带nginx 配置SSL证书路径 nginx['ssl_certificate'] = "your.crt" nginx['ssl_certificate_key'] = "your.key" nginx['listen_port'] = 443 nginx['redirect_http_to_https'] = true # 或使用全局nginx代理 # 关闭 GitLab 内置 Nginx nginx['enable'] = false # 网络类型(默认tcp) gitlab_workhorse['listen_network'] = "tcp" # workhorse接收代理请求端口 gitlab_workhorse['listen_addr'] = '127.0.0.1:9000' # workhorse转发到Puma后端地址 gitlab_workhorse['auth_backend'] = 'http://localhost:8080' # 固定Puma应用端口 gitlab_rails['puma_port'] = 8080 # 设置全站默认简体中文 gitlab_rails['gitlab_default_language'] = "zh_CN" # 开启完整翻译加载 gitlab_rails['extra_languages'] = ["zh_CN"] # 开启SMTP邮件发送功能,false则Gitlab不会发任何邮件(注册通知、密码重置、合并提醒等) gitlab_rails['smtp_enable'] = true # 邮箱服务商的SMTP服务器地址,如qq是smtp.qq.com、163是smtp.163.com gitlab_rails['smtp_address'] = "xxx.xxx.com" # TLS加密端口,465是绝大多数邮箱SSL/TLS专用端口;普通无加密端口常用25 gitlab_rails['smtp_port'] = 465 # 用来登录发信服务器的完整邮箱账号 gitlab_rails['smtp_user_name'] = "你的发件邮箱" # 邮箱登录凭证:普通邮箱填登录密码;QQ/163等第三方邮箱必须填【授权码】,不能填登录密码 gitlab_rails['smtp_password'] = "邮箱密码/授权码" # 邮箱域名,和smtp地址后缀一致,xxx.com对应前面smtp.xxx.com gitlab_rails['smtp_domain'] = "xxx.com" # 认证方式,固定填login,主流邮箱都适配这种账号密码校验模式 gitlab_rails['smtp_authentication'] = "login" # 自动开启STARTTLS安全加密传输,防止邮件内容明文泄露 gitlab_rails['smtp_enable_starttls_auto'] = true # 强制启用SSL/TLS加密,搭配465端口必须开启,25端口一般关闭此项 gitlab_rails['smtp_tls'] = true # 收件人邮箱里看到的【发件人名称/邮箱】,统一伪装成gitlab@bjljsy.com发出邮件 gitlab_rails['gitlab_email_from'] = 'xxx@xxx.com'

2.全局nginx代理

server { listen 80; server_name ***.***.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name ***.***.com; ssl_certificate your.crt; ssl_certificate_key your.key; location / { # gitlab 监听的端口 proxy_pass http://127.0.0.1:8080; 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; proxy_http_version 1.1; proxy_set_header Connection ""; } }

六.常用命令

gitlab-ctl restart # 全部重启 gitlab-ctl status # 查看所有组件运行状态 gitlab-ctl tail # 实时查看日志排错 gitlab-ctl stop # 停止服务 # 重新编译加载所有翻译语言包 gitlab-rake gettext:compile # 查看gitlab当前版本 gitlab-rake gitlab:env:info | grep Version # 直接升级到最新稳定社区版 yum update gitlab-ce ss -ltnp | grep 8080 # 确认 gitlab-workhorse 监听 8080 端口 free -h # 检查内存

七.登录后台

管理员账号:root 查看初始密码 cat /etc/gitlab/initial_root_password

复制 20 位密码,浏览器打开:https://***.***.com

时效规则:执行一次 gitlab-ctl reconfigure 后 24 小时,该文件会被 GitLab 自动删除。
密码登录失败(已改过密码 / 文件即将失效)使用 Rails 控制台强制重置 root 密码

# 进入gitlab rails交互终端 gitlab-rails console # 查询root管理员用户 user = User.where(username: 'root').first # 设置新密码(替换成你自己的高强度密码) user.password = '新密码123456!' user.password_confirmation = '新密码123456!' # 保存生效 user.save! # 退出控制台 exit
#给 root 管理员设置中文 gitlab-rails console user = User.find_by(username: 'root') user.preferred_language = 'zh_CN' user.save! exit #批量给所有存量用户统一设置中文(可选) gitlab-rails console User.all.each do |u| u.preferred_language = 'zh_CN' u.save! rescue nil end exit # 查看文件权限与归属 ls -l /opt/gitlab/embedded/service/gitlab-rails/locale/gitlab.pot # 放开写入权限 chmod u+w /opt/gitlab/embedded/service/gitlab-rails/locale/gitlab.pot chown -R git:git /opt/gitlab/embedded/service/gitlab-rails/locale/ chmod -R 755 /opt/gitlab/embedded/service/gitlab-rails/locale/

八.常见故障

1.502 Bad Gateway

内存不足,临时加交换分区

fallocate -l 4G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile
http://www.gsyq.cn/news/1496369.html

相关文章:

  • 番禺洛浦奢侈品回收第一名|金小福名表名包名酒钻石翡翠黄金全品类专业回收 - 花生花生1
  • 2026年AI问答流量服务公司选购指南:技术架构、行业应用与决策框架 - 优质品牌商家
  • 2026 主流 GEO 源码厂商实测:云罗 GEO、摘星智能、棋引科技技术与落地能力对比
  • BiliBili-UWP桌面版终极秘籍:告别卡顿,打造你的专属B站体验
  • idea+git插件+云备份实现项目新分支新建维护
  • 前端周刊2026W22 | React 13周年、TanStack Router、Deno 2.8、Node.js 26、npm 分阶段发布
  • 防割面料采购怎么避坑,选UHMWPE梭织面料供应商为什么更稳
  • Android 权限请求构建器使用指南
  • 粗心和专注力有关系吗?
  • 七界梦谭长戟刚鬣怎么打 七界梦谭长戟刚鬣详细打法攻略
  • QQ本地缓存机制初步探寻
  • 2026年免费AI编程工具推荐榜单
  • Unity基础(十四)场景异步加载
  • OpenSpec实战
  • android开发 原生设置中的Device name 与Device model
  • 学习比特 享幸福人生
  • 2026高考大数据:1290万考生背后的赛道拥挤度与捡漏指南
  • GEO基础优化包含哪些基础项目
  • Redis中的通用命令
  • 论文去重难?5个实用工具帮你
  • Boss-Key:终极窗口隐私保护神器,一键隐藏桌面窗口的完整指南
  • 2026河马引力67W避坑:分配不均协议阉割散热差别买
  • Java 文件复制(字符 / 字节缓冲流)
  • 人形机器人进真实场景,开发者需要关注哪些技术栈?
  • 创建订单报错‘无定价过程被确定’
  • 水性机调色浆WM系列技术优势:纳米分散赋能高效调色
  • 计算机毕业设计之基于大数据的用户购物系统
  • cat命令将调试信息指定到对应路径下
  • G-Helper终极降压指南:AMD CPU温度直降15℃的完整实战教程
  • 单点ORACLE EBS 网页端