如何在 TrueNAS SCALE 上部署 Gitea 实现 Git 仓库私有化托管,并迁移已有仓库

前置条件

目前在很多地方github访问困难,国内没什么好用的gitlab,而对于一些私有项目,放到公网上可能不是比较好,因此使用已有的truenas系统来布置一个私有的gitea是一个比较好的选择。前提是truenas系统需要外网能够访问到,如果没有公网IP的小伙伴可以参考下面这个博客:

TrueNAS SCALE 添加 tailscale 具体步骤

部署gitea

博主的TrueNAS SCALE还没有更新,用的是2024版本。正常情况的国内truenas访问github有问题,导致application应用列表无法刷新,我这里默认此问题已经解决。按照以下顺序打开TrueNAS SCALE开始配置。

新建数据集

  • Datasets
    • 单击你的常用存储池,右上角Add Dataset
    • 数据集命名,如gitea

安装gitea

  • Apps
    • Discover Apps
      • 在列表中找到Gitea(Train: community), 点击安装

此时很重要,有几个地方要改,以下面表格为例子。

名字内容备注
Application Namegitea
Web Port30080
SSH Port30022
External SSH Port30022
Host Network打开注意和TrueNAS其他应用的端口不能冲突
Root URLhttp://域名:30080/如果是tailscale,域名就写tailscale的ip,不能少/
Gitea Data Storage/dataset/gitea这里dataset是第一步数据集的名字
Gitea Configuration Storage/dataset/gitea/config注意需要到数据集中创建对应的目录,否则无法创建成功
Gitea Postgres Data Storage/dataset/gitea/postgres同上
Gitea Postgres Backup Storage/dataset/gitea/pgbackup同上

然后选择创建,就会开始进入Deploying的阶段。以下是相关命令行输出:

2026-10-08 15:43:49
Readiness probe failed: HTTP probe failed with statuscode: 500
2026-10-08 15:43:49
Liveness probe failed: HTTP probe failed with statuscode: 500
2026-10-08 15:29:31
Created container gitea
2026-10-08 15:29:31
Started container gitea
2026-10-08 15:29:30
Container image "gitea/gitea:1.23.5-rootless" already present on machine
2026-10-08 15:29:10
Container image "postgres:15.2" already present on machine
2026-10-08 15:29:10
Created container gitea-init-postgres-wait
2026-10-08 15:29:10
Started container gitea-init-postgres-wait
2026-10-08 15:29:09
Scaled up replica set gitea-dc74d9bff to 1
2026-10-08 15:29:09
Created pod: gitea-dc74d9bff-xtkgx
2026-10-08 15:29:09
Successfully assigned ix-gitea/gitea-dc74d9bff-xtkgx to ix-truenas
2026-10-08 15:29:06
Created container gitea
2026-10-08 15:29:06
Started container gitea
2026-10-08 15:29:05
Add eth0 [172.16.1.108/16] from ix-net
2026-10-08 15:29:05
Container image "postgres:15.2" already present on machine
2026-10-08 15:29:04
Scaled up replica set gitea-postgres-5df5bbb57f to 1
2026-10-08 15:29:04
Created pod: gitea-postgres-5df5bbb57f-fc5gp
2026-10-08 15:29:04
Successfully assigned ix-gitea/gitea-postgres-5df5bbb57f-fc5gp to ix-truenas

注意这里有可能遇到网络问题,需要解决docker的网络问题。TrueNAS 的 k3s/containerd 拉镜像走的代理写在 /etc/containerd.env,由 middleware 在启动应用服务时按 Network → Global Configuration → HTTP Proxy 渲染生成。核心坑:它不会随配置修改自动更新。解决:在界面填好可用代理后重启 Apps 服务(重建该文件),镜像即可正常拉取。

配置Gitea账号

初始化

上面配置好之后应该会显示running,这时候在任何一个可以访问truenas网络的机器打开http://域名:30080链接可以看到现在可以开始配置,但是要注意千万不要改数据库的用户名和密码,这是truenas的apps中的gitea提前配置好的,因为docker本质上有两个,一个是postgres,一个才是gitea,他们两个的关系在一开始就设置好了,这里如果改数据库的用户名和密码会导致登陆不上。

建议仅修改下面两个内容

  • 站点名称
    • 这个会显示在主页上
  • 管理员账号设置
    • 包括用户名,邮箱密码,这个后续登陆要用。

立刻安装之后,登陆界面就可以看到站点名称了,右上角是刚刚设置的管理员账号。如果换浏览器的话则需要重新输入刚才的用户名和密码。

配置ssh密钥

和其他gitlab和github的内容相同

  • 右上角头像
  • settings
  • SSH/GPG Keys
  • Manage SSH Keys(Add Key)
    • 将对应操作git机器的公钥复制到其中

将已有仓库的remote改为gitea

推荐一次性配置好.ssh和.git

ssh

修改~/.ssh/config,添加以下内容:

git

Host gitea
    HostName 域名/TrueNAS IP
    Port 30022
    User git

打开一个和其他git仓库远端相同的已有代码库。修改仓库根目录下的.git/config文件修改[remote “origin”]部分

[remote "origin"]
        url = git@gitea:xxx/xxx.git

其他

如果想”push 时自动建仓”(省掉网页建仓这步):Apps → gitea → Edit → Additional Environment Variables 加 GITEA__repository__ENABLE_PUSH_CREATE_USER = true,Save。

但是个人推荐还是网页建仓好一点,比如gitlab的group在gitea里面叫做organization。之后就可以在命令行git push到私有化仓库里了。

文章链接:https://sunwaybits.tech/how-to-deploy-gitea-on-truenas-scale-for-private-git-hosting-and-migrate-your-existing-repositories/
文章标题:如何在 TrueNAS SCALE 上部署 Gitea 实现 Git 仓库私有化托管,并迁移已有仓库
文章作者:Myron
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇