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 [email protected] --admin以上方法可根据实际需求灵活组合,实现从完全开放到完全封闭的注册控制。