在 Synology NAS 中搭建 Git Server


群暉 Synology NAS 可以搭建 Git Server,作為日常遠端 Git 倉庫使用,配合公網訪問能力,為個人或團隊的代碼及文件提供強大的版本管理能力。

下面就詳細介紹一下如何在 Synology NAS 中進行 Git Server 的搭建。

首先我們需要在群暉的 DSM 的套件中心里安裝 Git Server 應用。

 

 

安裝完成后,我們進入 控制面板 ⇒ 共享文件,在其中創建一個用於存放 Git 倉庫的目錄,

記住自己創建的 Git 倉庫存放目錄所在的卷位置(如圖中我創建在了 Volume2 下)。

 

 

創建完成后,我們進入 控制面板 ⇒ 用戶 ⇒ 高級 中啟用 “用戶家服務”。

 

 

Git Server 需要通過 SSH 進行訪問,進入 控制面板 ⇒ 終端及 SNMP 中勾選 “啟用 SSH 服務”。

 

 

完成后我們開始創建供遠端 Git 用戶訪問時使用的用戶賬戶,

在 控制面板 ⇒ 用戶 中創建一個名為 gitter 的用戶,

gitter 用戶隸屬於 users 組即可,不用對其進行任何目錄權限的配置,保持默認即可。

 

 

完成后我們打開安裝完成的 Git Server 套件,在其中勾選 gitter 用戶,以指定該用戶具備通過 Git 服務訪問 Git 倉庫的能力。

 

 

至此,在 DMS 中的配置即告完成,接下來的配置都需要在 NAS 的控制台中進行。

由於 Synology NAS 的 DSM 中沒有提供操作控制台的功能,因此我們只能通過 SSH 的方式訪問 NAS 的控制台,群暉限制登錄 SSH 的賬戶必須擁有管理員權限,因此我們需要提前准備一個管理員賬號,直接使用 admin 賬戶或者新建一個管理員賬戶均可。

使用 Windows Terminal SSH 到 NAS (也可使用其他任何方式連接),

按提示輸入密碼通過后即可連接成功。

ssh admin@ip -p port

# 若端口號為 22 則可忽略 -p 參數及端口號的填寫
# ssh admin@ip

 

進入到之前創建的 Git 倉庫存放目錄下(即上文中創建共享目錄步驟中新建的文件夾 git)。

cd /volume2/git

 

在該目錄下創建一個新文件夾作為我們的 Git 倉庫使用,我們創建一個名為 repo 的目錄。

mkdir repo

 

進入該新創建的文件夾,執行 Git 倉庫初始化。

cd repo
git init --bare

 

接下來是最重要的一步,配置目錄權限!

我們為了讓上文中新建的 gitter 用戶能夠向 Git 倉庫中推送和拉取文件,需要讓 gitter 用戶擁有對整個 Git 倉庫存放目錄及其內所有子目錄的讀寫執行權限,否則通過 gitter 進行的所有操作都將失敗。

那么在上文中我們創建的存放 Git 倉庫的目錄為 git,創建的 Git 倉庫目錄為 repo,我們若需要 gitter 能夠對 repo 倉庫內進行推拉文件操作就需要將 git 以及 repo 和其下所有文件的讀寫執行訪問權限賦予 gitter。

通過以下命令進行目錄有所者以及目錄權限的配置。

sudo chown -R gitter:users /volume2/git
sudo chmod -R 775 /volume2/git

 

都配置完成后,我們現在可以在本地計算機上對 NAS 上的倉庫進行克隆及其他操作了!

git clone ssh://gitter@ip:port/volume2/git/repo

# 若端口為 22 則可忽略 port 在所位置的內容填寫
# git clone ssh://gitter@ip:/volume2/git/repo 

 

這里想要再說明一下,我們在 NAS 上搭建 Git Server 時,對於遠端用戶的管理是一個我們需要考慮的問題。 有兩種方式可供我們選擇:

1. 為每一個需要通過遠端訪問 Git Server 的用戶配置一個賬戶,個人通過各自賬戶進行訪問;

2. 創建一個公用的用戶,所有人使用同一個賬戶進行訪問; 第一種方式在人少的情況下沒什么問題,可以根據需要為不同的倉庫目錄分配不用的權限,但在用戶數量多起來之后,維護是一個非常麻煩的事情。 第二種方式雖然在限制倉庫訪問權限方面缺失靈活的能力,但勝在好管理好維護,本身 Git 進行提交和推送的時候也是通過 Git username 和 email 信息進行提交人標記的,因此使用同一個賬戶不會影響倉庫內容的管理,並且通過配置 SSH 公鑰訪問,也可以更安全的限制遠端訪問的設備,作為比較小的團隊采用這種方式個人感覺比較合適(本人就選擇的第二種)。

 

通過配置 SSH 公鑰方式進行訪問的方法,待過些時日再更新上來,能啃英文的朋友也可以直接參考以下文章的內容。

Running a Git Server on a Synology NAS · William Spies

Synology DS213J 群暉NAS git server架設方法

  

實不相瞞,就這個在群暉 NAS 上搭建個 Git Server,真的是讓我費了九牛二虎之力,前前后后算下來折騰了可能有好幾天,實在讓人心力憔悴。

歸根結底還是自己相關知識儲備太少,整個過程完全依賴網上查找各種資料,按照別人提供的步驟一點一點進行配置加以完成,所以在很多查找到的教程、說明都明顯缺失步驟,或者內容描述不詳細不准確的情況下,屢屢失敗,好在經過一遍遍試錯,最終得以找到准確可行的配置方法,記錄下來供自己以后以及其他遇到同樣問題的朋友參考。

感謝上述兩文的作者,融合了你們的經驗才使得我最終配置成功,願知識的分享可以幫助更多的人。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM