GitLab VPS 寄存:程式碼及 CI/CD 放在自己的伺服器
- 以官方 gitlab/gitlab-ce Docker 映像安裝
- 推薦 16 GB 或以上記憶體方案
- root 權限及公開 IPv4、IPv6 位址
HELPER VPS GitLab VPS 是自行架設 GitLab Community Edition 的 Linux 雲端伺服器,每月 $25.00 起,按發票付款。建立伺服器時選擇 Docker 應用程式映像,以 SSH 連接並執行官方 gitlab/gitlab-ce 映像,即可在自己的伺服器管理團隊的程式碼、議題及流程。
GitLab 是甚麼?
GitLab 是集 Git 程式碼庫管理、程式碼審查、議題管理、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 倉庫,讓部署伺服器直接下載使用。
議題與項目管理
以議題看板、標籤、里程碑及 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,程式碼及流程按你的準則處理。
程式碼放在自己的伺服器。 程式碼庫、議題及 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 號連接埠,因此上方指令以 2222 號連接埠開放 GitLab 的 Git SSH。在 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 號連接埠的郵件發送服務,合併請求及議題通知便會發出。HELPER VPS 伺服器已關閉對外的 25 號連接埠,因此以此方式發送。
GitLab 如何更新?
以 gitlab-backup 建立備份後,取得新映像並以相同卷宗重建容器便可。跨越大版本時,請按 GitLab 官方升級路徑經過中間版本升級。
程式碼庫增多時可以擴充硬碟嗎?
建立伺服器時可在 50 至 1000 GB 之間加上額外硬碟。把 GITLAB_HOME 設為額外硬碟路徑,程式碼庫、倉庫及備份便存放在充裕空間。
購買 GitLab 伺服器如何付款?
選擇付款方式並建立伺服器,立即開始使用。在時段結束前支付續期發票,開發永不中斷。
GitLab 是 GitLab Inc. 與社群開發的開源項目,GitLab 名稱及標誌權利屬其擁有者。GitLab CE 的安裝、更新、設定及使用支援由客人自行負責。GitLab CE 不另收費,伺服器費用為所選方案價格。
GitLab 伺服器指南
收到伺服器後最好先做的事。
