前言 ①什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务。
②Gogs使用介绍 Gogs是一款类似Github/GitLab的开源文件/代码管理系统(基于Git)。
③目前功能基本介绍 远程代码仓库管理 代码仓库权限分配、管理 团队管理 代码审查
④选择原因 Gogs是轻量级Git服务器的不二选择,因为GitLab比较重,对资源要求比较高,而且搭建流程相对复杂(使用docker搭建除外)。
我们可以看到Gogs的硬件要求:
最低的系统硬件要求为一个廉价的树莓派 如果用于团队项目管理,建议使用 2 核 CPU 及 512MB 内存 当团队成员大量增加时,可以考虑添加 CPU 核数,内存占用保持不变
相对于GitLab的2核4G起步,Gogs可以说是对硬件要求非常低了。
好了,下面开始详细的搭建流程。
1.环境准备 默认环境已经安装Nginx,Mysql,git,这里不做详细介绍。
不知道的可以参考这篇安装WordPress的配置教程:最新阿里(腾讯)云主机搭建WordPress详细教程
因为本次配置中我们使用到了邮箱,所以我们申请了域名邮箱。
域名邮箱建议使用网易免费企业邮箱或者腾讯企业邮箱。
2.下载与安装 下载linux 64位安装包:
1 wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz
解压:
1 tar -xvf gogs_0.11.91_linux_amd64.tar.gz
3.运行配置 ①预置数据库 使用root用户登录:
为用户创建一个数据库(gogs):
1 mysql> create database gogs;
创建gogs用户并授予上面创建的gogs数据库所有权限:
1 2 mysql> grant all on gogs.* to gogs@localhost Identified by "19921111Yasin#$"; mysql> flush privileges;
grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”
②配置Nginx 因为gogs默认使用3000端口,所以我们将80端口对gogs的请求反向代理到3000端口。
增加Nginx配置文件:
1 vim /etc/nginx/conf.d/gogs.conf
添加下面的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 server { listen 80 ; server_name gogs.site; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host ; } }server { server_name www.gogs.site; return 301 $scheme ://gogs.site$request_uri ; }
重启Nginx:
③创建git
用户 1 2 3 4 adduser gitchown git:git gogs -R
④创建gogs服务 首先修改配置文件,将gogs工作目录修改为你自己存放的目录:
1 2 cd gogs vim scripts/systemd/gogs.service
主要修改配置文件中的WorkingDirectory
和ExecStart
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [Unit] Description =GogsAfter =syslog.targetAfter =network.targetAfter =mariadb.service mysqld.service postgresql.service memcached.service redis.service[Service] Type =simpleUser =gitGroup =gitWorkingDirectory =/yasin/gogsExecStart =/yasin/gogs/gogs webRestart =alwaysEnvironment =USER=git HOME=/home/gitProtectSystem =fullPrivateDevices =yes PrivateTmp =yes NoNewPrivileges =true [Install] WantedBy =multi-user.target
将服务文件复制到system
文件夹:
1 cp scripts/systemd/gogs.service /etc/systemd/system/
设为开机启动:
1 systemctl enable gogs.service
启动服务:
1 systemctl start gogs.service
查看状态:
1 systemctl status gogs.service
⑤安装配置 上面一切正确的话,我们打开网页输入我们的域名就可以进入首次安装配置了。
(1)数据库配置 填写我们上面预置的账号和密码:
(2)应用基本设置 根据你自己的配置进行填写:
(3)邮件服务设置 填写自己邮箱的SMTP服务器地址:
这里要注意的是,上面网易免费企业邮箱的SMTP地址应该为smtp.ym.163.com
。
注意,邮件配置这里坑比较多,在配置完邮箱后发现还是不能发送邮件。但是这时候使用Foxmail是可以连接邮箱并发送邮件的,于是排查服务器本身。
发送测试邮件示例:
最终发现是云主机服务商把25端口给封了 ,这时候需要去阿里云或者腾讯云申请解封25端口,具体流程就不叙述了。
申请解封完再选择发送测试邮件,终于成功了!
⑥配置HTTPS 因为环境采用的LANMP配置,所以Aapache和Nginx都需要配置。
(1)安装ssl模块 如果已经安装可以跳过。
(2)修改Apache配置 使用命令httpd -M
查看已安装的模块,默认开启,没有的话在http.conf
配置文件中开启下面的配置:
1 2 3 4 5 LoadModule proxy_module libexec/apache2/mod_proxy.soLoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.soLoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.soLoadModule proxy_http_module libexec/apache2/mod_proxy_http.soLoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so
添加配置文件:
1 vim /etc/httpd/cond.d/gogs.conf
增加下面的内容,配置证书并将请求反向代理给Gogs服务端口:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <VirtualHost *:443 > ServerName gogs.site SSLEngine on SSLProxyEngine On SSLCertificateFile /yasin/ssl/gogs.site/2 _gogs.site.crt SSLCertificateKeyFile /yasin/ssl/gogs.site/3 _gogs.site.key SSLCertificateChainFile /yasin/ssl/gogs.site/1 _root_bundle.crt ProxyRequests off ProxyPreserveHost On <Proxy /> Order deny ,allow Allow from all </Proxy> <Location /> ProxyPass https://127.0.0.1:3000 / ProxyPassReverse https://127.0.0.1:3000 / </Location> </VirtualHost> <VirtualHost *:443 > ServerName www.gogs.site Redirect permanent / https://gogs.site/ </VirtualHost>
重启服务:
(3)修改Nginx配置 将80端口全部重定向到https链接。
1 vim /etc/nginx/cond.d/gogs.conf
修改配置:
1 2 3 4 5 server { listen 80 ; server_name www.gogs.site gogs.site; return 301 https://gogs.site.com$request_uri ; }
重启服务:
如果只用Nginx一个服务器的话,参考下面的配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 server { listen 443 ; server_name www.host.com; ssl on ; ssl_certificate /home/git/gogs/custom/https/fileName.pem; ssl_certificate_key /home/git/gogs/custom/https/fileName.key; ssl_session_timeout 5m ; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on ; location / { proxy_pass https://localhost:3000; } }server { listen 80 ; server_name www.host.com; rewrite ^(.*)$ https://$host $1 permanent ; }
(4)修改gogs配置 打开配置文件:
1 2 cd gogs vim custom/conf/app.ini
修改server
配置:
1 2 3 4 5 6 7 8 9 10 11 [server] DOMAIN = gogs.siteHTTP_PORT = 3000 PROTOCOL = httpsROOT_URL = https://gogs.site/CERT_FILE = /yasin/ssl/gogs.site/2 _gogs.site.crtKEY_FILE = /yasin/ssl/gogs.site/3 _gogs.site.keyDISABLE_SSH = false SSH_PORT = 22 START_SSH_SERVER = false OFFLINE_MODE = false
重启gogs:
1 systemctl restart gogs.service
如果一切顺利的话,这时候再输入你的域名,比如 https://gogs.site ,你会发现HTTPS启用成功!
4.Enjoy 好了,至此Gogs配置教程已经全部完毕,更多功能等待你去慢慢探索!
使用界面
在线体验 https://try.gogs.io/