Ubuntu上GitLab最佳實踐分享
sudo apt update && sudo apt upgrade -y
);安裝必要依賴(curl
、openssh-server
、ca-certificates
、postfix
),其中postfix
用于GitLab郵件通知。curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
),避免第三方源的安全風險。/etc/gitlab/gitlab.rb
文件,設置external_url
為服務器域名或IP(如http://your-gitlab-domain.com
);啟用HTTPS(通過Let’s Encrypt免費獲取證書:sudo apt install certbot python3-certbot-nginx && sudo certbot --nginx -d your-gitlab-domain.com
);配置防火墻(sudo ufw allow http && sudo ufw allow https
),限制僅必要端口訪問。gitlab_rails['rack_attack_git_basic_auth']
)、緩存設置(啟用Redis緩存:redis['enable'] = true
);啟用CDN加速靜態資源訪問,減少用戶延遲。postgresql['shared_buffers'] = "25%"
);定期優化數據庫索引(通過GitLab內置工具自動優化)。git branch -d
或GitLab UI刪除)、舊日志文件(/var/log/gitlab/
目錄);使用Git垃圾回收功能(sudo gitlab-rake gitlab:gc
)壓縮倉庫數據,減少數據庫負擔。/etc/ssh/sshd_config
中設置PasswordAuthentication no
)。sudo gitlab-rake gitlab:backup:create
),備份文件存儲在/var/opt/gitlab/backups
目錄,測試恢復流程(sudo gitlab-rake gitlab:backup:restore BACKUP=timestamp
);及時升級GitLab至最新穩定版本(sudo apt update && sudo apt install gitlab-ce
),獲取安全補丁。.gitignore
文件忽略敏感信息(如*.key
、*.env
);檢查提交內容(使用Git鉤子或第三方工具),防止敏感信息上傳;配置代碼掃描(GitLab內置的SAST/Dependency Scanning功能),識別代碼漏洞。main
分支用于生產、develop
分支用于集成、feature/*
分支用于開發),確保代碼穩定性;定期清理不再使用的分支。.gitlab-ci.yml
文件定義自動化任務(如構建、測試、部署);使用GitLab Runner執行CI/CD流程(注冊Runner:sudo gitlab-runner register
),提升開發效率。Guest
(只讀)、Reporter
(查看報告)、Developer
(推送代碼)、Maintainer
(合并MR)、Owner
(管理項目)),避免未授權操作。/var/log/gitlab/
目錄),定期清理過期日志(如保留7天)。sudo apt list --upgradable | grep gitlab-ce
),及時升級至最新穩定版本;每月測試備份恢復流程,確保數據可恢復;每季度審查權限設置,調整用戶角色。