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文件无法正确加载。
这是由于宝塔面板自动生成了一些配置文件,我们需要删除掉。删除下图中的两段配置即可