我的 Gogs 升级篇

最近升级了服务器的物理硬盘为云硬盘,这样就可以保存我的快照了 不过要吐槽下腾讯云的快照功能没有阿里的好用 比如不能定时同步。

升级我的 Gogs

我在这里还是想给大家安利下这个开源项目,非常的好用 有兴趣的同学可以访问官网: https://gogs.io

通过解压后,下面是 gogs 的程序包:

|-- LICENSE
|-- README.md
|-- README_ZH.md
|-- custom
|-- data
|-- gogs
|-- log
|-- public
|-- scripts
`-- templates

而我们的升级,就是通过下载最新的 gogs 二进制包https://github.com/gogits/gogs/releases,把 old 的 custom/data/log 复制到新的 gogs 就行了。

启动 gogs

再启动之前有一个点需要注意,尽量不要用 root 账户启动 因为这样 gogs 会修改系统的 ssh 让我们创建一个新用户

sudo useradd git
su - git

不要忘记修改 gogs 的 app.ini 配置文件 把启动用户更换成 git

正常启动

我们可以通过下面的方式启动 gogs:

cd gogs
./gogs web

如果在启动的过程中,说没有找到 git 命令,那么证明你的服务器上面并没有安装 git 访问,所以你可以使用:

yum install git 

进行安装,安装完之后 我们直接访问 80 端口就能看到你服务了。

守护线程启动

使用上面的方式启动,如果退出了 ssh 连接 ,gogs 服务也就会被停掉,所以我们可以使用 linux 中让程序运行在守护线程中的命令:

cd gogs
nohup ./gogs web &

这个命令执行之后,会默认生成一个 nohup.out 的文件 来接受程序的日志输出。

的命令来持续的查看日志文件。

当然关于守护线程启动 gogs 的方式有很多种,官方也给出了一种方案 ,在 github 中,我找到了一个比较霸气的方案:https://github.com/gogits/gogs/issues/1903

守护线程停止

如果是普通方式启动,我们直接按住 control+c 就可以直接退出,但项目是守护线程启动的方式 不能用这种方式,我们可以使用下面的方式停止守护线程中的 gogs 服务:

lsof -i:3000 #找到占用端口的项目(我这里是 3000 )

kill 27482

用 Nginx 反向代理多项目

我们通过 nginx 监听 80 端口,使用域名的方式来响应不同的项目,在此之前 我们需要修改 gogs 的端口地址,因为默认是 80 端口

找到 gogs 文件夹中的 custom/conf/app.ini,进行编辑:

[server]
DOMAIN       = github.la
HTTP_PORT    = 80  #修改 port 端口为 3000
ROOT_URL     = http://github.la/
DISABLE_SSH  = false
SSH_PORT     = 22
OFFLINE_MODE = false

修改好之后,以守护线程的方式启动 gogs 服务。

server {
 listen  80;
 server_name  github.la;
 charset utf-8;
 access_log  /home/github.la.access.log  main;
 location / {
     proxy_pass http://127.0.0.1:3000;
 }
}