gogs是一款類似github的開源檔案/代碼管理系統(基於Git),它的搭建極為簡單,可以用來搭建個人的私人倉庫
安裝Gogs之前先安裝好mysql,nginx(nginx用作反向 Proxy)
建立git使用者
gogs預設以git使用者運行
adduser git
su git
cd 到git使用者主目錄 /home/git 建立.ssh檔案夾 使用權限設定為0755
安裝Go
- Go語言官網 可以擷取最新的二進位安裝包
wget https://storage.googleapis.com/golang/go1.5.2.linux-386.tar.gztar xzvf go1.5.2.linux-386.tar.gzmv go /usr/local/lib/go
安裝Go語言運行環境
Gogs由Go語言編寫,運行時需要安裝Golang運行環境
如果系統中其他程式並不需要運行Go語言程式,可以只為上文建立的git使用者配置運行環境,也可以選擇配置全系統所有使用者的Go語言運行環境
- 配置環境變數,切換到使用者git,並只為該使用者配置Go運行環境
su gitcd ~
- 寫入環境變數
vim /etc/profile
最後一行加入
export PATH=$PATH:/usr/local/lib/go/bin
- 使環境變數生效
source /etc/profile
Go語言運行環境就安裝完成了
- 測試Golang是否安裝成功
go env
安裝 Gogs
- 下載先行編譯的二進位安裝包
安裝包各版本地址:https://gogs.io/docs/installation/install_from_binary
su gitcd ~wget -c http://7d9nal.com2.z0.glb.qiniucdn.com/gogs_v0.8.10_linux_386.tar.gztar zxf gogs_v0.8.10_linux_386.tar.gz
- 建立資料庫
/home/git/gogs/scripts/mysql.sql是資料庫初始設定檔案
提示:資料庫必須支援InnoDB引擎
cd gogsmysql -u root -p < scripts/mysql.sql #(需輸入密碼)即可初始化好資料庫
- 登入 MySQL 建立一個新使用者 gogs,並將資料庫 gogs 的所有許可權都賦予該使用者
mysql -u root -pgrant all privileges on gogs.* to 'gogs'@'localhost' identified by '密碼';flush privileges;exit;
- 編輯 gogs/scripts/supervisor/gogs 修改如下
directory=/home/git/gogs/command=/home/git/gogs/gogs web
大家修改時根據實際路徑
nginx 反向 Proxy
- http
server { server_name 網域名稱或IP; listen 80; location / { # 如果你希望通過子路徑訪問,此處修改為子路徑,注意以 / 開頭並以 / 結束 proxy_pass http://127.0.0.1:3000/; }}
- https
server { listen 443 ssl; server_name 網域名稱或IP; ssl_certificate /path/to/gogs.io.unified.crt; ssl_certificate_key /path/to/gogs.io-decrypted.key; location / { proxy_set_header X-Real-IP $remote_addr; proxy_pass http://localhost:3000 $request_uri; }}
配置詳解
設定檔位於 Gogs 目錄的 custom/conf/app.ini
,是 INI 格式的文字檔。詳細的配置解釋和預設值請參考 官方文檔 ,其中關鍵的配置大概是下面這些。
RUN_USER
預設是 git
,指定 Gogs 以哪個使用者運行
ROOT
所有倉庫的儲存根路徑
PROTOCOL
如果你使用 nginx 反代的話請使用 http
,如果直接裸跑對外服務的話隨意
DOMAIN
網域名稱。會影響 SSH clone 地址
ROOT_URL
完整的根路徑,會影響訪問時頁面上連結的指向,以及 HTTP clone 的地址
HTTP_ADDR
監聽地址,使用 nginx 的話建議 127.0.0.1
,否則 0.0.0.0
也可以
HTTP_PORT
監聽連接埠,預設 3000
INSTALL_LOCK
鎖定安裝頁面
- Mailer 相關的選項
其中,Mailer 可以使用 Mailgun 的免費郵件發送服務,將 Mailgun 的 SMTP 配置填入到配置中就好。
運行gogs
- 手動開啟gogs
su gitcd ~/gogs./gogs web
- 加入服務運行
將 /home/git/gogs/scripts/init/debian/gogs複製到/etc/init.d中
root使用者下 service gogs stop|start|restart|reload|status
centos安裝:https://www.jianshu.com/p/c9ca7c16bd1f