安裝過程分為這些步驟:
- 新建用戶;
- 下載源碼編譯 / 下載預編譯二進制打包;
- 運行安裝;
- 配置調整;
- 配置 nginx 反向代理;
- 保持服務運行;
注意,這里默認你已經安裝好了 MySQL 服務器和 nginx,如果沒有,請自行查找如何安裝和配置這些依賴。當然你也可以使用 SQLite 數據庫。
新建用戶
Gogs 默認以 git 用戶運行(你應該也不會想一個能修改 ssh 配置的程序以 root 用戶運行吧?)。
運行 sudo adduser git
新建好 git 用戶。
su git
以 git 用戶登錄,到 git 用戶的主目錄中新建好 .ssh
文件夾。
下載解包
我使用的是預編譯的二進制包。需要從源碼編譯的話,請參考一般 Go 語言項目的編譯。下載后解包到你喜歡的地方,例如 /usr/share/gogs/
或者 /home/git/gogs/
。文件夾的內容如下。
$ ls /home/git/gogs/ custom data gogs LICENSE log public README.md README_ZH.md scripts templates
運行安裝
首先建立好數據庫。
在安裝完mysql之后,我們還需要創建一個數據庫,將之取名為gogs, CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES ON gogs.* TO ‘root’@‘localhost’; FLUSH PRIVILEGES;
在 Gogs 目錄的 scripts/mysql.sql
文件是數據庫初始化文件。執行 mysql -u root -p < scripts/mysql.sql
(需要輸入密碼)即可初始化好數據庫。
然后登錄 MySQL 創建一個新用戶 gogs,並將數據庫 gogs
的所有權限都賦予該用戶。
$ mysql -u root -p > # (輸入密碼) > create user 'gogs'@'localhost' identified by '密碼'; > grant all privileges on gogs.* to 'gogs'@'localhost'; > flush privileges; > exit;
運行 gogs web
把 Gogs 運行起來,然后訪問 http://服務器IP:3000/
來進行安裝,填寫好表單之后提交就可以了。
需要注意的是, 0.6.9.0903 Beta
版本有個 bug,允許在關閉注冊的情況下不添加管理員,這樣安裝完成之后將沒有任何用戶可以登錄。所以請務必在安裝界面指定一個管理員帳號。
配置調整
配置文件位於 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 配置填入到配置中就好。
nginx 反代
在 /etc/nginx/sites-available
中新建一個文件,把以下內容寫入文件中。
server { server_name 域名或IP; listen 80; # 或者 443,如果你使用 HTTPS 的話 # ssl on; 是否啟用加密連接 # 如果你使用 HTTPS,還需要填寫 ssl_certificate 和 ssl_certificate_key location / { # 如果你希望通過子路徑訪問,此處修改為子路徑,注意以 / 開頭並以 / 結束 proxy_pass http://127.0.0.1:3000/; } }
然后進入 /etc/nginx/sites-enabled
中,執行 ln -s ../sites-available/配置文件名
啟用這個配置文件。
最后重啟 nginx 就好了,Ubuntu 下是 sudo service nginx restart
。
服務腳本
此處的服務腳本是針對 Debian 系的 init 腳本。
其他地方處理辦法:
gogs提供多重方式進行安裝,比較常用的有兩種。一個是二進制安裝,另一個是通過源代碼安裝。
然后切換到解壓得到的目錄之后,直接運行 ./gogs web
即可在服務器上運行gogs服務了。
./gogs -h 得到更多的命令行參數說明。
nohup gogs/gogs web > log/gogs_web.log 2>&1 &
啟動gogs服務之后,首次運行會讓你進行相關的配置。
主要分為3個配置項,
一是數據庫的配置,包括數據庫地址及密碼;
二是服務的應用配置,包括域名,路徑等等;
三是可選郵件服務和管理員配置。
配置文件手冊 :https://gogs.io/docs/advanced/configuration_cheat_sheet