I'm not sure if this topic belongs here, to SO, or nowhere on the SE network, because I couldn't find anyone with the same requirement, so here goes:
Goal
To create a platform where me and my clients can share code projects we've developed and collaborate on them, under a single "umbrella" of my organization.
(Said projects are usually extensions to my software, which clients are willing to share with me and with other clients happily)
Why?
Currently, each of my clients that develops said projects stores them wherever they feel like - their own Github account, Google Drive, etc. That means they're harder to collaborate on, and impossible to find. I would like them to be able to host their code on a service/platform I provide, so that other clients can easily see all the projects that have been created with relation to my company/product.
What am I looking for?
I'm looking for a git-based source control solution, either self-hosted or cloud-based, that would allow the following abilities:
- Create some sort of segregation for my organization (if it's cloud, that is) as I need the ability to group all repositories that are associated to my organization and give users the ability to browse them. Doesn't apply for self-hosted solutions.
- Manage users, where some would be from my organization (employees) and would get certain privileges, but the majority would be external collaborators (customers)
- External collaborators must be able to create repositories associated with my organization
- Being able to create private repositories would be nice to have, not strictly required though
- Should either be free, or have a fixed price regardless of how many users I have (not including hardware costs, of course) - mostly due to said external collaborators
- Nice to have would be some SSO model to integrate with the identities of these external collaborators I have in other systems
- Have a decent web UI with authentication, pull request, code highlighting, forks and all the other features we've come to expect. Crucial abilities are:
- Support both SSH and HTTPS
- Syntax highlighting when viewing code files
- Graphical display of the branches and commits
- Readme.md rendering as each repo's landing page
- Branches, tags, forks
- Ability to download a repo (specific tag/branch) as zip
- Some basic ability to open and manage issues for each repo
What I've tried so far:
- I've looked at GitHub's organizations but as far as I could tell, while external collaborators can be added to the org's repos, they can't open their own repos in the org
- GitLab allows private repos and inviting members, but has no organizations feature I could find
- Both of the above have paid options but charge per user, and the prices are too steep for the purpose this will serve
- Some open source solutions that I can host myself exist (such as "GitBucket") but besides the maintenance and hardware costs, I'm not sure they are stable and well built enough for a "production" environment.
Any tips and pointers would be much appreciated.