HELPER VPS

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 自行寄存伺服器,把整個開發流程集中在自己的伺服器。

    如何購買 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 號連接埠,因此上方指令以 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 伺服器指南

    收到伺服器後最好先做的事。