Ich nutze hauptsächlich git. Und zwar nur git, also ohne GitHub/GitLab/Gogs/Gitea/... Der Grund ist, dass ich nichts maintainen mag bei privaten Projekten. Es sind einfach ein paar lokale Files, die Teil des ganz normalen Backups sind. Gegebenenfalls habe ich auch auf meinem Server ein Bare Repo auf das pushe, also einfach über SSH.
Allerdings spiele ich mich auch ab und zu mit
Fossil. Das ist von den Machern von SQLite und hätte einige Stärken. Ich hätte immer noch "einfach ein paar Files", aber auch Wiki, Bugtracker und Co., die Teil des Repo sind ohne den Maintainance-Aufwand. Außerdem ist Git mehr die eierlegende Wollmilchsau was Use Cases angeht und auch der Grund warum auch einige Leute zentrale VCSs erlauben. Jedenfalls hat Fossil deshalb einen deutlich niedrigeren Verwirrungsfaktor, gerade rund um Merging, etc. und wenn ich beruflich mit Unternehmen arbeite, wo die Belegschaft eigentlich nur kämpft mit Git und immer wenn das Thema aufkommt eigentlich nur flüchten mag oder die Augen verdreht wundert es mich, dass Fossil nicht sehr viel weiter verbreitet ist. Klar, alles hat Vor- und Nachteile, aber es dürfte mehr dem entsprechen was sich viele Unternehmen und Einzelpersonen die Git nur verwenden weil es populär ist eigentlich wünschen. Und, dass man dann extra Leute/Arbeitszeit für GitLab, etc. abstellt ist nur ein weiterer Grund.
Andererseits muss ich auch sagen, dass mir persönlich die Flexibilität von Git ziemlich gefällt. Also dass man damit wenn man Lust hat auch monströse Hacks und Prozesse zusammenbauen kann oder auch so Sachen, dass Workflows über E-Mail quasi First Class in Standard-Git ist hat schon was, auch wenn das kaum jemand verwendet.
EDIT: Oh und ein Tipp, wenn man "sowas wie GitHub" will. Also neben der Überlegung zu Fossil, wenn man Git verwendet. Nehmt euch was was ihr auch wirklich braucht. Stellt davor eine Liste von Sachen die ihr tatsächlich verwenden würdet auf und vergleicht das dann damit mit dem Aufwand den ihr mit Maintainance habt. Ich sehe das so oft, dass dann Leute mit Begeisterung GitLab mit einem Guide oder gar einen Tool mit allem möglichen Zeug installieren, von dem die nicht mal verstehen was das überhaupt ist und dann alles Zeit auf Maintainance, Disaster Recovery, Upgrades, etc. geht. Vielleicht reicht auch Git mit einem TODO, BUGS und NOTES File, vielleicht braucht man kein GitLab/Redmine/... und sowas wie Gogs und Gitea, was zumindest ein Single-Binary ist und kleinere Upgrades hat reicht auch.
Was ich damit sagen will ist verwendet nicht mehr Zeit mit dem System das euren Code versioniert als mit dem Code selbst. Das kann so weit gehen, dass ihr dann nur deshalb keine Lust mehr habt den Code anzugreifen und oft ist das schade. Und gerade bei privaten Projekten, wenn euch das auffällt, traut euch umzusteigen und das anders zu machen. Wenn ihr drafkommt, dass das nicht funktioniert und dass ihr eigentlich nur eine Liste von Commits braucht dann entwickelt mal anders. Verwendet euer Git lokal weiter und weitet das Backup auf euren Code aus. Lasst euch da nicht davon abhalten Spaß haben an eurem Code zu basteln nur weil da irgendwo ein Breaking Change in einem Tool, das ihr eigentlich eh nicht braucht gibt.