gitweb 的架設使用
(最近更新:2024-03-22)
因為有點想要脫離FAANGM的影響(詳見前文),不想要利用GitHub,又想要仿效SourceHut的方式,來用傳統的方式管理專案,但也不想要在另一個網站註冊新帳號,所以就用自架網站和租用的託管主機來安裝。目前使用以下三個工具,以Clo為案例:
- 共筆MediaWiki:簡介專案、彙整錯誤回報列表、其他相關文件也可以放進去(案例)
- 郵件論壇(mailing list, Mailman):用來討論程式使用以及回報錯誤用(案例)
- Nginx伺服器上的GitWeb:來放置、瀏覽並提供他人下載git的repo
因為考慮到其他用戶或出外時的我能夠即時通連錯誤,加上設定mailing list平臺很麻煩,還要和mail transfer agent這種郵件伺服器引擎的安裝打交道,所以使用web hosting託管提供的服務。雖然所提供的Mailman引擎的版本比較老。MediaWiki就用之前的個人維基。
但是比較麻煩的還有gitweb,雖然可以在線上瀏覽repo程式碼庫,但是設定比較麻煩,所以在此記錄下:
設定伺務器端存放 git repo 的資料夾
假設我們的軟體專案名稱是 clo,放置所有的軟體專案的目錄是 /path/to/git,則:
設定
www-data
存取,其中user是自己的帳號:chown -R user:www-data /path/to/git
創立
clo
目錄,並且建立bare
的git repogit init --bare
增加
hook
的執行指令:1
2
3
4cd /pat/to/git/clo/hooks
cp post-update.sample post-update
安裝設定 gitweb
- Debian系發行版安裝方式:
sudo apt install gitweb
- 設定檔為:
/etc/gitweb.conf
,修改如下:
$projectroot = "/path/to/git";
$feature
變數可以調整功能選項,見介紹:https://git-scm.com/docs/gitweb.conf
設定伺服器
若是要讓其他人能夠用 git clone git.example.com/src/clo
下載程式碼,我nginx
設定檔(/etc/nginx/site-available/[設定檔.conf]
)類似如下:
另外訪客可以用 git.example.com 觀看程式碼,雖然是以前風氣的陽春界面。
1 | server{ |
如何下載或上傳
- 下載方式:
git clone git.example.com/src/clo
- 上傳方式:
(1) 加入遠端庫:git remote add dest ssh://user@example.com/path/to/git/clo
(2) 更新遠端庫:commit 後,輸入git push dest main
。