Gogs简介和私有云部署

Gogs是国人用go语言开发的一个Git网页管理程序,它功能比较简单,部署也非常方便,支持多种数据库。虽然功能简单,但是基本涵盖了我们需要的各种常用的功能,本篇文章将会简单介绍一下Gogs的基本部署以及部署的时候碰到的一些问题。

本次部署还是在我的NAS上,因此不能部署比较复杂的应用,正是因为看中了Gogs的精简和高效,虽然Gitlab很受欢迎,并且群晖里面直接有套件,但是我还是觉得用不到那么多功能,并且也没有那么多的资源,所以还是用了Gogs + sqlite3,这个基本上是资源要求最少的组合了。

部署流程

首先我们要建立一个运行应用的用户,并给这个用户分配运行程序的目录和用于保存数据的目录。我们可以通过如下的命令新建一个用户:

# create new user
sudo adduser git
# add current to new user group
sudo usermod -aG git current_user

我们可以下载解压Gogs应用:

wget https://cdn.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz
x gogs_0.11.91_linux_amd64.tar.gz

解压之后我们把解压之后的gogs目录权限分配给新建的git用户:

sudo chown -R git:git gogs

之后我们通过su git切换到新的用户之后运行./gogs web就可以开启服务了,我个人将这个服务放到了Nginx后面,访问http://127.0.0.1:3000就可以进行安装了,安装过程记得默认使用git用户运行。

碰到的一些问题

最开始为了方便就么有新建用户,直接使用了当前用户,结果服务起来之后,添加公钥之后,我的ssh就登陆不上去了,这个是非常不靠谱的,因为Gogs会使用系统的ssh服务,所以相应的配置会有变化,并且authorized_key也会变化,为了安全,gogs也会禁用shell登录,这也就造成了我ssh登录不上去。

其实解决也比较简单,关掉gogs服务之后,把authorized_keys文件改成之前的状态就可以了,当然gogs还是要用单独的用户重新部署。

发表新评论