Self-hosted CE v1.2.3: Gitea OAuth button never renders even when IS_GITEA_ENABLED=true
@akshat5302 is already working on this.
Since May 25, 2026.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
Is there an existing issue for this?
Searched 'gitea button', 'IS_GITEA_ENABLED frontend' — no matching open issue.
Current behavior
Self-hosted Plane CE v1.2.3 (helm chart 1.5.0). Backend Gitea OAuth properly configured:
- DB row `instance_configurations` has `IS_GITEA_ENABLED=1`, `GITEA_HOST`, `GITEA_CLIENT_ID`, encrypted `GITEA_CLIENT_SECRET`
- API endpoint `/api/instances/` returns `config.is_gitea_enabled: true`
- `python manage.py configure_instance` confirms env vars loaded
But the workspace/instance sign-in pages never render a "Sign in with Gitea" button. Only email/password login is shown.
Suspected root cause
API `/api/instances/` response exposes `github_app_name` field (so frontend can show GitHub button) but does not expose a parallel `gitea_app_name` or `gitea_client_id` field. Frontend likely has logic like:
```tsx
{is_github_enabled && github_app_name && }
{is_gitea_enabled && /* missing equivalent field check */ && }
```
If the frontend gates Gitea button rendering on a config field the API never sends, the button is silently suppressed.
Expected behavior
Symmetric with GitHub: when `IS_GITEA_ENABLED=1` AND `GITEA_HOST` / `GITEA_CLIENT_ID` are configured, sign-in pages should render a "Sign in with Gitea" button that initiates the OAuth flow.
Workarounds we considered (and rejected)
- Patching the prebuilt frontend image: not maintainable across upgrades
- Reverse-proxy response rewrite to inject the button: brittle, breaks on every release
- Switching to GitHub OAuth: works (button renders) but defeats the use case of integrating with a self-hosted Gitea/Forgejo for unified internal SSO
Use case
We self-host Forgejo behind Authelia. Configuring Plane CE → Gitea OAuth → Forgejo → Authelia would give us SSO + 2FA in one chain. Currently we have to fall back to email/password in Plane, which means Plane has weaker auth than every other tool in our internal stack.
Deployment
- Helm chart: makeplane/plane-ce 1.5.0
- App: v1.2.3
- Single-domain Kubernetes, Tailscale-internal
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.