快速部署最简单的 Git 服务 Gogs
前面介绍了 Gitlab 的搭建,功能很强大,无论是 cpu 还是内存,要求机器的配置要高一些。
如果没有比较高的机器配置,只使用最常用的 Git 代码托管功能,那么就使用 Gogs 来快速部署吧。
Gogs 是一款极易搭建的自助 Git 服务。旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。
使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、macOS、Windows 和基于 ARM 的操作系统。
官网地址:https://gogs.io
GitHub 地址:https://github.com/gogs/gogs
Gitee 地址:https://gitee.com/unknwon/gogs
搭建和配置 Gogs
我的 CentOS7 虚拟机 ip 地址是 192.168.136.128,已经安装好了 docker 和 docker-compose
我们首先在自己的虚拟机上创建 /app/gogs 目录,里面在创建一个子目录 data 和 docker-compose.yml 文件
然后编写 docker-compose.yml 文件内容如下:
version: "3.5"
services:
gogs:
container_name: gogs
image: gogs/gogs:latest
restart: always
ports:
- "8080:3000"
- "8022:22"
volumes:
- /app/gogs/data:/data
然后运行 docker-compose up -d
命令启动服务,访问 http://192.168.136.128:8080
展示配置页面
数据库支持多种,最简单的方式就是选择 SQLite3 文件数据库,实际开发或生产环境最好选择 MySQL 等高级数据库
将域名修改成容器的宿主机的 ip 地址,应用 url 修改成宿主机的 ip 和外部端口,其它的配置可以不用修改
对于可选配置,只需要配置【管理员账号设置】即可,管理员邮箱可以随便填写,不需要是一个真实的邮箱
然后点击【立即安装】,很快就会初始化好数据库,完后后并自动登录进入首页
到此为止,Gogs 就搭建完毕了,其具有的主要功能如下:
- 控制面板、用户页面以及活动时间线
- 通过 SSH、HTTP 和 HTTPS 协议操作仓库
- 管理用户、组织和仓库
- 仓库和组织级 Webhook,包括 Slack、Discord 和钉钉
- 仓库 Git 钩子、部署密钥和 Git LFS
- 仓库工单(Issue)、合并请求(Pull Request)、Wiki、保护分支和多人协作
- 从其它代码平台迁移和镜像仓库以及 Wiki
- 在线编辑仓库文件和 Wiki
- Jupyter Notebook 和 PDF 的渲染
- 通过 SMTP、LDAP、反向代理、GitHub.com 和 GitHub 企业版进行用户认证
- 开启两步验证(2FA)登录
- 自定义 HTML 模板、静态文件和许多其它组件
- 多样的数据库后端,包括 PostgreSQL、MySQL、SQLite3 和 TiDB
- 超过 31 种语言的本地化
另外 Gogs 对硬件要求很低,绝大多数机器都能够满足要求:
- 最低的系统硬件要求为一个廉价的树莓派
- 如果用于团队项目管理,建议使用 2 核 CPU 及 512MB 内存
- 当团队成员大量增加时,可以考虑添加 CPU 核数,内存占用保持不变
有关 Gogs 的使用,这里就不介绍了,可以查看官网使用文档:https://gogs.io/docs