Gitea 支援在 Windows 系統上安裝和使用。Gitea 本身作為一個單體應用程式,即點即用,如需長期駐留作為後臺服務並開機執行就要依靠 Windows 服務工具 sc.exe。
通過本文,你將學習到以下內容:
本文所採用的伺服器設定如下,建議記憶體最少在 4GB 以上。OS 版本可以是 Windows 7/8/8.1/10/11 以及 Server 2012/2016/2019/2022,本文優先使用 Windows Server 2022 LTSC,其他系統版本操作類似。
OS | Version | CPU | RAM |
---|---|---|---|
Windows Server | LTSC 2022 |
4 Core | 4GB |
Gitea 執行各項 Git 操作依賴的是背後的 git
命令列工具,因此在 Windows 平臺上你需要安裝最新的 Git for Windows
下載安裝包:https://gitforwindows.org
Gitea 支援的資料庫: SQLite、PostgreSQL、MySQL(MariaDB)、MSSQL
如果無特殊需求(例如叢集化、高可用),建議一開始使用內建的 SQLite 作為資料庫搭建輕量級的 Gitea 伺服器,資料直接儲存在檔案中,備份遷移都更加方便。
Gitea 官網提供了預編譯的 Windows 平臺二進位制程式。
下載預編譯的二進位制程式:https://dl.gitea.io/gitea/
進入下載頁面後,選擇適合你的 Windows 平臺的二進位制程式。
對於 Windows 而言, windows-4.0-amd64
適用於 64 位元運算系統,windows-4.0-386
即 32 位元運算系統。
另外,帶有 gogit-windows
名字的 Windows 版本程式使用了 gogit 用於解決在一部分在老舊版本的 Windows 上呼叫 git 後端導致的效能問題,但 gogit 本身也依賴後端的 git 程式,同時自身功能也有侷限。換句話說,如果你的 Gitea 執行良好,效能不錯,就不必嘗試這個版本了。
一般使用 Git for Windows 安裝包一步步安裝即可。當然,你也要確保 git 命令始終在 Windows 環境變數 PATH 中,檢查辦法是通過終端執行 git 命令。
PS C:\Users\Administrator> git --version
git version 2.38.0.windows.1
看到 git version 2.38.0.windows.1
說明程式呼叫成功,列印出了當前版本。
如果出現沒有找到 Git 命令,那麼開啟,系統設定 - 環境變數 - 系統變數 - Path,手動新增 Git 程式目錄,例如 C:\Program Files\Git\cmd
。
Gitea 的安裝路徑可以自定義,比如使用 C:\gitea
。將前面準備好的二進位制程式 (例如 gitea-1.17.2-windows-4.0-amd64.exe
) 重新命名並複製到 C:\gitea\gitea.exe
。雙擊可執行程式啟動 Gitea。
當你第一次執行 Gitea 時,你需要開啟 http://localhost:3000
根據指引完成 Gitea 的初始化安裝。這個步驟會建立組態檔並儲存到 C:\gitea\custom\conf\app.ini
,稍後我們在註冊 Windows 服務時會用到。
在 Windows 中 Gitea 的 RUN_USER (以使用者名稱執行)並不與 Windows 系統的賬戶系統關聯(這一點與 Linux 不同),因此你可以在此處填寫任意使用者名稱,推薦填寫 git
。
最後,關閉 gitea.exe
視窗即結束 Gitea 主程式,也可以使用 Ctrl+C 結束。
sc create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini\""
請注意,
start=
和binPath=
等號後面有空格
sc start gitea
services.msc
並啟動 Windows 服務管理工具,可以找到你剛新建的 Gitea 服務,單機右鍵可以選擇 啟用、停止 或更改 屬性。如需刪除服務並重新建立,則使用 sc delete
命令。
sc delete gitea
一般情況下,Windows 系統無需額外安裝 OpenSSH 服務。Gitea 內建了一個輕量級的 Go SSH 伺服器,安裝好之後可以通過修改組態檔手動開啟。
編輯 C:\gitea\custom\conf\app.ini
, 找到 [server]
條目新增 START_SSH_SERVER = true
用於啟動內建的 SSH 服務。
[server]
START_SSH_SERVER = true
重啟 Gitea 服務使之生效。
如果你的 Windows 系統禁止所有入站連線,你將無法通過伺服器的外部 IP 地址存取 Gitea 範例。
解決辦法:
C:\gitea\gitea.exe
並新增,這將允許 Gitea 通過防火牆接受入站連線。