gogs簡介
Gogs的目標是打造一個最簡單、最快速和最輕松的方式搭建自助Git服務。使用Go語言開發使得Gogs能夠通過獨立的二進制分發,並且支持Go語言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
功能特性
- 支持活動時間線
- 支持 SSH 以及 HTTP/HTTPS 協議
- 支持 SMTP、LDAP 和反向代理的用戶認證
- 支持反向代理子路徑
- 支持用戶、組織和倉庫管理系統
- 支持添加和刪除倉庫協作者
- 支持倉庫和組織級別 Web 鈎子(包括 Slack 集成)
- 支持倉庫 Git 鈎子和部署密鑰
- 支持倉庫工單(Issue)、合並請求(Pull Request)、Wiki 以及保護分支
- 支持遷移和鏡像倉庫以及它的 Wiki
- 支持在線編輯倉庫文件和 Wiki
- 支持自定義源的 Gravatar 和 Federated Avatar
- 支持 Jupyter Notebook
- 支持郵件服務
- 支持后台管理面板
- 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 TiDB(實驗性支持) 數據庫
- 支持多語言本地化(22 種語言)
部署環境
拉取鏡像
通過docker命令拉取gogs鏡像
使用命令操作如下:
docker pull gogs/gogs
命令行操作如下所示:
新建gogs目錄
在/home/software下新建文件夾gogs
- 進入/home/software路徑下新建,命令如下:
mkdir gogs
- 在根目錄下直接新建,命令如下:
mkdir home/software/gogs
- 創建多級目錄,命令如下:
mkdir -p software/gogs
開放服務器端口
配置端口在服務器的安全組中進行配置,開放的端口,用於gogs/docker服務端口進行映射。
啟動服務
啟動服務命令如下:
docker run --name=gogs -p 8234:22 -p 8235:3000 -v /home/software/gogs:/data gogs/gogs
參數說明:
- -p: 端口映射,將容器的22端口映射到宿主機的8234端口,將容器的3000端口映射到宿主機的8235端口
- -name: 指定容器名稱
- -v: 數據卷掛載, 用於將容器和數據分離
啟動操作如下所示:
安裝配置
通過地址訪問,格式為:http://服務器ip+映射端口/install,
如:http://101.111.22.31:8235/install,
訪問進入如下頁面,進行配置數據:
-
配置數據庫
數據庫類型選擇為SQLite3,免配置,直接使用。
-
基本信息配置
基本信息中,配置信息如下所示:
- 應用名稱:支持自定義,可維護成自己的專屬名稱
- 倉庫根目錄:默認即可
- 運行系統用戶:也默認即可
- 域名:服務器的公網地址,如:http://101.111.22.31
- SSH端口號:服務器的映射端口,如:8234
- HTTP端口:監聽端口默認為3000
- 應用URL:公網地址+映射端口,如:http://101.111.22.31:8235
- 日志路徑:默認即可
- 可選配置
可選配置,看個人所需,其他暫時不配置,配置管理員賬號即可。
gogs使用
配置完成后,訪問地址,進入到登錄頁,如下所示:
注冊&登錄
在之前配置基礎信息時,沒配置管理員賬號的話,在登錄頁,注冊個賬號便可以登錄;如果有配置管理員賬號,使用配置的賬號直接登錄即可。注冊頁面如下:
控制面板
控制面板界面如下所示:
- 左側:個人的操作記錄,比如:提交代碼,創建合並請求,請求關閉...
- 右側:我的倉庫:屬於自己的倉庫,擁有管理權限
- 右側:參與協作的倉庫:參與的倉庫,沒有所有權,權限按倉庫所屬人進行分配
倉庫管理
倉庫管理界面如下所示:
在該頁面,可以操作如下設置:
- 基本設置,可配置倉庫名稱、可見性等
- 管理協作者,添加倉庫的協作者,一起維護倉庫內容
- 管理分支,配置默認分支和保護分支
- 管理Web鈎子,Gogs上發生指定事件時對指定 URL 發送 POST 通知
- 管理Git鈎子
- 管理部署密鑰
- 轉移倉庫所有權
工單管理
工單管理界面如下所示:
在該頁面,可以查看自己的以及指派給自己的工單,也可以查看工單狀態,便捷管理。
合並請求
合並請求界面如下所示:
在該頁面,可以查看合並請求的狀態。
創建倉庫
創建倉庫界面如下所示:
點擊面板中的+號,選擇創建倉庫,即可進入到該頁面。具體創建自己操作一波就可以了,很簡單。
代碼操作
- 克隆代碼
使用如下命令操作:
git clone http://101.111.22.31:8235/yihuqingjiu/Auto_Test.git
截圖如下:
- 提交代碼
提交代碼的操作,可以祥見這篇博文:Git基本操作命令合集,這里就不贅述了。提交代碼后,可以在面板中查看,如下所示:
問題總結
-
配置gogs基礎信息時,想使用本地的Mysql數據庫,但一直提示權限錯誤,沒能解決,最終還是使用了免配置的sqlite3。
-
想使用ssh方式拉取代碼,在服務器端,生成的公鑰,一直提示失敗,也沒能解決,報錯提示信息:invalid key format: illegal base64 data at input byte 171。
以上就是今天分享的內容,如有博友遇到如上2個問題,望告知一二,祝大家雙節快樂。