基本环境搭建
- 新建用户
Gogs 默认以 git 用户运行(你应该也不会想一个能修改 ssh 配置的程序以 root 用户运行吧?)。
运行 sudo adduser git 新建好 git 用户并设置密码。
然后 su - git 切换至 git 用户登录。
具体操作如下:
1 | $ sudo adduser git |
根据提示信息,输入新账户 git 密码,其他用户信息直接敲回车即可。
- 安装git
因为新创建的用户 git 没有设置管理员权限,所以我们先在 root 账户或其他管理员账户下安装 git :
1 | $ sudo apt-get update |
切换到新创建的git用户:
1 | $ su - git |
进入用户git的根目录下:
1 | $ cd ~ |
- 下载解包
我使用的是预编译的二进制安装包。需要从源码编译的话,请参考一般 Go 语言项目的编译。
数据库采用 Sqlite3 数据库,如想使用Mysql 获取其他数据库,请参考官网的安装方法。
创建gogs应用的解压目录:
1 | $ mkdir goapp |
从 官网 或从 GitHub Tags 下载当前最新的版本 v0.9.13 版,linux amd64 并解压:
1 | $ wget https://dl.gogs.io/gogs_v0.9.13_linux_amd64.zip |
进入 gogs 目录:
1 | $ cd gogs |
创建自定义配置文件目录并修改文件夹权限:
1 | $ mkdir custom |
在当前 git 用户下,如果提示没有 sudo 权限,可以先临时更新为其他用户,更改目录读写权限,改完后再切换回 git 用户:
1 | $ su root |
创建日志目录并修改文件夹权限:
1 | $ mkdir log |
- 启动gogs:
1 | $ pwd |
执行命令后,出现 Listen:http://0.0.0.0:3000 提示信息,表示 gogs 启动成功。
然后访问 http://服务器IP:3000/ 来进行安装,填写好表单之后提交就可以了。默认第一个创建的账户为管理员账户。
表单中指定了 Database Settings – Path 为数据库的存放目录。Application General Settings – Repository Root Path 为仓库文件的存放目录。
配置Nginx
在管理员账户下执行:
1 | $ sudo apt-get install nginx |
在 /etc/nginx/conf.d 目录下添加 gogsweb.conf 文件,填入如下内容:
1 | server { |
然后通过 sudo service nginx restart 重启 nginx 服务。
配置 supervisor 启动
在管理员账户下执行:
1 | $ sudo apt-get install supervisor |
在 /etc/supervisor/conf.d 目录下添加 gogsweb.conf 文件,填入如下内容:
1 | [program:gogs] |
以上的配置信息在 gogs 目录下的 Scripts 文件夹下有给出,可参考。
开启 supervisor UI 管理台
编辑 /etc/supervisor/supervisor.conf 主配置文件,修改或添加(通过apt-get的方式安装后不包含该配置) 以下内容:
1 | [inet_http_server] ; inet (TCP) server disabled by default |
port 中 *.9001 表示接受任意网络的请求,如果设置成 127.0.0.1 则只接受本地访问请求。
通过通过 sudo supervisorctl reload 重启服务。
重启之后,如果之前的配置也没有问题的话,现在在浏览器上通过域名即可浏览该站点了。
在浏览器中输入 服务器IP:9001 来访问 supervisor UI 的管理端页面。
Gogs的个性化配置
顶部导航菜单中 “帮助” 链接文字,未登录用户不显示 “帮助” 按钮:
- 目录:
gogs\templates\base\head.tmpl - 位置:
1
<a class="item" target="_blank" href="http://gogs.io/docs" rel="noreferrer">{{.i18n.Tr "help"}}</a>
- 将
标签下面的改行注释掉。
- 目录:
底部右下角显示 “官方网站” 字样,修改为 “Gogs官方网站”:
- 目录:
gogs\templates\base\footer.tmpl - 位置:
1
<a target="_blank" href="http://gogs.io">{{.i18n.Tr "website"}}</a>
- 更改为:
1
<a target="_blank" href="https://gogs.io">Gogs{{.i18n.Tr "website"}}</a>
- 目录:
首页,首页样式改版:
- 目录:
gogs\templates\home.tmpl
- 目录:
为md文件中的a标签链接添加target属性,在新页面打开
在
goapp/gogs/public/js/目录下,添加名为mdlinktarget-1.0.min.js内容如下:
1 | $(document).ready(function(){$('#file-content a[href^="http"]').each(function(){$(this).attr("target","_blank")})}); |
在项目目录 gogs\templates\base 下找到 footer.tmpl 文件,在最下面添加js引用:
1 | <script src="{{AppSubUrl}}/js/mdlinktarget-1.0.min.js"></script> |