# Linux怎么搭建GitLab
## 前言
GitLab是一個基于Git的代碼托管和協作平臺,提供代碼倉庫管理、CI/CD、問題跟蹤等功能。作為開源軟件,它可以部署在自有服務器上,適合企業或團隊構建私有代碼管理平臺。本文將詳細介紹在Linux系統上搭建GitLab的完整流程。
---
## 一、環境準備
### 1.1 系統要求
- **操作系統**:Ubuntu 20.04/22.04、CentOS 7/8、Debian 10/11(本文以Ubuntu 22.04為例)
- **硬件配置**:
- 最低配置:2核CPU、4GB內存(適用于小型團隊)
- 推薦配置:4核CPU、8GB內存(支持100人以上團隊)
- **存儲空間**:至少10GB可用空間(實際需根據代碼量調整)
### 1.2 依賴安裝
確保系統已安裝必要工具:
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates postfix
注:安裝Postfix時會彈出配置界面,選擇”Internet Site”并設置域名。
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
替換EXTERNAL_URL
為你的域名或服務器IP:
sudo EXTERNAL_URL="http://your-domain-or-ip" apt install gitlab-ce
安裝過程會自動: 1. 配置Nginx 2. 創建數據庫(使用內嵌PostgreSQL) 3. 初始化Redis緩存
開放必要端口:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 22 # SSH端口
在瀏覽器輸入http://your-domain-or-ip
,將顯示密碼重置頁面。默認用戶名:
- Username: root
- Password: 查看初始密碼(24小時有效):
sudo cat /etc/gitlab/initial_root_password
主配置文件路徑:/etc/gitlab/gitlab.rb
常用配置項示例:
external_url 'http://gitlab.example.com' # 修改訪問地址
gitlab_rails['time_zone'] = 'Asia/Shanghai' # 時區設置
nginx['listen_port'] = 8080 # 修改監聽端口
每次修改配置后需執行:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
修改gitlab.rb
:
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
/etc/gitlab/ssl/
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
命令 | 功能 |
---|---|
sudo gitlab-ctl start |
啟動所有服務 |
sudo gitlab-ctl stop |
停止所有服務 |
sudo gitlab-ctl status |
查看服務狀態 |
sudo gitlab-rake gitlab:check |
系統健康檢查 |
創建備份:
sudo gitlab-backup create
備份文件默認存儲在/var/opt/gitlab/backups/
恢復備份:
sudo gitlab-ctl stop
sudo gitlab-backup restore BACKUP=備份文件名
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
sudo apt update
sudo apt install gitlab-ce=15.11.0-ce.0 # 替換為目標版本
修改gitlab.rb
示例:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "gitlab@example.com"
gitlab_rails['smtp_password'] = "your-password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
默認使用內嵌PostgreSQL,如需改用MySQL: 1. 創建MySQL數據庫和用戶 2. 修改配置:
gitlab_rails['db_adapter'] = 'mysql2'
gitlab_rails['db_host'] = 'mysql-server'
gitlab_rails['db_database'] = 'gitlab'
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = 'password'
unicorn['worker_processes'] = 4 # 建議每核心1個worker
sidekiq['max_concurrency'] = 10
502錯誤:
free -h
)sudo gitlab-ctl tail unicorn
無法發送郵件:
sudo gitlab-rails console
Notify.test_email('test@example.com', 'Test', 'Body').deliver_now
備份失敗:
/var/opt/gitlab/backups
有寫入權限df -h
)關鍵日志路徑:
- /var/log/gitlab/nginx/
- Nginx訪問日志
- /var/log/gitlab/gitlab-rails/production.log
- 主應用日志
- /var/log/gitlab/sidekiq/current
- 后臺任務日志
通過本文的步驟,您已成功在Linux服務器上部署了功能完整的GitLab實例。建議定期執行備份和更新,并參考官方文檔探索更多高級功能如CI/CD流水線、容器注冊表等。對于生產環境,應考慮配置高可用方案和監控系統。
附:GitLab資源占用參考(活躍用戶50人) - CPU平均負載:1.2 - 內存占用:~5GB - 存儲增長:約2GB/月(取決于代碼庫大?。?“`
注:實際部署時請根據具體需求調整配置參數,并確保服務器有足夠資源。如需更詳細的配置說明,可參考GitLab官方文檔或社區論壇。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。