我们使用docker安装gogs服务。
# 1. 安装
# 1.1 下载镜像
docker pull gogs/gogs
# 1.2 数据库准备
我们在postgresql中创建一个gogs的数据库,并授权。
数据库创建和授权可参考 postgresql_in_docker
# 1.3 准备证书文件
gogs.hellogitlab.com
为后面设置HTTPS协议做准备。
gogs.hellogitlab.com
这样便于后面为Gogs服务设置域名。
# 1.4 创建持久化目录
/dockerdata/gogs/data
# 1.5 运行容器
运行以下命令:
运行:
# 1.6 防火墙放行端口
防火墙放行10022和10080端口
我们先放行一下端口:
执行命令:
防火墙放行后。我们就可以在浏览器上查看gogs页面。
# 1.7 初始安装配置
http://hellogitlab.com:10080
我们使用postgresql,填写刚才创建的数据库信息:
最后需要对外暴露的域名和端口设置:
https://gogs.hellogitlab.com:10080/httpshttpshttp
test
https://gogs.hellogitlab.com:10080/meizhaohui/test.gitssh://git@gogs.hellogitlab.com:10022/meizhaohui/test.git
我尝试使用这两种方式下载仓库代码。
HTTP方式下载:
出现异常。
SSH方式下载:
可以看到,能正常下载。
此时,SSH形式可以正常下载。而HTTPS方式下载需要优化。
# 1.8 Nginx反向代理配置
为了让我们通过HTTPS加密形式访问Gogs服务,我们配置一下Nginx代码,将10080端口转发到10081端口,并且为10081端口设置SSL证书。
/etc/pki/nginx/
/etc/nginx/conf.d/gogs.conf
配置文件内容如下:
nginx -t
说明Nginx配置正确。
# 1.9 邮件配置
之前初始体验的时候,我们并没有配置Gogs的邮件,我们再次测试的时候,可以在初始安装界面加上邮件相关的配置。
notice@hellogitlab.com
可以在后面重新运行docker容器后,再进行配置。
# 1.10 头像优化
gravatar.com
OFFLINE_MODEtrue
.gogs.env
=
# 1.11 优化后重新运行容器
我们在运行容器时加载环境变量,并在容器运行后重启Nginx服务。
https://gogs.hellogitlab.com:10081
在重新运行容器前,我们将之前生成的数据库数据删除,以及持久化的数据删除。
先停止gogs容器。
删除持久化数据:
删除数据库,并新建数据库,并授权:
以上准备工作完成后,我们重新运行容器。
可以看到容器正常运行。
我们重启一下Nginx服务:
https://gogs.hellogitlab.com:10081/install
数据库配置:
应用基本配置:
邮件服务配置:
注意,此处邮件服务时,应在SMTP主机处加上端口号,我们需要使用SMTP加密,使用465端口号。
此处我们启用邮件通知提醒。
禁用Gravatar服务禁用用户自主注册
最后要设置一个管理员账号。
立即安装
控制面板
testrepo
创建后,测试一下是否能够正常克隆下载并提交修改。
此时,可以看到,测试仓库页面可以正常显示HTTPS和SSH方式的下载链接:
我们尝试下载一下。
HTTPS
可以看到,在输入正确的用户名和密码之后,可以正常下载。
fatal: Authentication failed forgit config --global --unset credential.helper
我们刷新页面,可以看到刚才的提交已经显示在页面上了:
说明HTTPS方式配置正常!
同样,使用SSH方式下载试一下。
使用SSH方式下载前,需要将自动的电脑公钥加到Gogs系统的个人账号的SSH密钥当中。
添加后,再使用SSH方式下载。
可以看到,能够正常下载。
如果你遇到异常提示:
~/.ssh/known_hostsgogs
我们再进行提交操作。
在Gogs系统上面,刷新页面,可以看到刚才的提交已经正常显示了:
说明我们的配置正常的!
后续你就可以自己创建比较正式的仓库,存放自己的代码了!
# 2. 服务地址优化
你如果按上述部署完成了部署的话,也可以不进行此节的操作。
https://gogs.hellogitlab.com
你可以参考 统一网站端口号 其中有详细的说明。
/etc/nginx/conf.d/gogs.conf
查看优化后的配置文件:
NginxNginx
https://gogs.hellogitlab.com/HTTPShttps://gogs.hellogitlab.com:10081/meizhaohui/testrepo.git
# 2.1 修改gogs的HTTPS端口号
GogsHTTPS10081443
我们先停止gogs容器,然后去持久化文件夹里面直接修改配置文件。
我们使用VIM进行修改:
3000EXTERNAL_URL = https://gogs.hellogitlab.com/:443
我们再启动一下gogs容器:
gogs
HTTPShttps://gogs.hellogitlab.com/meizhaohui/testrepo.git
HTTPS
尝试提交修改:
可以看到能够正常提交成功,说明我们的网站服务地址更新成功了!
100222222
参考: