此文介紹使用gogs搭建git代碼服務(wù)器
- 下載二進制安裝包
wget https://github.com/gogs/gogs/releases/download/v0.12.3/gogs_0.12.3_linux_amd64.zip - 解壓
unzip gogs_0.12.3_linux_amd64.zip & mv gogs/ /servers/ - 安裝git
yum install git服務(wù)端和客戶端均需版本 >= 1.8.3 - 配置mysql數(shù)據(jù)庫
CREATE USER 'gogs'@'%' IDENTIFIED BY '1qaz2wsx';
FLUSH PRIVILEGES
說明
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:你將創(chuàng)建的用戶名
- host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%
- password:該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務(wù)器
- 新建數(shù)據(jù)庫 gogs
CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_general_ci; - 給gogs用戶添加數(shù)據(jù)庫gogs權(quán)限
GRANT ALL ON gogs.* TO 'gogs'@'%'
說明
GRANT privileges ON databasename.tablename TO 'username'@'host'
- privileges:用戶的操作權(quán)限,如SELECT,INSERT,UPDATE等,如果要授予所的權(quán)限則使用ALL
- databasename:數(shù)據(jù)庫名
- tablename:表名,如果要授予該用戶對所有數(shù)據(jù)庫和表的相應(yīng)操作權(quán)限則可用表示,如.*
- 為gogs設(shè)置系統(tǒng)用戶
添加系統(tǒng)用戶git[root@localhost servers]#useradd git
為git設(shè)置密碼[root@localhost servers]# passwd git
為git用戶添加gogs目錄權(quán)限[root@localhost servers]# chown -R git gogs/
切換到git用戶,并啟動gogs web服務(wù)注意一定要用git賬戶啟動
[root@localhost servers]# su git
[root@localhost servers]# cd /servers/gogs/
啟動gogs服務(wù)
[git@localhost gogs]$ ./gogs web
2020/10/12 13:48:30 [ WARN] Custom config "/servers/gogs/custom/conf/app.ini" not found. Ignore this warning if you're running for the first time
2020/10/12 13:48:30 [TRACE] Log mode: Console (Trace)
2020/10/12 13:48:30 [ INFO] Gogs 0.12.3
2020/10/12 13:48:30 [TRACE] Work directory: /servers/gogs
2020/10/12 13:48:30 [TRACE] Custom path: /servers/gogs/custom
2020/10/12 13:48:30 [TRACE] Custom config: /servers/gogs/custom/conf/app.ini
2020/10/12 13:48:30 [TRACE] Log path: /servers/gogs/log
2020/10/12 13:48:30 [TRACE] Build time: 2020-10-07 03:03:48 UTC
2020/10/12 13:48:30 [TRACE] Build commit: f0e3cd90f8d7695960eeef2e4e54b2e717302f6c
2020/10/12 13:48:30 [ INFO] Run mode: Development
2020/10/12 13:48:31 [ INFO] Listen on http://0.0.0.0:3000
- 瀏覽器訪問 http://ip:3000/install
插播個問題,我這里centos開啟的防火墻,查看防火墻狀態(tài)
[git@localhost gogs]$ systemctl status firewalld
查看所有打開的端口:[git@localhost gogs]$ firewall-cmd --zone=public --list-ports
添加3000端口firewall-cmd --zone=public --add-port=3000/tcp --permanent (--permanent永久生效,沒有此參數(shù)重啟后失效)
重新載入firewall-cmd --reload然后就可以訪問了,打開如下圖所示
配置1.png
配置2.png
image.png
配置好以上信息之后,點擊立即安裝,gogs就搭建完成了
守護進程
安裝完成gogs 現(xiàn)在有個問題,就是你如果關(guān)閉當(dāng)前 shell,Gogs 服務(wù)也對應(yīng)關(guān)閉了;修改配置 /servers/gogs/script/init/centos/gogs
[git@localhost gogs]$ vim scripts/init/centos/gogs
# Default values
NAME=gogs
GOGS_HOME=/servers/gogs
GOGS_PATH=${GOGS_HOME}/$NAME
GOGS_USER=git
SERVICENAME="Gogs"
LOCKFILE=/var/lock/subsys/gogs
LOGPATH=${GOGS_HOME}/log
LOGFILE=${LOGPATH}/gogs.log
RETVAL=0
我們需要確保以下兩項配置是正確的:
- GOGS_HOME 指向你 Gogs 的目錄,我這里是/servers/gogs
- GOGS_USER 指向你運行 Gogs 所用的用戶,這個用戶一定要存在且有相關(guān)權(quán)限,我這里是git
然后將該文件拷貝到系統(tǒng)目錄,并為其增加相關(guān)權(quán)限
sudo cp /servers/gogs/scripts/init/centos/gogs /etc/init.d/
sudo chmod +x /etc/init.d/gogs
最后只需要運行以下命令就行了:
sudo service gogs start
sudo service gogs stop
sudo service gogs restart
然后就可以用git了
http://10.1.1.109:3000/


