GitLab VPS 主機,代碼與 CI/CD 放在自己的伺服器上
- 用官方 gitlab/gitlab-ce Docker 映像檔安裝
- 推薦 16 GB 記憶體或以上的方案
- root 許可權與公網 IPv4·IPv6 地址
HELPER VPS GitLab VPS 是一台 Linux 雲端伺服器,您可以在上面運行 GitLab Community Edition,它在一處處理 Git 儲存庫和 CI/CD,每月 $25.00 起,按發票計費。建立伺服器時選擇 Docker 應用映像檔,透過 SSH 連線並執行官方的 gitlab/gitlab-ce 映像檔,您就可以在自己的伺服器上管理團隊的代碼、問題和流水線。
什麼是 GitLab?
GitLab 是集 Git 儲存庫管理、代碼評審、Issue 管理、CI/CD 流水線和容器映像檔儲存庫於一體的開發平台。GitLab Community Edition(CE)是開源釋出的免費版,團隊可以安裝在自己的伺服器上,自行儲存代碼和開發記錄。預設就包含合併請求、Wiki、里程碑等協作功能。
官方 gitlab/gitlab-ce Docker 映像檔中除 GitLab 本體外,還包含 PostgreSQL、Redis、Nginx、Puma、Sidekiq,一個容器就能執行整個服務。配置、日誌和資料以卷的形式單獨儲存在伺服器磁碟上,把容器換成新版本,儲存庫和使用者資訊也原樣保留。
GitLab VPS 能做什麼?
一台自託管 GitLab 的伺服器,就能把整個開發流程集中到自己的伺服器上。
公司內部 Git 儲存庫
任意建立私有專案,用群組和角色為每位團隊成員分配讀寫許可權。
CI/CD 流水線
一個 .gitlab-ci.yml 檔案即可自動執行測試、構建和部署,並直接在合併請求中檢視結果。
容器映像檔儲存庫
把構建好的 Docker 映像檔推送到 GitLab 映像檔儲存庫,部署伺服器可直接拉取使用。
Issue 與專案管理
用 Issue 看板、標籤、里程碑和 Wiki,在代碼旁邊一起管理日程和文件。
如何購買 GitLab 伺服器?
從首次付款到首次登入只需三步。
第 1 步。 選擇 16 GB 或以上的方案
選擇付款方式,選擇離團隊較近的城市,並選擇 16 GB 記憶體或以上的方案。
第 2 步。 用 Docker 應用映像檔建立
在映像檔列表中選擇 Docker,就會建立一台備好 Docker Engine 和 Docker Compose 的 Ubuntu 24.04 伺服器。
第 3 步。 SSH 登入執行命令
以 root 透過 SSH 登入執行下面的命令,幾分鐘後在瀏覽器中開啟伺服器地址,用 root 帳戶登入。
如何安裝 GitLab CE?
透過 SSH 連線用 Docker 應用映像檔建立的伺服器,執行下面的命令。把 gitlab.example.com 換成自己的網域或伺服器 IP;由於伺服器 SSH 使用22連接埠,GitLab 的 Git SSH 開放在2222連接埠。首次啟動需要幾分鐘,用最後一行命令可以檢視 root 初始密碼(該檔案會在24小時後刪除)。
export GITLAB_HOME=/srv/gitlab
sudo mkdir -p $GITLAB_HOME
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest
sudo docker logs -f gitlab
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password在 VPS 上自行安裝 GitLab 有什麼好處?
自己營運 GitLab VPS,代碼和流水線都按自己的標準處理。
代碼在自己的伺服器上。 儲存庫、Issue 和 CI 記錄儲存在您所選城市的伺服器磁碟上,訪問許可權也由您決定。
不按使用者數收費。 GitLab CE 是免費版,一份伺服器費用就能按需建立團隊成員帳戶。
CI 時長隨心用。 在自己的伺服器上掛接 GitLab Runner,流水線執行時長在伺服器效能範圍內自由使用。
可選大記憶體方案。 記憶體型方案配備 16~128 GB 記憶體,儲存庫和使用者眾多的 GitLab 也能穩穩支撐。
輕鬆擴充磁碟。 建立時新增 50~1000 GB 的額外磁碟,長期儲存儲存庫和映像檔儲存庫中的映像檔。
用自動備份守護。 自動備份選項與 gitlab-backup 命令搭配使用,伺服器和 GitLab 資料雙重儲存。
與 GitLab 搭配使用的技術
官方 GitLab CE 映像檔內含以下技術,在 GitLab VPS 上一起執行。
- Docker
- PostgreSQL
- Redis
- NGINX
- Ubuntu
把伺服器放在離使用者近的地方
在 31 個國家的 40 個城市,都能以相同價格建立 GitLab 伺服器。
GitLab VPS 需要多少 GB 記憶體?
GitLab 同時運行網頁伺服器、背景任務、資料庫和快取,因此至少需要 4 GB 記憶體,我們建議 16 GB 或以上以確保團隊使用順暢。12 GB 時,介面可能會在幾個人同時使用時變慢,因此 HELPER VPS 建議從 4 vCPU、16 GB 方案開始。使用 NVMe 磁碟的高效能方案可以讓儲存庫克隆和搜尋更快。
如果在同一台伺服器上用 GitLab Runner 執行 CI 任務,構建也會佔用記憶體,16 GB 方案更合適。使用者和專案多的團隊可選記憶體型 m32 這類大記憶體方案,並把 Runner 分到其他伺服器上,GitLab 介面就能始終輕快。一個帳戶最多可建立10台伺服器,這樣拆分也很容易。
開始自託管 GitLab 後需要設定什麼?
首次登入後修改 root 密碼,並在管理區域把註冊改為審批制或關閉,只讓團隊成員進入。使用網域的話,把 /srv/gitlab/config/gitlab.rb 中的 external_url 設為 https 地址並開啟 letsencrypt 設定,然後執行 sudo docker exec -it gitlab gitlab-ctl reconfigure,就會自動配上 HTTPS 證書。
通知郵件透過在 gitlab.rb 的 SMTP 設定中填入使用587連接埠的郵件傳送服務來傳送。想讓 Git SSH 地址顯示為2222連接埠,請把 gitlab_rails['gitlab_shell_ssh_port'] 的值設為2222。定期用 sudo docker exec -t gitlab gitlab-backup create 建立備份,升級新版本時先確認官方升級路徑再更換映像檔,更加安全。
GitLab 主機常見問題
選擇和安裝 GitLab VPS 時的常見問題。
GitLab VPS 是一鍵安裝的嗎?
用 Docker 應用映像檔建立伺服器後,用一條 docker run 命令執行官方 gitlab/gitlab-ce 映像檔。貼上上面的命令,等待幾分鐘,瀏覽器中就會開啟 GitLab 登入頁面。
GitLab 最少需要多少 GB 記憶體?
GitLab 至少需要 4 GB 記憶體,我們建議 16 GB 或以上以確保團隊使用順暢。因此我們建議從 4 vCPU、16 GB 方案(g16、n16)開始,如果您還運行 CI Runner,則建議 32 GB 方案。
可以在 Ubuntu 映像檔上用 Omnibus 軟體包安裝嗎?
可以,也可以在用 Ubuntu 建立的伺服器上新增 GitLab 官方軟體包儲存庫進行安裝。Docker 方式把配置、日誌和資料分為不同的卷,更新和遷移更方便,因此本頁介紹 Docker 方式。
在哪裡檢視 root 初始密碼?
用 sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password 命令檢視。該檔案會在首次設定24小時後刪除,登入後請立即修改為新密碼。
Git SSH 使用什麼連接埠?
伺服器本身的 SSH 使用22連接埠,因此上面的命令把 GitLab 的 Git SSH 開放在2222連接埠。在 gitlab.rb 中把 gitlab_shell_ssh_port 設為2222,儲存庫頁面上的 SSH 地址也會正確顯示。
如何配置 HTTPS 證書?
把網域指向伺服器 IP 後,將 gitlab.rb 中的 external_url 改為 https 地址並開啟 letsencrypt,再執行 gitlab-ctl reconfigure,證書就會自動簽發和續期。
GitLab Runner 也能放在同一台伺服器上嗎?
可以,在同一台伺服器上以容器方式部署 gitlab/gitlab-runner 映像檔並註冊即可。構建會同時佔用記憶體和 CPU,建議選擇 16 GB 方案,或把 Runner 單獨放在一台小伺服器上。
GitLab 可以傳送郵件通知嗎?
可以,在 gitlab.rb 的 SMTP 設定中填入使用587連接埠的郵件傳送服務,合併請求和 Issue 通知就會發出。HELPER VPS 伺服器的出站25連接埠已關閉,因此採用這種方式傳送。
如何更新 GitLab?
用 gitlab-backup 建立備份後,拉取新映像檔,並用相同的卷重建容器即可。跨大版本升級時,請按 GitLab 官方升級路徑經由中間版本逐步升級。
儲存庫增多後可以擴充磁碟嗎?
建立伺服器時可以新增 50~1000 GB 的額外磁碟。把 GITLAB_HOME 設為額外磁碟的路徑,儲存庫、映像檔儲存庫和備份都能存放在充裕的空間裡。
購買 GitLab 伺服器如何付款?
選擇付款方式並建立伺服器以立即開始使用。在週期結束前支付續費發票,您的開發將永不中斷。
GitLab 是由 GitLab Inc. 和社羣開發的開源專案,GitLab 名稱和標誌的權利歸其所有者所有。GitLab CE 的安裝、更新、設定和使用支援由您自行負責。使用 GitLab CE 不額外收費,伺服器費用為所選方案的價格。
GitLab 伺服器指南
拿到伺服器後建議先做的事。
