在 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 | sudo ufw allow 22/tcp |
若是在 VirtualBox、VMware、Proxmox、雲端 VM 或公司內網環境中安裝,也要同時確認上層網路、防火牆、安全群組或 port forwarding 已經允許這些連線。
加入 GitLab CE 套件庫
GitLab 官方提供套件庫安裝腳本,可以協助把 gitlab-ce repository 加入 Ubuntu 的 APT 來源。先更新套件索引並安裝 curl:
1 | sudo apt update |
接著執行 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 successfully 與 Ready 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 主機可以在更穩定且可控的狀態下提供服務。