For completely private services, the obvious answer is a VPN. But what about the ones that need to be “partially” public? Whether just read only, or with restrictions to publicly registered accounts.
For example, If I wanted to open up a git host where I allow public registrations so they can send issues/patches but can’t create repos (kinda impossible with pull requests but you get my point)
Is there any specific thing you can do, or do you just disable registrations completely except for something “out-of-band” (ask me on XYZ to create an account for you, git send-email, mirrors to public services, etc…)
Of course, individual software may have access control features built in, but as a whole, is there anything reasonably generic?
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:
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.
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 :)
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.
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.