Centos7搭建使用Gogs

Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

[TOCM]

一、 环境要求

1.数据库(选择以下一项):
    MySQL:版本 >= 5.7
    PostgreSQL
    MSSQL
    TiDB(实验性支持,使用 MySQL 协议连接)
    或者 什么都不安装 直接使用 SQLite3
2.git(bash):
    服务端和客户端均需版本 >= 1.7.1
    Windows 系统建议使用最新版

二、安装过程

安装git和go环境

  由于我主机mysql环境已安装,略去mysql安装步骤直接安装git和go。

yum  -y install git go

mysql建库授权

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;

创建用户,修改密码,建立公钥认证目录

useradd git
passwd git
#切换用户创建目录
su git
#注:这个目录是存放普通用户上传代码公钥认证的目录
mkdir ~/.ssh

下载解压Gogs

下载地址:https://dl.gogs.io/

#首先改变git目录的用户和用户组
su root
chown -R git:git /home/git/
su git
tar -zxvf gogs_0.11.86_linux_amd64.tar.gz

后台启动Gogs

cd gogs
./gogs web &

使用system服务方式启动

#给脚本普通用户和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的配置中需要使用到。配置文件如下:

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规范,可以是一个单纯的邮箱地址或者“名字<ecmail@example.com>”的形式
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.

systemctl restart gogs.service

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://maplefix.top/archives/linux-builds-gogs