10

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

 2 years ago
source link: http://i.lckiss.com/?p=7819
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

2022-03-04

因为之前一个版本的 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 后执行。

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

Expect user 'git' but current user is: root

解决办法就是把 ini 文件中的 RUN_USER = git 改为 RUN_USER = root

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK