在 Ubuntu 上安裝 GitLab Community Edition

GitLab Community Edition,也就是常見的 gitlab-ce,是 GitLab 提供的自架版本。它會把 Git repository、Issue、Merge Request、CI/CD、Wiki 與基本專案管理功能整合在同一套 Web 服務中,很適合用來架設團隊內部的 Git 平台,或是在測試環境中熟悉 GitLab Self-Managed 的操作方式。

本文會依照 GitLab 官方 Ubuntu Linux package 安裝文件,示範如何在 Ubuntu 上安裝 gitlab-ce,並完成第一次登入。官方文件可以參考:Install the Linux package on Ubuntu

前置需求

開始安裝前,請先確認環境符合以下條件:

  • Ubuntu 22.04 或 Ubuntu 24.04
  • 可以使用具備 sudo 權限的帳號
  • 主機可以連線到 https://packages.gitlab.com/*https://storage.googleapis.com/packages-ops/*
  • 若要讓外部使用者連線,需要先準備好 GitLab 使用的網域名稱或固定 IP
  • 若使用 HTTPS 網址,需要確認 80 與 443 連接埠可以從外部連入,讓 GitLab 可以透過 Let’s Encrypt 申請憑證

GitLab 是一套資源需求相對高的服務,正式部署前也建議先閱讀官方的 installation requirements,確認 CPU、記憶體與儲存空間是否足夠。若只是本機測試或 VM 練習,也要預留足夠的記憶體與磁碟空間,避免安裝或重新設定過程中失敗。


開啟 SSH 與防火牆連接埠

GitLab 安裝完成後,Web 介面通常會使用 80 或 443 連接埠,Git over SSH 則會使用 22 連接埠。因此在安裝前可以先確認 OpenSSH Server 已啟用,並開放必要的防火牆規則。

啟用並啟動 SSH 服務:

1
sudo systemctl enable --now ssh

如果主機使用 ufw 管理防火牆,可以開放 22、80 與 443 連接埠:

1
2
3
4
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

若是在 VirtualBox、VMware、Proxmox、雲端 VM 或公司內網環境中安裝,也要同時確認上層網路、防火牆、安全群組或 port forwarding 已經允許這些連線。

加入 GitLab CE 套件庫

GitLab 官方提供套件庫安裝腳本,可以協助把 gitlab-ce repository 加入 Ubuntu 的 APT 來源。先更新套件索引並安裝 curl

1
2
sudo apt update
sudo apt install -y curl

接著執行 Community Edition 的 repository 安裝腳本:

1
sudo curl --location "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash

這裡使用 sudo curl 是因為實測時若直接用一般權限執行 curl,下載流程可能會卡住。這段腳本會加入 GitLab CE 的 APT repository,並更新套件索引。若想先檢查腳本內容,可以先在瀏覽器開啟該 URL,或用 curl 下載後閱讀內容,再決定是否執行。

看到 Repository configured successfullyReady to install packages 後,就代表套件庫已經加入完成,可以繼續安裝 gitlab-ce

安裝 gitlab-ce

安裝 GitLab 時,官方建議一併設定 EXTERNAL_URL。這個值會成為 GitLab 對外服務的網址,也會影響 GitLab 產生 clone URL、redirect URL 與 Web 介面的連結。

如果已經準備好正式網域,可以使用 HTTPS:

1
sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce

如果只是本機或內網測試,也可以先使用 HTTP,例如:

1
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ce

請記得把 gitlab.example.com 換成自己的網域或主機位址。若使用 HTTPS,GitLab 會嘗試透過 Let’s Encrypt 自動申請憑證;這時網域必須能正確解析到該主機,且外部可以連到 80 與 443 連接埠。

安裝過程會下載接近 1 GB 的套件,實際時間會依照主機效能與網路速度而有所不同。安裝時會看到 GitLab 的 ASCII 圖示,以及多個服務與元件的設定流程。

如果安裝時 GitLab 無法偵測有效的 hostname,畫面可能會提示需要手動設定 /etc/gitlab/gitlab.rb 裡的 external_url,再執行 gitlab-ctl reconfigure

設定 external_url 並重新套用設定

如果安裝時沒有自動完成 external_url 設定,可以開啟 GitLab 的主要設定檔:

1
sudo nano /etc/gitlab/gitlab.rb

找到 external_url 設定,改成實際要讓瀏覽器連線的網址。例如正式網域可以設定為:

1
external_url 'https://gitlab.example.com'

如果是在本機 VM 測試,並透過 port forwarding 對應到本機的 80 連接埠,也可以先設定為:

1
external_url 'http://127.0.0.1'

設定完成後,執行以下指令重新套用 GitLab 設定:

1
sudo gitlab-ctl reconfigure

第一次 reconfigure 會花一些時間,GitLab 會透過 Omnibus GitLab 內建的設定流程建立 PostgreSQL、Redis、Nginx、Prometheus 等服務需要的檔案與設定。

當畫面出現 gitlab Reconfigured! 後,代表設定已經套用完成。

如果後續又修改了 /etc/gitlab/gitlab.rb,也要再次執行 sudo gitlab-ctl reconfigure,讓變更真正套用到服務上。

取得初始 root 密碼

GitLab 安裝完成後,會自動建立預設管理員帳號。使用者名稱是:

1
root

初始密碼會存放在 /etc/gitlab/initial_root_password,可以用以下指令查看:

1
sudo cat /etc/gitlab/initial_root_password

這個檔案只會保留 24 小時,之後會因安全考量自動刪除。因此第一次安裝完成後,建議盡快登入 GitLab,並立刻更改 root 帳號的密碼與 Email。

需要注意的是,初始密碼是敏感資訊,不建議直接截圖公開、寫進文章,或保存在多人共用的文件中。如果密碼檔已經被刪除,或初始密碼無法登入,可以依照官方文件重設 root 密碼。

第一次登入 GitLab

完成設定後,開啟瀏覽器並連到前面設定的 external_url。如果是正式網域,網址會類似:

1
https://gitlab.example.com

如果是本機 VM 測試,則可能會是:

1
http://127.0.0.1

登入畫面出現後,使用以下資訊登入:

  • Username:root
  • Password:/etc/gitlab/initial_root_password 中的初始密碼

第一次登入後,GitLab 可能會引導你建立第一個專案,或補完管理員個人資料。若只是先確認安裝是否成功,可以略過這些步驟,稍後再回到 GitLab 介面中設定。

進入 GitLab 首頁後,就可以看到專案、群組、Merge requests、To-Do List 等功能入口。這代表 GitLab CE 已經可以正常透過 Web 介面使用。

常用管理指令

安裝完成後,日常維護常會用到 gitlab-ctl。以下整理幾個基本指令:

指令 說明
sudo gitlab-ctl status 查看 GitLab 各服務狀態
sudo gitlab-ctl reconfigure 重新套用 /etc/gitlab/gitlab.rb 設定
sudo gitlab-ctl restart 重新啟動 GitLab 服務
sudo gitlab-ctl stop 停止 GitLab 服務
sudo gitlab-ctl start 啟動 GitLab 服務
sudo gitlab-ctl tail 查看 GitLab 服務 log

如果 GitLab 頁面無法開啟,可以先用 sudo gitlab-ctl status 檢查服務是否都正常啟動,再用 sudo gitlab-ctl tail 查看 Nginx、Puma、Sidekiq 或其他服務的錯誤訊息。

安裝後建議設定

GitLab 可以順利登入後,建議先完成幾個基本設定,避免測試環境不小心變成公開風險:

  • 立即修改 root 帳號密碼與 Email。
  • 如果 GitLab 會對外開放,確認是否允許任何人註冊帳號,必要時關閉公開註冊。
  • 檢查 external_url 是否為使用者實際會連線的網址。
  • 正式環境建議使用 HTTPS,並確認憑證更新流程正常。
  • 規劃備份策略,避免 Git repository、資料庫與上傳檔案遺失。
  • 定期更新 GitLab CE 套件,尤其是安全性更新。

如果是正式團隊環境,也建議接著閱讀官方的 recommended next steps,進一步設定登入方式、帳號限制、備份、Email、Runner 與安全性相關選項。

小結

在 Ubuntu 上安裝 GitLab CE 的流程可以整理成幾個步驟:先確認主機與網路條件,開啟 SSH 與必要連接埠,加入 GitLab CE 套件庫,使用 apt install gitlab-ce 安裝套件,最後設定 external_url 並透過 gitlab-ctl reconfigure 套用設定。

如果只是本機或 VM 練習,最容易卡住的地方通常是 external_url 與 port forwarding;如果是正式網域部署,則要特別注意 DNS、HTTPS 憑證與防火牆設定。完成第一次登入後,記得立刻更改 root 密碼,並檢查新使用者註冊與 Web IDE 等安全性提示,讓這台 GitLab CE 主機可以在更穩定且可控的狀態下提供服務。