<p>Take a look at Gitea, <a href="https://gitea.io/en-US/" rel="nofollow noreferrer">https://gitea.io/en-US/</a>, much easier to host yourself than Gitlab and you are in control if things go down. I think that by making the database backend HA you could roll out more Gitea frontends.</p>

<p>Another option to know about at least is Keybase private Git, <a href="https://keybase.io/blog/encrypted-git-for-everyone" rel="nofollow noreferrer">https://keybase.io/blog/encrypted-git-for-everyone</a>. Have not tried it or know anything about how it works.</p>

CC BY-SA 3.0
2018-03-03T11:46:41.843Z
2018-03-03T11:46:41.843Z
Elvar
<p>So, I know I’ve praised GitLab in my other answer to your questions before, but it really is awesome. They have a an HA solution called GitLab Geo. It’s primarily meant to speed up GitLab usage for geographically distributed teams, but the other main benefit is that the read-only secondary server can be easily promoted to be the master:</p>

<p><a href="https://about.gitlab.com/features/gitlab-geo/" rel="noreferrer">https://about.gitlab.com/features/gitlab-geo/</a></p>

<p>But to get back to your specific question: no. There is not really a way to get true high availability if you are relying on someone else. You can only ensure true HA if you have control over the infrastructure. This is one of the downfalls of using all SaaS solution. You have to hope thei internal ops teams have a good implementation under the hood.</p>

<p>For that reason, I wouldn’t even recommend using something like GitHub or GitLab.com SaaS paid plans. You should look into self hosted options considering this problem has severely affected your team’s ability to reach deadlines.</p>

<p>As @Tensibai mentioned, this is achievable with multiple remotes, sync scripts, watch processes, and other “glue code”, but it would be a lot of work and a lot to maintain. Another solution would be to self host a Git solution inside a docker container. You could have the file store backed by something like EFS and the database hosted in Amazon RDS. I’ve not tried this setup myself, but the theory is there: make the application hosting ephemeral, keep the files and datastore in a proven high-available system. Amazon’s uptime numbers are really good, though you still have the issue on relying on others here. The difference here is that the <em>entire</em> system isn’t out of your control. In the event your application Docker instance goes down, simply spin it up somewhere else and change the DNS.</p>

<p>That all being said, self-hosted GitLab on the other hand <em>does</em> have the magic bullet Geo solution that I previously mentioned. I’ve used it and it’s really nice  </p>

CC BY-SA 3.0
2018-03-03T02:40:39.963Z
2018-03-03T02:40:39.963Z
BoomShadow
<p>For the second time in three months, bitbucket is down</p>

<p><a href="https://status.developer.atlassian.com/" rel="nofollow noreferrer">https://status.developer.atlassian.com/</a></p>

<p>Now I wonder whether HA-git is possible or we should switch. Thanks to this it will be hard to finish the work before the deadline...</p>

<p>What other options do we have for the future? I am considering to start with on premise git as this did not break as often as the Saas solution. It ran without issues for almost 2 years and if there was a issue with the gitlab I configured then I could at least solve it or create a new gitlab and push the git repo as is.</p>

<p>Currently everybody is blocked as neither pull requests could be merged nor code could be pushed or pulled.</p>

<p>I do not want this anymore and I am quite disappointed.</p>

<p>As @Tensibai indicated that it is possible to use multiple remote git's:</p>

<p>My reply: "yes you are right. It is possible to setup multiple remote. What if code is pushed to gitlab and github and a PR is created on github. How to ensure that the code will be updated on gitlab and vice versa without making it tedious for most engineers?"</p>

<p>Based on the advice of @Tensibai, two different git repository will be added as a remote and it will be investigated how it works out.</p>

CC BY-SA 3.0
2018-03-02T22:05:23.427Z
Git is not centralised by nature, you should be able to merge work from two workstation with a git diff sent by mail. Another option is to use a machine with an ssh server for temporary centralisation as in the doc: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server (remember you can setup multiple remotes on a repository)
Tensibai
CC BY-SA 3.0
2018-03-02T22:23:35.300Z
@Tensibai yes you are right. It is possible to setup multiple remote. What if code is pushed to gitlab and github and a PR is created on github. How to ensure that the code will be updated on gitlab and vice versa without making it tedious for most engineers?
030
CC BY-SA 3.0
2018-03-02T23:07:21.687Z
Web hooks, sync scripts, there's a bunch of way to tackle the problem but it's highly dependent on what your company is comfortable with I think. In brief there's no silver bullet that I know
Tensibai
CC BY-SA 3.0
2018-03-03T09:05:56.910Z
Does HA stand for high availability? :-)
Ta Mu
CC BY-SA 3.0
2018-03-03T09:52:54.637Z
Yes, I will replace it by the high-availabilty tag
030
<git><high-availability>
Does HA-git exist?
030
# Does HA-git exist?

(Asked by: username_0 on 2018-03-02)

For the second time in three months, bitbucket is down

<https://status.developer.atlassian.com/>

Now I wonder whether HA-git is possible or we should switch. Thanks to this it will be hard to finish the work before the deadline...

What other options do we have for the future? I am considering to start with on premise git as this did not break as often as the Saas solution. It ran without issues for almost 2 years and if there was a issue with the gitlab I configured then I could at least solve it or create a new gitlab and push the git repo as is.

Currently everybody is blocked as neither pull requests could be merged nor code could be pushed or pulled.

I do not want this anymore and I am quite disappointed.

As @username_1 indicated that it is possible to use multiple remote git's:

My reply: "yes you are right. It is possible to setup multiple remote. What if code is pushed to gitlab and github and a PR is created on github. How to ensure that the code will be updated on gitlab and vice versa without making it tedious for most engineers?"

Based on the advice of @username_1, two different git repository will be added as a remote and it will be investigated how it works out.

**Tags:** git, high-availability

> **Comments:**
> **username_1**: Git is not centralised by nature, you should be able to merge work from two workstation with a git diff sent by mail. Another option is to use a machine with an ssh server for temporary centralisation as in the doc: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server (remember you can setup multiple remotes on a repository)  
> **username_0**: @username_1 yes you are right. It is possible to setup multiple remote. What if code is pushed to gitlab and github and a PR is created on github. How to ensure that the code will be updated on gitlab and vice versa without making it tedious for most engineers?  
> **username_1**: Web hooks, sync scripts, there's a bunch of way to tackle the problem but it's highly dependent on what your company is comfortable with I think. In brief there's no silver bullet that I know  
> **username_2**: Does HA stand for high availability? :-)  
> **username_0**: Yes, I will replace it by the high-availabilty tag  

---

## 2 answers

### Answer by username_4 on 2018-03-03. Score: 5 | Accepted answer

So, I know I’ve praised GitLab in my other answer to your questions before, but it really is awesome. They have a an HA solution called GitLab Geo. It’s primarily meant to speed up GitLab usage for geographically distributed teams, but the other main benefit is that the read-only secondary server can be easily promoted to be the master:

<https://about.gitlab.com/features/gitlab-geo/>

But to get back to your specific question: no. There is not really a way to get true high availability if you are relying on someone else. You can only ensure true HA if you have control over the infrastructure. This is one of the downfalls of using all SaaS solution. You have to hope thei internal ops teams have a good implementation under the hood.

For that reason, I wouldn’t even recommend using something like GitHub or GitLab.com SaaS paid plans. You should look into self hosted options considering this problem has severely affected your team’s ability to reach deadlines.

As @username_1 mentioned, this is achievable with multiple remotes, sync scripts, watch processes, and other “glue code”, but it would be a lot of work and a lot to maintain. Another solution would be to self host a Git solution inside a docker container. You could have the file store backed by something like EFS and the database hosted in Amazon RDS. I’ve not tried this setup myself, but the theory is there: make the application hosting ephemeral, keep the files and datastore in a proven high-available system. Amazon’s uptime numbers are really good, though you still have the issue on relying on others here. The difference here is that the *entire* system isn’t out of your control. In the event your application Docker instance goes down, simply spin it up somewhere else and change the DNS.

That all being said, self-hosted GitLab on the other hand *does* have the magic bullet Geo solution that I previously mentioned. I’ve used it and it’s really nice


---

### Answer by username_3 on 2018-03-03. Score: 3

Take a look at Gitea, <https://gitea.io/en-US/>, much easier to host yourself than Gitlab and you are in control if things go down. I think that by making the database backend HA you could roll out more Gitea frontends.

Another option to know about at least is Keybase private Git, <https://keybase.io/blog/encrypted-git-for-everyone>. Have not tried it or know anything about how it works.


---

