HELPER VPS

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 的伺服器,就能把整個開發流程集中到自己的伺服器上。

    如何購買 GitLab 伺服器?

    從首次付款到首次登入只需三步。

    1. 第 1 步。 選擇 16 GB 或以上的方案

      選擇付款方式,選擇離團隊較近的城市,並選擇 16 GB 記憶體或以上的方案。

    2. 第 2 步。 用 Docker 應用映像檔建立

      在映像檔列表中選擇 Docker,就會建立一台備好 Docker Engine 和 Docker Compose 的 Ubuntu 24.04 伺服器。

    3. 第 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,代碼和流水線都按自己的標準處理。

    與 GitLab 搭配使用的技術

    官方 GitLab CE 映像檔內含以下技術,在 GitLab VPS 上一起執行。

    把伺服器放在離使用者近的地方

    在 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 伺服器指南

    拿到伺服器後建議先做的事。