Gogs是一款极易搭建的自助Git服务。
接下来我们会使用Docker来搭建Gogs,并使用PostgreSql作为数据库。
具体Docker的安装我们这里就不详述了,没装的自己参照Docker官网安装即可。
搭建Gogs
1、先创建一个保存数据的目录
mkdir -p /opt/gogs
2、拉取Gogs镜像
docker pull gogs/gogs
3、启动镜像
docker run -d --name=gogs -p 222:22 -p 8888:3000 -v /opt/gogs:/data --privileged gogs/gogs
222和8888可以修改成自己喜欢的端口,也可以使用nginx反代,具体都看自己实际需求
/opt/gogs就是接下来我们保存数据的地址
到此为止,我们就可以使用http://ip:8888访问我们的gogs了,打开后,会出现配置界面
搭建PostgreSql
docker run -d --name postgres -e TZ="Asia/Shanghai" -e POSTGRES_PASSWORD="这里是密码" \
-v /var/lib/postgresql/data:/var/lib/postgresql/data:rw \
-v /etc/localtime:/etc/localtime:ro \
--restart=always \
--privileged \
postgres
privileged是必不可少的,缺失的话会导致容器启动失败
POSTGRES_PASSWORD指定的是postgres用户的登录密码
配置PostgreSql
1、登录Postgres
docker exec -it postgres psql -U postgres
-U postgres是指定登录用户,Postgres的默认用户名就是postgres
2、创建gogs库
CREATE DATABASE gogs OWNER postgres;
3、退出Postgres
\q
获取PostgreSql的ip
执行下面的命令后按图获取ip即可
docker inspect postgres
配置Gogs
打开http://ip:8888进入配置页面
修改如下配置:
数据库主机为:Postgres的ip:5432
数据库用户:postgres
数据库密码:搭建Postgres时设置的密码
数据库名称:gogs
域名:设置为你的域名或者服务器ip,视具体情况确定
SSH端口号:222(与启动gogs映射的22端口匹配的端口)
HTTP端口号:3000(这个是服务提供端口,默认3000即可)
应用URL:http://域名:8888(域名为你的域名或服务器ip,8888为启动gogs是映射3000端口的端口号)
其余配置视情况调整即可
修改后点击完成即可
头像优化
gogs默认使用的是gravatar.com
的头像,但是该网站在国内的访问并不顺利,我们需要稍微调整下
vim /opt/gogs/gogs/conf/app.ini
/opt/gogs/
是启动gogs配置的文件目录
在[picture]
下修改或新增GRAVATAR_SOURCE=https://sdn.geekzu.org/avatar/
保存后执行如下命令重启gogs
docker restart gogs
至此,你就可以愉快的使用自己的git了
扩展
CI/CD:gogs可以搭配Drone
实现持续集成和持续交付
可以通过nginx反代gogs的http和ssh,达到与服务器上其他服务共用端口
为了防止数据丢失,可以考虑使用syncthing同步/opt/gogs目录到其他服务器备份