极易搭建的代码托管平台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/