小小树莓派干大事-自部署Git库(二)

小小树莓派干大事-自部署Git库(二)
Gitea: Git with a cup of tea

上一篇我们完成了Gitea库的安装。 本篇继续进行使用场景和维护的讨论。

使用场景举例

大功告成后,我分享一下常见的使用场景和方法。

镜像用法-Github加速

Github源站因为某些原因无法访问,或者访问过慢。 可以将Github的库定期做本地镜像。我们打开Gitea私有部署网站,右上角“+”,点击“迁移外部仓库”

从GitHub迁移

在页面中粘贴HTTP的GitHub的库URL, 然后勾选仓库是一个镜像即可。(如果这个库是公开的,不需要输入访问令牌。)等待镜像完成后,点击项目的“设置”,可以看到镜像设置一栏已经设置好了同步。可以进一步调整拉取间隔。

镜像设置

同步用法-多个Git库间同步

我们有的时候维护多个Git库。比如内部使用自部署的私有库,这样速度比较快,然后定期将其同步到Github上,或者其他带有部署能力的平台来实现CI/CD部署。

如图所示,点击项目的设置,找到镜像设置一栏,然后将相应的链接,用户,密码填写好即可添加完成。 我试了Github,国内的coding.net和阿里云的Codeup都是有效的。

  • Github:  链接填写HTTPS的, 用户名填写用户名,密码填写“Personal access token”,在Github的https://github.com/settings/tokens  页面添加并附相应repo权限。
  • coding.net: 链接填写HTTPS的, 分别输入登录的用户邮箱和密码即可。
  • Codeup: 链接填写HTTPS的,用户名输入克隆账号,密码输入克隆密码。它们可以在个人设置中找到。

数据安全备份

在树莓派的Docker上部署Gitea容易, 但是数据安全保障可没那么容易。 如果Git库的数据因为系统等原因丢失了,那么作为“库”的意义也不存在了。 当然, 上述镜像和同步方法可以缓解这个问题,但无法解决树莓派本身的安全问题。 我们尝试解决一下。
方法1. 依赖备份。
Gitea官网提供了Backup and Restore功能文档。 一键backup脚本如下:

docker exec -u git -it -w /data $(docker ps -qf "name=gitea") bash -c '/app/gitea/gitea dump -c /data/gitea/conf/app.ini'

执行完成后, 发现挂载的gitea-data目录下多出来了类似gitea-dump-1482906742.zip的文件。
接下来只要写个cron脚本,定期执行这个命令,然后将其备份到远端就可以了。(本文略)

方法2. 依赖同步。 我们可以使用rclone,https://rclone.org/s3/ 定期将本地目录同步到兼容s3远程存储上,如aliyun。(本文略)

方法3. 使用高可用存储。minio。 它可以实现本地的多磁盘高可用,然后将endpoint以docker兼容的volumes挂载。 或者直接也支持aliyun这样的s3兼容网关。

关于这部分,太多的略了。。。网上相关资料也很多了。有时间再完整补齐吧。。。
全文完。