抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

Gitea 升级导致的无法启动 以及 密码无法登录问题记录

因为之前一个版本的 gitea 的后台管理界面无法查看,一直提示 500,我以为服务器被黑了,于是回来里面查各种日志,发现并没有异常,于是就去更新了下 gitea,但更新完启动丢给我这么一个错:

If you really know what you're doing, execute `UPDATE version SET version=189 WHERE id=1;`

作为一个开发我是能理解的,其实就是数据库升级失败了,我当初为了方便用了 sqlite3 作为数据库,但目前有点后悔,解决办法也不是没有,就是把 gitea.db 拉到本地使用 DB Browser for SQLite 进行数据库修改,就执行提示的那句:

UPDATE version SET version=189 WHERE id=1;

改完保存,替换服务器上的 db,然后重启容器,本以为可以访问就没什么问题,结果发现密码无法登录,我很确信不是我改了密码也不是谁换了我的密码,就是它的一个 bug,我尝试了自己修改数据库等等操作,最后还是去找官方的改密码方式了,很可惜找了半天都是错的,提示:

No help topic for 'change-password'

最后才发现这条命令才是对的:

gitea admin user --config "/abs/path/app.ini" change-password --username yourname --password "yourpwd"

使用方法,登录容器的 bash 后在 gitea 所在安装目录执行(可使用 find / -name gitea 查找)。

但值得一提的是,配置文件的绝对路径是必须的,而且里面的一个字段 RUN_USER = git 必须与当前执行终端的用户一致,使用容器 bash 时用户为 root ,会提示:

Expect user 'git' but current user is: root

解决办法就是把 ini 文件中的 RUN_USER = git 改为 RUN_USER = root (记得改完密码还得改回来)。

吐槽一嘴,Gitea 是把双刃剑,好用是好用,但风险也不小,就在 fail2ban 的黑名单里,每周都能捕捉到十几个 ip 在攻击 Gitea ,所以不更新怕因为漏洞被拿下,更新又怕不稳定。

以上!


本站由以下主机服务商提供服务支持:

0条评论

发表评论