Gitea 用户注册控制完整指南
Gitea 默认允许开放注册,但在私有部署场景中需要严格控制用户注册。以下是多种注册控制方案,从基础到高级:
一、基础注册控制(核心方法)
1. 完全禁用注册
通过修改配置文件 app.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. 注册邮箱白名单限制
只允许特定域名的邮箱注册:
[service] ENABLE_REGISTRATION = true # 保持注册开启 EMAIL_DOMAIN_ALLOWLIST = company.com,example.org # 仅允许这些域名
4. 管理员手动审核注册
用户提交注册后需管理员手动激活:
[service] REGISTER_MANUAL_CONFIRM = true # 注册需管理员审核 DISABLE_REGISTRATION = false # 保持注册入口可见
5. 启用注册验证码
防止机器人批量注册:
[service] ENABLE_CAPTCHA = true # 启用图形验证码
三、外部认证集成(企业级方案)
6. 仅允许外部服务注册
关闭本地注册,强制使用 LDAP/OAuth 等统一认证:
[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. 反向代理自动注册控制
若使用反向代理认证,可控制自动创建用户:
[service] ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false # 禁止自动创建用户 ENABLE_REVERSE_PROXY_AUTHENTICATION = true
四、Docker 环境特殊配置
# 进入容器修改配置 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 配置示例:
[service] DISABLE_REGISTRATION = true # 禁用注册 [openid] ENABLE_OPENID_SIGNIN = false # 禁用 OpenID 登录 ENABLE_OPENID_SIGNUP = false # 禁用 OpenID 注册
五、验证配置生效
完成配置后务必:
- 重启 Gitea 服务
- 检查首页:注册按钮应消失
- 访问测试:
/user/sign_up应返回错误或重定向 - 邮件验证流程不再触发
六、推荐组合方案(防 spam 最佳实践)
对于暴露在公网的实例,建议多层防护:
[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,管理员通过命令行创建用户:
sudo -u gitea gitea admin user create --username user --password pass --email [email protected] --admin
以上方法可根据实际需求灵活组合,实现从完全开放到完全封闭的注册控制。

