使用 Docker 和 Traefik v1 搭建轻量代码仓库(Gogs) 一文中,提到了 Gogs。本文将介绍它的增强版本:Gitea 以及如何搭配 Traefik v2 一起使用。

如果你有了解过之前到文章,大概三分钟左右可以搭建完毕。

写在前面

官方提供了一份表格,展示了Gitea 与其他“代码仓库”的差异,有兴趣可以看看。

本文将使用到 Traefik 和 Docker,如果不太熟悉,可以阅读以往的文章以做了解:DockerTraefik

Traefik v2 配置调整

我们使用 SSH 和 HTTP 协议进行数据上传下载(git clone / git push),所以需要让 Traefik 提供 TCP 协议服务,这里建议单独新建一个入口点。

因为在 Traefik v2 中,每一个用户能够访问到的服务都需要一个入口点(entrypoint),如果我们不单独指定入口点背后的服务类型,那么入口点会先尝试看看它背后对接的服务是否是 TCP,如果不是的话,再尝试使用 HTTP 协议提供服务,所以如果不分离两种协议的话,对整体服务的性能会有一定影响。

参考  Traefik 2 使用指南,愉悦的开发体验  一文中的配置,在 traefik.toml 中添加一个新的入口点:

如果是使用 docker-compose 启动的 Traefik 服务,那么需要将对应的端口也进行开放:

最简单的配置

在 Gogs 那篇文章中提到过,不推荐使用 SQLite 作为数据库,不过如果你备份比较勤快,觉得问题不大,那么可以试试下面的配置:

将内容保存为 docker-compose.yml ,使用 docker-compose up -d 启动服务,访问上面配置的域名,会看到 Gitea 的欢迎界面。

Gitea 首次运行界面

打开页面看到服务已经正确启动起来了,点击注册/登陆按钮,首次使用会被重定向到 /install 目录。

Gitea 配置界面

如果你确定要使用 SQLite ,可以填写下管理员账号,然后点击立即安装即可。

Gitea 安装完毕

接下来就是配置仓库,正常推送数据啦。

使用数据库

这里推荐云服务低配置数据库实例,不过如果低频率使用,使用 docker-compose 启动一个实例也问题不大,以 MySQL 为例。

同样的,将内容保存为 docker-compose.yml ,使用 docker-compose up -d 启动服务,访问上面配置的域名,然后参考上文进行配置安装即可。

其他

更多的配置变量可以从这里找到:config-cheat-sheet,不过并不是每个变量都可以直接使用,具体是否使用需要翻看代码或者进行尝试。

当服务完整启动之后,在 Traefik 的控制面板中将看到 TCP 路由和服务的完整状态,类似下面这样:

Traefik 面板 TCP 状态

最后

先写到这里,其实已经聊过不少软件,后续有机会聊聊这类软件的用户集成,以及权限管理。

–EOF