Gogs 是運行本地 Git 服務器最簡單的方法(以下是設置方法)

已發表: 2023-01-03
藍色背景上的 Gogs 標誌。
戈格斯

不想將代碼推送到託管的 Git 存儲庫? 然後在內部運行您自己的 Git 服務器。 Gogs 是最簡單的方法。 以下是設置方法。

目錄

雲託管存儲庫的問題
什麼是 Gogs?
如何安裝 Gogs
Gogs 快速瀏覽
最簡單的 Git 服務器——沒有之一

雲託管存儲庫的問題

毫無疑問,Git 是卓越的版本控制系統。 即使對於單個開發人員的項目,Git 也因其版本控制功能而提供價值和好處。 對於多開發者項目,Git 帶來了完全不同的維度。 通過中央遠程存儲庫,Git 實現了協作功能,這將改變您的開發團隊查看版本控制的方式。

GitHub 是什麼,它的用途是什麼?
相關什麼是 GitHub,它的用途是什麼?

這就是 GitHub、GitLab 和 BitBucket 等服務存在的原因,也是它們看到如此普及和增長的原因。 僅 GitHub 就有超過 2 億個存儲庫。 但云託管存儲庫並不適合所有人。 他們中的大多數負責託管私人存儲庫。 其中一些對免費帳戶施加存儲限制、用戶限製或數據傳輸限制。

即使您的使用情況和團隊規模符合免費帳戶的限制,或者即使您願意為商業許可證付費,您也可能不願意將代碼庫存儲在雲中。

另一種方法是在您自己的網絡上本地託管您自己的 Git 服務器,或者在您自己的私有云中私下訪問。 設置一個 Git 服務器,該服務器提供具有 GitHub 和朋友大受歡迎的外觀、感覺和選項的 Web 界面,過去需要一定程度的技術技能。 這就是 Gogs 的用武之地。

什麼是 Gogs?

Gogs 是一個相對較新的項目,用 Go 編寫,它提供了一個易於安裝但功能齊全的 Git 實例。 團隊規模、存儲空間或其他任何方面都沒有限制。

即使您是業餘程序員,使用 Gogs 作為本地網絡上的 Git 服務也可以讓您在遠離開發機器的地方存儲代碼副本。 當您或其他人想要在不同的或新的計算機上工作時,您只需從您的 Gogs 服務器克隆一個存儲庫,就像從 GitHub 上一樣。

如果你打算經常使用 Gogs,你可能會發現將它添加到運行它的計算機的啟動應用程序中會很方便。

相關:如何使用 systemd 在啟動時運行 Linux 程序

如何安裝 Gogs

要安裝 Gogs,您需要下載適當的存檔文件,解壓縮,然後運行主二進製文件。 你填寫一些表格,Gogs 初始化你的存儲庫並將你添加為管理員用戶。 然後你可以瀏覽到你的 Gogs 實例並添加用戶和創建存儲庫。

Gogs 使用數據庫作為後端存儲。 它支持 MySQL、MariaDB、PostgreSQL 和 TiDB。 如果你想使用這些強大的數據庫引擎之一,你必須在安裝 Gogs 之前自己找到並安裝它。 對於較小的團隊,您可以使用 SQLite3。 如果您選擇 SQLite3,它會為您安裝。 當然,您還需要安裝git

下載適當的二進製文件。

  • 對於大多數現代 Linux 發行版,請下載“Linux amd64”文件。
  • 如果您使用的是 32 位版本的 Linux,請下載“Linux 386”文件。
  • 如果您要安裝到 Raspberry Pi 2 或更早版本,請下載“Linux armv7”文件。
  • 如果您要安裝到 Raspberry Pi 3、3+ 或更高版本,請下載“Linux armv8”文件。
  • 如果您使用的是 Intel Mac,請下載“macOS amd64”文件。
  • 對於 Apple Silicon Mac,下載“macOS arm64”文件。

我們下載了“Linux amd64”ZIP 文件,用於安裝到裝有 Ubuntu 22.10 的 64 位計算機上。 該文件很小——只有大約 25MB——所以如果下載速度很快,請不要感到驚訝。 這很正常。

在您的文件系統中找到該文件。 如果您保留了瀏覽器的默認下載位置,該文件可能位於您的“~/Downloads”目錄中。 右鍵單擊它並從上下文菜單中選擇“提取”。 某些文件瀏覽器可能會改用“Extract Here”。

從 ZIP 文件中提取一個目錄。 它以下載的文件命名。 在我們的例子中,它被稱為“gogs_0.11.91_linux_amd64”。

解壓後的目錄,以下載的文件命名

雙擊提取的目錄,您將看到另一個名為“gogs”的目錄。

gogs目錄

雙擊“gogs”目錄。 您將看到 Gogs 文件和目錄。 右鍵單擊文件瀏覽器窗口,然後從上下文菜單中選擇“在終端中打開”。

要啟動您的 Gogs 實例,請鍵入以下命令:

./gogs 網站

啟動 gogs Git 服務器

Gogs 啟動,並告訴您它正在偵聽端口 3000。

通過打開網絡瀏覽器並導航到運行 Gogs 的計算機的 IP 地址或網絡名稱,連接到您的 Gogs 服務器。 在 IP 地址或網絡名稱後添加“:3000”。 不要包含任何空格。

如果你在運行 Gogs 的計算機上瀏覽,你可以使用“localhost”作為機器名,比如“localhost:3000”。 我們的 Gogs 計算機稱為“ubuntu-22-10.local”,因此從同一網絡上的不同計算機,我們需要瀏覽到的地址是“ubuntu-22-10.local:3000”,包括端口號。

第一次執行此操作時,您將看到捕獲一些初始設置信息的表單。

Gogs 配置屏幕的數據庫選擇菜單部分

我們需要做的第一件事是從“數據庫類型”下拉菜單中選擇“SQLite3”,然後在“運行用戶”字段中輸入您的用戶名。

Gogs 配置屏幕的“運行用戶”字段

如果您想設置電子郵件通知,您需要配置一些額外的步驟。 您需要通過您有權使用的簡單郵件傳輸協議 (SMTP) 郵件服務器來中繼電子郵件。 如果您是 Google Gmail 用戶,則可以使用 Google 的 Gmail SMTP 服務器。

這將需要在郵件服務器上進行設置,以允許您的帳戶接受和轉發電子郵件。 這些設置因郵件服務器而異。

Gogs 要求您輸入有關電子郵件服務器的以下信息。

  • SMTP 主機:電子郵件服務器的地址和端口。 在我們的示例中,這是位於 smtp.gmail.com:587 的 Google SMTP 服務器。
  • 發件人:發送電子郵件的電子郵件地址。 對於 Gmail,這應該是您正在使用的帳戶的 Gmail 電子郵件地址。
  • 發件人電子郵件:必須與上述相同。 這是 Gogs 將用來與 SMTP 服務器通信的電子郵件帳戶 ID。
  • 發件人密碼:這不是Gmail 帳戶的密碼。 這是您在配置帳戶以允許應用程序代表您發送電子郵件時從 Google 獲得的應用程序專用密碼
  • 啟用註冊確認:要讓 Gogs 驗證用戶的電子郵件,請選中此復選框。 新用戶將收到一封包含鏈接的電子郵件。 他們必須單擊 以證明電子郵件地址是真實的並且在他們的控制之下。
  • 啟用郵件通知:勾選此復選框以允許來自 Gogs 的電子郵件通知。

Gogs 配置屏幕的“電子郵件服務設置”部分

當然,如果你不想被郵件纏著,你可以跳過所有的郵件設置。

當您準備好繼續時,單擊藍色的“安裝 Gogs”按鈕。 Gogs 編寫一個配置文件,初始化數據庫存儲,並啟動你的 Git 實例。

您會看到 Gogs 主頁。

Gogs 主頁

您創建的第一個用戶帳戶將自動獲得管理員權限。 單擊“註冊”鏈接。

在 Gogs 服務器上創建一個帳戶

使用您的帳戶名、此帳戶的密碼(輸入兩次)和驗證碼中的數字填寫“註冊”表格。 單擊綠色的“創建新帳戶”按鈕。 您會看到“登錄”頁面。

登錄 Gogs

輸入您的帳戶名和密碼,然後單擊綠色的“登錄”按鈕。

Gogs 快速瀏覽

如果您完全熟悉任何其他 Web 訪問的 Git 實例,您將很容易找到繞過 Gogs 的方法。

創建任何存儲庫之前的 Gogs 儀表板

Gogs 的“儀表板”視圖有點稀疏,直到您有一個可以使用的存儲庫。 點擊藍色的“+”按鈕,完成“New Repository”表格。

它要求提供存儲庫名稱(私有的還是公共的)和描述。

通過提供名稱和其他詳細信息創建新存儲庫

接下來的三個字段從模板創建文件。

控制從模板創建默認文件的三個字段

  • “.gitignore”菜單允許您為“.gitignore”文件選擇一個模板,該文件根據所選語言配置了設置。 您可以從此菜單中做出多個選擇,以滿足使用混合開發技術的存儲庫。
  • “許可證”菜單可讓您從綜合列表中選擇一個許可證。
  • “Readme”菜單只有一個選項,即默認的“README.md”文件。

勾選“Initialise This Repository With Selected Files and Template”複選框,然後單擊綠色的“Create Repository”按鈕。

一個新創建的存儲庫,其中包含三個自動生成的文件

將為您顯示新的存儲庫。 Gogs 已經為我們創建了三個標准文件,並使用提交消息“Initial commit”將它們添加到存儲庫中。

我們將存儲庫克隆到我們的​​計算機,添加一個名為“ack.c”的文件,提交它,並將其推送到我們的遠程 Gogs 存儲庫。 所有這些都是使用標準 Git 命令完成的。

添加文件到本地倉庫並推送到 Gogs

正如預期的那樣,我們的新文件出現在我們的 Gogs 存儲庫中。

已成功推送新文件的存儲庫

單擊文件會向我們顯示單個文件的內容。 為您解釋 Markdown 文件,包括標題、鏈接、列表和所有其他 Markdown 功能。 “README.md”文件通常是用 Markdown 編寫的。

自動生成的 README.md 文件的內容

通過點擊“編輯”鉛筆圖標,我們可以直接編輯我們的“README.md”文件。 我們添加了更多文本,使用 Markdown 標籤插入超鏈接和斜體,並提交了我們的更改。 全部來自 Gogs。

更新後的 README.md 文件

回到我們的存儲庫視圖,顯示我們更新的“README.md”文件,文件列表中的“README.md”條目顯示新的提交消息和更新時間。

更新後的 README.md 文件,包含新的提交消息和時間戳

最簡單的 Git 服務器——沒有之一

Gogs是絕對的勝利。 它完美地融合了功能性和簡潔性。

開箱即用,它將滿足大多數愛好者或小型開發團隊的需求。 它的一些高級選項是通過編輯配置文件激活的,默認情況下,該文件位於“~/Downloads/gogs_0.12.10_linux_amd64/gogs/custom/conf/app.ini”。 請注意,該路徑將反映您正在使用的 Gogs 版本。

可以從管理面板執行一般系統管理,該面板位於Your Profile > Admin panel

儘管 Gogs 文檔簡短到簡潔的地步,但這確實意味著很容易找到您要查找的內容,並且描述足夠詳細,您可以遵循。

如果您對最終受他人控制的雲託管存儲庫持謹慎態度,請考慮在本地使用 Gogs。 您不會失去功能,但您將獲得控制權和有保障的隱私。

相關:如何檢查和更新你的 Git 版本