记一次Gitea迁移Forgejo操作
闲来没事想搞个类似于 Github Pages 的服务,了解到了 Codeberg ,然后注意到了 codeberg.page ,自行部署没有成功,但是看到 Codeberg 用的程序是基于 Gitea 的分支开发的 Forgejo 。
Forgejo 成立于 2022 年 10 月 ,当时一家营利性公司接管了 Gitea 项目。它存在于非营利组织 Codeberg e.V. 的保护伞下,是为公众的利益而开发的。在接下来的一年里,这种治理的差异导致了使 Forgejo 与 Gita 显着而持久地不同的选择。
因为看到上面的介绍,所以想着尝试下切换到Forgejo 试试,而且切换非常方便。
Gitea 迁移
Arch Linux 官方源有 Gitea 和 Forgejo 软件包, 但它们安装到不同的位置并以不同的用户身份运行。 因此,如果你之前是用 pacman 安装的 Gtea ,那么从一个过渡到另一个非常见简单。
第一步是安装 Forgejo 包,并停止 Gitea 服务。
$ pacman -S forgejo
$ systemctl stop gitea
配置迁移
现在,我们可以将 Gitea 配置复制到默认的 Forgejo 配置上。 我们需要设置 group owner 和 group 写入权限,以便 Forgejo 可以写入它。
$ cp /etc/gitea/app.ini /etc/forgejo/app.ini
$ chown root:forgejo /etc/forgejo/app.ini
$ chmod g+w /etc/forgejo/app.ini
数据迁移
如果我们想保留 Gitea 数据的副本不变(建议在出现错误时) 下一步是将现有数据复制到 Forgejo 用户的主目录。 我们需要将文件的所有权更改为 forgejo
user 和 group 也是如此。
$ cp -r /var/lib/gitea/* /var/lib/forgejo
$ chown -R forgejo: /var/lib/forgejo/*
$ mv /var/lib/forgejo/data/gitea-repositories /var/lib/forgejo/data/forgejo-repositories
最后,我们需要更新配置,它当前指向 /var/lib/gitea
、 以指向新位置。 编辑 /etc/forgejo/app.ini
并替换 /var/lib/gitea
跟 /var/lib/forgejo
。
数据迁移(无副本)
如果你不担心无法回滚到 Gitea 安装, 只需要修改 /var/lib/gitea
的权限,无需更改配置文件。
$ chown -R forgejo: /var/lib/gitea/*
启动 Forgejo
无论用哪种方式,都用下面命令启动 Forgejo 服务。
$ systemctl start forgejo
检查服务是否已启动,没有问题。
$ systemctl status forgejo
$ sytemctl enable forgejo
最后,卸载 Gitea。
$ pacman -R gitea