Gogs搭建总结
Gogs搭建总结
一、Gogs搭建–Linux
1.1 下载安装包
根据对应的系统版本类型选择下载。
0.12.6 @ 2022-03-19
| 系统名称 | 系统类型 | SQLite | PAM | 下载 (GitHub) |
|---|---|---|---|---|
| Linux | 386 | ✅ | ✅ | HTTPS: ZIP | TAR.GZ |
| Linux | amd64 | ✅ | ✅ | HTTPS: ZIP | TAR.GZ |
| Linux | armv7 | ✅ | ✅ | HTTPS: ZIP | TAR.GZ |
| Linux | armv8 | ✅ | ✅ | HTTPS: ZIP | TAR.GZ |
| Windows | amd64 | ✅ | ❌ | HTTPS: ZIP | ZIP w/ mws |
| macOS | amd64 | ✅ | ❌ | HTTPS: ZIP |
| macOS | arm64 | ✅ | ❌ | HTTPS: ZIP |
1.2 检查环境
数据库(选择以下一项):
- MySQL:版本 >= 5.7
- PostgreSQL
- TiDB(实验性支持,使用 MySQL 协议连接)
- 或者 什么都不安装 直接使用 SQLite3
git
(bash):
- 服务端和客户端均需版本 >= 1.8.3
- Windows 系统建议使用最新版
SSH 服务器:
- 如果您只使用 HTTP/HTTPS 的话请忽略此项
- 如果您选择在 Windows 系统使用内置 SSH 服务器,请确保添加
ssh-keygen到您的%PATH%环境变量中 - 推荐 Windows 系统使用 Cygwin OpenSSH 或 Copssh
- Windows 系统 请确保 Bash 是默认的 Shell 程序,而不是 PowerShell
1.3 解压安装
解压安装包

cd gogs进入当前解压的目录
执行命令
./gogs web
Gogs 默认会在端口
3000启动 HTTP 服务,访问/install以进行初始配置(例如 http://localhost:3000/install )。然后根据提示填写相关的信息后完成即可。
二、配置文件
默认配置文件
默认配置都保存在 conf/app.ini,您 永远不需要 编辑它。该文件从 v0.6.0 版本开始被嵌入到二进制中。将不能被更改。
自定义配置文件
那么,在不允许修改默认配置文件 conf/app.ini 的情况下,怎么才能自定义配置呢?很简单,只要创建 custom/conf/app.ini 就可以!在 custom/conf/app.ini 文件中修改相应选项的值即可。
例如,需要改变仓库根目录的路径:
1 | [repository] |
当然,您也可以修改数据库配置:
1 | [database] |
三、守护进程启动gogs
如何以守护进程形式运行?
Gogs 拥有一些由第三方提供的脚本来支持以守护进程形式运行:
- init.d/centos
- init.d/debian
- 下小节中的 Systemd 服务
Systemd 服务
在 GitHub 上的 Gogs 仓库有一个 systemd 服务模版文件,您需要做出一定的修改才能够使用它:
- 更新
User、Group、WorkingDirectory、ExecStart和Environment为相对应的值。其中WorkingDirectory为您的 Gogs 实际安装路径根目录。 - [可选] 如果您 Gogs 安装示例使用
MySQL/MariaDB、PostgreSQL、Redis或memcached,请去掉相应After属性的注释。
当您完成修改后,请将文件保存至 /usr/lib/systemd/system/gogs.service,然后通过 sudo systemctl enable gogs 命令激活,最后执行 sudo systemctl start gogs。
您可以通过 sudo systemctl status gogs -l 或 sudo journalctl -b -u gogs 命令检查 Gogs 的运行状态。
需要根据安装路径修改这几处的值:

常用命令:
1 | sudo systemctl enable gogs #激活配置文件 |
正常运行的状态:

四、域名访问
使用 NGINX 的反向代理
在 nginx.conf 文件中,将下面的 server 部分增加至 http 分区内并重载配置:
1 | server { |
git提交大文件时发生错误
想要了解如何让 NGINX 支持大文件上传的讨论,可以查看 此贴 。一般 NGINX 会返回 413 错误,在ngnix配置文件中加入以下内容可以解决该问题:
1 | client_max_body_size 50m; |
如何使用 HTTPS?
在 custom/conf/app.ini 文件中修改下列配置选项(以下仅为示例):
1 | [server] |
如果您想要使用自签名的 HTTPS,则可以使用下列命令来生成所需文件(需要使用构建标签 cert 或直接从官方下载二进制):
1 | $ ./gogs cert -ca=true -duration=8760h0m0s -host=myhost.example.com |
1.将生成的证书存放至该目录

修改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[server]
DOMAIN = git.yuencode.cn
HTTP_PORT = 3033
#http改为https
EXTERNAL_URL = https://git.yuencode.cn/
DISABLE_SSH = false
#PROTOCOL设置为https
PROTOCOL = https
#设置证书路径
CERT_FILE = custom/https/git.yuencode.cn_bundle.crt
#设置证书路径
KEY_FILE = custom/https/git.yuencode.cn.key
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false在nginx中配置域名的https
参考配置文件
1 | server { |
注意:
如果通过宝塔面板这里配置证书,可能会出现页面的js、css文件无法正确加载。


这是由于宝塔面板自动生成了一些配置文件,我们需要删除掉。删除下图中的两段配置即可
