You can use arbitrary Git repositories with a BinderHub. Not just GitHub.com and GitLab.com. Related to this a question came up on how to actually do it.
Duplicating my answer here to make it easier to find.
You need to explicitly specify the revision you want, you can’t write master for the “arbitrary git URL” mode as we have no way to resolve that “word” into a revision, which is what we need to check the build cache. For GitHub and GitLab there is a little bit of magic to talk to the respective APIs to resolve it first. Could add this for bitbucket as well if someone is interested enough to open a PR.