极易搭建的代码托管平台Gitea
这礼拜有点霉啊,先是日常自用的机器上,SSD 挂了,彻底识别不了的那种

隔了两天,用来写文章用的小机器上, 500G 的机械硬盘也挂了,重新格了一下,挂在玩客云上当个下载盘用吧

好在都有备份,只是 Docker 的恢复有点麻烦, 比如:
HomeAssistant,用的是之前导出的syno.txz重新导入的,配置文件也没动,但还是各种问题;messense/aliyundrive-webdav如果用latest版本,Hyper Backup备份时,日志中会显示HTTP status client error (400 Bad Request) for url (https://openapi.aliyundrive.com/adrive/v1.0/openFile/get_by_path);vaultwarden/server如果用latest版本,登录时会一直报错Username or Password is incorrect. Try again.,日志中则显示(login) POST /identity/connect/token => 400 Bad Request;
这礼拜,腾讯的 vps也到期了,正忙着切换到 cloudflare tunnel,想顺便把一些旧的镜像更新一下,但是几个都遇到了问题,花时间慢慢搞定吧
本文软件由网友
不长到一百四誓不改名推荐;但老苏并不会使用,水平也就会用个git clone而已;
什么是 Gitea ?
Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建Git服务。我们采用Go作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持Linux,macOS和Windows以及各种架构,除了x86,amd64,还包括ARM和PowerPC。
如果不想自己搭建,可以去访问在线 demo:https://try.gitea.io
安装
建数据库
老苏用了群晖自带的 MariaDB 10 数据库。

在 phpMyAdmin 中创建名为 gitea 的空数据库。
为便于说明,假设数据库密码为
123456

所以根据上面的设置,最后得到的数据库相关的参数如下:
- 数据库主机:
192.168.0.197,与群晖主机IP一致; - 数据库端口:
3307,如果用MariaDB 5就是3306,但老苏没测; - 数据库用户:
gitea - 数据库密码:
123456 - 数据库库名:
gitea,因为勾选了与用户同名;
安装镜像
在群晖上以 Docker 方式安装。
如果你熟悉命令行,可能用 docker cli 更快捷
老苏折腾时,
latest对应的版本是1.19.3
1 | # 新建文件夹 gitea 和 子目录 |
| 可变 | 值 |
|---|---|
USER_UID |
在容器内运行 Gitea 的用户的 UID,默认设为 1000 |
USER_GID |
在容器内运行 Gitea 的用户的 GID,默认设为 1000 |
GITEA__database__DB_TYPE |
数据库类型 |
GITEA__database__HOST |
数据库主机 |
GITEA__database__NAME |
数据库库名 |
GITEA__database__USER |
数据库用户 |
GITEA__database__PASSWD |
数据库密码 |
更多的环境变量请看官方的文档:https://docs.gitea.cn/installation/install-with-docker#环境变量
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: "3" |
然后执行下面的命令
1 | # 新建文件夹 gitea 和 子目录 |
运行
在浏览器中输入 http://群晖IP:3231,第一次需要配置
老苏什么都没改,包括邮件设置和管理员也没设,后面再说

有个短暂的加载过程

紧接着就是登录界面

因为开始没有设置管理员,所以第一个注册的用户就是管理员

创建成功后的主界面

设置

管理后台

支持从其他仓库迁移

配置文件
Gitea 配置文件保存在 /data/gitea/conf/app.ini ,在 FileStation 中,对应的路径是 /docker/gitea/data/gitea/conf/app.ini

在对 app.ini 做任何修改前,需要添加 Everyone的读写权限

否则修改会无效

修改了设置后,需要重启容器才能让设置生效
禁用注册
如果要禁用注册,之后就只有管理员才能为用户创建帐户,虽然麻烦,但是可能更安全吧
一种方式是通过环境变量 DISABLE_REGISTRATION=true,另一种则是在 app.ini ,将DISABLE_REGISTRATION从 false 改为 true

重启容器后,就不能再注册了

邮件设置
因为一开始初始化的时候,我们没有设置邮件,所以现在 app.ini 是下面这样的
1 | [mailer] |
如果要配置邮件服务,首先要将 ENABLED 改为 true,同时要添加下面的内容,当然不同的邮箱,设置是不一样的,这也是为什么老苏没有在开始设置的原因
1 | [mailer] |
当创建用户时,如果勾选了邮件通知的话

很快就会收到邮件

客户端
Gitea 服务器使用的是 SSH 协议,并且 SSH 端口不是默认的 22 而是 222,老苏搜了一下,有两种方法:
以下内容老苏未验证,请大家自己甄别;
第一种方法是在
Git的远程仓库地址中指定端口号,例如:git remote add origin ssh://user@host:port/path/to/repo第二种是修改本地配置文件,可以在
Windows下的C:\Users\<YourUserName>\.ssh\config文件中配置SSH的端口号,例如:
1 | Host gitserver |
然后,您可以使用 git remote add origin git@gitserver:path/to/repo 来添加远程仓库。
参考文档
Gitea
地址:https://gitea.io/en-us/gitea/README_ZH.md at main · go-gitea/gitea · GitHub
地址:https://github.com/go-gitea/gitea/blob/main/README_ZH.md文档 | Gitea 官方文档
地址:https://docs.gitea.cn/使用 Docker 安装 - Docs
地址:https://docs.gitea.io/en-us/install-with-docker/