地址

官网: https://gogs.io/docs

Gogs-app.ini-功能配置参数说明:https://blog.csdn.net/weixin_41998993/article/details/105116943

什么是Gogs?

Gogs 是一款极易搭建的自助 Git 服务,类似Github/GitLab的开源文件/代码管理系统(基于Git)。

环境准备

安装Git

yum install git

安装MySQL

如果有数据库可以忽略此步骤。

apt-get install mysql

安装Nginx

yum install nginx

下载Gogs

wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz

解压:

tar -xvf gogs_0.11.91_linux_amd64.tar.gz

运行配置

设置数据库

mysql -u root -p

为用户创建一个数据库(gogs):

mysql> create database gogs;

创建gogs用户并授予上面创建的gogs数据库所有权限:

# grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”
mysql> grant all on gogs.* to gogs@localhost Identified by "123456789@#";
mysql> flush privileges;

配置Nginx

因为gogs默认使用3000端口,所以我们将80端口对gogs的请求反向代理到3000端口。

# 添加配置文件
vim /etc/nginx/conf.d/gogs.conf

server {
    listen 80;
    server_name xxxx.com;   # 修改为你的域名
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
    }
}

server {
   server_name www.xxx.com; # 修改为你的域名
   return 301 $scheme://xxx.com$request_uri; # 修改为你的域名
}

刷新Nginx配置

./nginx -s reload

创建git用户

# 创建用户 git
adduser git
# 修改文件夹权限 这里的gogs就是刚刚解压的gogs文件
chown git:git gogs -R

创建gogs服务

主要修改配置文件中的WorkingDirectory(软件目录)和ExecStart(启动目录):

[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
# gogs文件夹所在路径
WorkingDirectory=/root/gogs
# /root/gogs/gogs 自己gogs的所在路径  | port 自己的端口号
ExecStart=/root/gogs/gogs web -port 80
Restart=always
Environment=USER=git HOME=/home/git

# Some distributions may not support these hardening directives. If you cannot start the service due
# to an unknown option, comment out the ones not supported by your version of systemd.
ProtectSystem=full
PrivateDevices=yes
PrivateTmp=yes
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

将服务文件复制到system文件夹:

cp /root/gogs/scripts/systemd/gogs.service /etc/systemd/system/

设为开机启动:

systemctl enable gogs.service

启动服务:

systemctl start gogs.service

查看状态:

systemctl status gogs.service

配置Gogs

配置数据库

应用基本设置

邮件服务设置

这里使用阿里云服务器的小伙伴需要注意下,阿里云服务器默认是禁用了25端口。

第一种解决办法:

像阿里云提出申请,申请地址:传送

第二种解决办法:

使用465端口进行发送邮件,如下配置:

# 编辑app.ini文件
vi /root/gogs/custom/conf/app.ini

进去以后修改以下配置

在测试中163邮箱无法通过465端口进行发送。

可用发邮件服务器

1、阿里云邮箱: https://mail.aliyun.com/

阿里云邮箱配置:

ENABLED = true
HOST    = smtp.aliyun.com:465
FROM    = <邮箱>
USER    = 邮箱
PASSWD  = 密码

注意:阿里云往QQ邮箱发送会被拦截。

2、QQ邮箱: https://mail.qq.com/

QQ邮箱配置:

ENABLED = true
HOST    = smtp.qq.com:465
FROM    = <邮箱>
USER    = 邮箱
PASSWD  = 授权码

建议还是使用企业邮箱进行发送,可信度高,降低拦截风险。