gitea服务器如何让用户注册可以控制
Gitea 用户注册控制完整指南
Gitea 默认允许开放注册,但在私有部署场景中需要严格控制用户注册。以下是多种注册控制方案,从基础到高级:
一、基础注册控制(核心方法)
1. 完全禁用注册
通过修改配置文件 app.ini 彻底关闭注册功能:
ini
复制
[service]
DISABLE_REGISTRATION = true # 关闭用户自助注册,只有管理员可创建用户
操作步骤:
-
找到配置文件路径:
/etc/gitea/app.ini或~/.gitea/custom/conf/app.ini(Docker 环境为/data/gitea/conf/app.ini) -
在
[service]段落下添加上述配置 -
重启 Gitea:
sudo systemctl restart gitea或docker restart gitea
效果:注册按钮消失,/user/sign_up 页面无法访问
2. 管理后台快速设置(无需改文件)
管理员登录后:
-
进入 管理面板 → 配置 → 用户设置
-
取消勾选 "允许用户注册"
-
保存更改
底层原理仍是修改 app.ini,适合不熟悉文件操作的运维人员
二、进阶注册限制策略
3. 注册邮箱白名单限制
只允许特定域名的邮箱注册:
ini
复制
[service]
ENABLE_REGISTRATION = true # 保持注册开启
EMAIL_DOMAIN_ALLOWLIST = company.com,example.org # 仅允许这些域名
4. 管理员手动审核注册
用户提交注册后需管理员手动激活:
ini
复制
[service]
REGISTER_MANUAL_CONFIRM = true # 注册需管理员审核
DISABLE_REGISTRATION = false # 保持注册入口可见
5. 启用注册验证码
防止机器人批量注册:
ini
复制
[service]
ENABLE_CAPTCHA = true # 启用图形验证码
三、外部认证集成(企业级方案)
6. 仅允许外部服务注册
关闭本地注册,强制使用 LDAP/OAuth 等统一认证:
ini
复制
[service]
ALLOW_ONLY_EXTERNAL_REGISTRATION = true # 仅允许外部认证注册
DISABLE_REGISTRATION = false # 保持外部注册可用
[auth]
ENABLE_EXTERNAL_LOGIN = true
DEFAULT_LOGIN_TYPE = LDAP
[openid]
ENABLE_OPENID_SIGNUP = false # 关闭OpenID注册
7. 反向代理自动注册控制
若使用反向代理认证,可控制自动创建用户:
ini
复制
[service]
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false # 禁止自动创建用户
ENABLE_REVERSE_PROXY_AUTHENTICATION = true
四、Docker 环境特殊配置
bash
复制
# 进入容器修改配置
docker exec -it gitea /bin/bash
vi /data/gitea/conf/app.ini
# 或直接修改宿主机映射文件(假设映射到 /var/gitea)
vi /var/gitea/gitea/conf/app.ini
# 重启容器生效
docker restart gitea
典型 Docker 配置示例:
ini
复制
[service]
DISABLE_REGISTRATION = true # 禁用注册
[openid]
ENABLE_OPENID_SIGNIN = false # 禁用OpenID登录
ENABLE_OPENID_SIGNUP = false # 禁用OpenID注册
五、验证配置生效
完成配置后务必:
-
重启 Gitea 服务
-
检查首页:注册按钮应消失
-
访问测试:
/user/sign_up应返回错误或重定向 -
邮件验证流程不再触发
六、推荐组合方案(防spam最佳实践)
对于暴露在公网的实例,建议多层防护:
ini
复制
[service]
DISABLE_REGISTRATION = false # 允许注册(用于白名单)
EMAIL_DOMAIN_ALLOWLIST = company.com # 严格限制邮箱域
REGISTER_MANUAL_CONFIRM = true # 人工审核
ENABLE_CAPTCHA = true # 验证码防机器人
DEFAULT_USER_IS_RESTRICTED = true # 新用户默认受限
[openid]
ENABLE_OPENID_SIGNUP = false # 关闭OpenID注册
极端场景:完全私有时,直接设置 DISABLE_REGISTRATION = true,管理员通过命令行创建用户:
bash
复制
sudo -u gitea gitea admin user create --username user --password pass --email user@company.com --admin
以上方法可根据实际需求灵活组合,实现从完全开放到完全封闭的注册控制。









