Imo a relatively sure way for "global" control would be setting up an SSO provider and managing access through that. Though that's additional work and you'd still have to set the right settings in the application itself to how you want it.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Have you looked at Gitea? I use it myself, but mine is private and I am the only user, so I can't help with your specific issue. I did find this post before replying: Can new users be restricted to issues only? although this might mess up your ability to have pull requests.
Not git(ea) but Synapse: I use separate Traefik routers for internal and external endpoints. Internal has access to all paths but for external entry points I allow or deny list paths as needed. It’s error prone as it can either break the app if not everything required is allowlisted, or cause a security issue if not everything is deny listed.
Invite only registrations is what I am usually doing.
For git forges like Gitea you can also do Oauth2 logins via common services like Github/Gitlab but it is not idea. I hope forge federation will arrive soon to solve that :)