> Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
[TOCM]
[TOC]
## 一、 环境要求
1.数据库(选择以下一项):
MySQL:版本 >= 5.7
PostgreSQL
MSSQL
TiDB(实验性支持,使用 MySQL 协议连接)
或者 什么都不安装 直接使用 SQLite3
2.git(bash):
服务端和客户端均需版本 >= 1.7.1
Windows 系统建议使用最新版
## 二、安装过程
### 安装git和go环境
由于我主机mysql环境已安装,略去mysql安装步骤直接安装git和go。
```shell
yum -y install git go
```
### mysql建库授权
```sql
CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL privileges on gogs.* TO 'root'@'ip' identified by 'pass' WITH GRANT OPTION;
FLUSH privileges;
```
### 创建用户,修改密码,建立公钥认证目录
```shell
useradd git
passwd git
#切换用户创建目录
su git
#注:这个目录是存放普通用户上传代码公钥认证的目录
mkdir ~/.ssh
```
### 下载解压Gogs
> 下载地址:https://dl.gogs.io/
```shell
#首先改变git目录的用户和用户组
su root
chown -R git:git /home/git/
su git
tar -zxvf gogs_0.11.86_linux_amd64.tar.gz
```
### 后台启动Gogs
```shell
cd gogs
./gogs web &
```
### 使用system服务方式启动
```shell
#给脚本普通用户和root用户执行权限
chmod u+x /home/git/gogs/scripts/systemd/gogs.service
#注:以上设置权限需要使用root用户。
#拷贝gogs启动脚本到system下
cp /home/git/gogs/scripts/systemd/gogs.service /usr/lib/systemd/system/
#启动gogs服务
systemctl start gogs.service
#关闭gogs服务
systemctl stop gogs.service
#重启gogs服务
systemctl restart gogs.service
#设置开机自启
systemctl enable gogs.service
```
### 访问测试
浏览器访问即可
配置连接数据库以及管理员用户名密码邮箱,按需配置即可。
附上官网手册:
> 配置文件手册:https://gogs.io/docs/advanced/configuration_cheat_sheet
> gogs文档手册:https://gogs.io/docs/
### 配置邮件发送

开启stmp后点击生成授权码,拿到授权码后等下Gogs的配置中需要使用到。配置文件如下:
```perl
APP_NAME = Maple-Gogs
RUN_USER = git
RUN_MODE = prod
[database]
DB_TYPE = mysql
HOST = ip:port
NAME = gogs
USER = gogs
PASSWD = xxxxxx
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /home/git/gogs-repositories
[server]
DOMAIN = gogs.maplefix.top
HTTP_PORT = 3000
ROOT_URL = http://gogs.maplefix.top
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = true
[mailer]
ENABLED = true
#邮件标题的前缀
SUBJECT_PREFIX = Maple-Gogs
#SMTP主机地址与端口
HOST = smtp.qq.com:465
#邮箱的来自地址,遵循RFC5322规范,可以是一个单纯的邮箱地址或者“名字”的形式
FROM = xxx@qq.com
#邮箱用户名
USER = xxx@qq.com
#邮箱授权码
PASSWD = 授权码
[service]
REGISTER_EMAIL_CONFIRM = false
#邮件给关注者,例如创建 issue 时,要求已启用 Mailer
ENABLE_NOTIFY_MAIL = true
#禁止用户注册功能,智能由管理员创建账号
DISABLE_REGISTRATION = true
#是否显示注册按钮
SHOW_REGISTRATION_BUTTON = false
#缓存Gravatar头像
ENABLE_CACHE_AVATAR = true
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = true
[picture]
DISABLE_GRAVATAR = true
ENABLE_FEDERATED_AVATAR = false
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /home/git/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = 自动生成的key
```
## 三、测试服务
重启后开始测试pull,push.
```shell
systemctl restart gogs.service
```
Centos7搭建使用Gogs