External GIT server

Hi there

Before i install and test it: Can i use an external GIT server with gitea?

IMPORTANT: I don’t mean to make copies or mirroring or something like that. I mean the only one GIT service (on port 80) sould be on another IP / computer / VM.

Gitea should be just the GUI - and nothing else.

If no: Is there another solution for that issue?

Thx for feedbacks.


What is a git server?

For example:

git clone http://GIT_SERVER


git clone ssh://GIT_SERVER

What else?!?

I mean Gitea should be (in my case) just a GUI for an external GIT server.

Similar to https://www.gitssh2.com/

“What is a git server?”

Is that the only one answer for my question, a question itself?

Maybe my question it too complex for that forum…?


Ok, so if I understand you correctly:
You have a server where you are storing your git repositories, which you can interact with via

For example:

git clone http://GIT_SERVER


git clone ssh://GIT_SERVER

Now, you’d like to add a GUI to view your git repositories stored on GIT_SERVER, but you dont want to move or copy the repositories to have them stored by Gitea itself.

Would you be running Gitea on GIT_SERVER or on another server?
If you’d run Gitea on GIT_SERVER, maybe you’d be able to have them both use the same directory for repository storage, and thus point the repos out to Gitea?

If my interpretation is correct, maybe someone with some deeper knowledge can help out with what they think, if it’s possible or not.

Basically: “Is it possible to use Gitea as a GUI-layer on top of an external Git service, without making changes to the repositories”?

" Now, you’d like to add a GUI to view your git repositories stored on GIT_SERVER , but you dont want to move or copy the repositories to have them stored by Gitea itself.

Would you be running Gitea on GIT_SERVER or on another server?"

“Is it possible to use Gitea as a GUI-layer on top of an external Git service, without making changes to the repositories”

Exactly! :slight_smile:

Regards, Jan

How does the migration type “mirror” work? Does is synchronize on both directions?

Maybe this is a workaround for the thing i’ve planned…?



Regarding to my “workaround” idea:

  1. I created 2 new repos (TESTREPO1, TESTREPO2) on the OLD GIT server - the one i would like to use as remote repo.

  2. Then i added the urls (http) on the Gitea machine. (“New migration”, “Mirror” & “private”) But there was a problem because there was no initial commit on the OLD GIT server. (so i already said - the remote one)

  3. Because of that i wrote on 2.) i’ve done an initial commit on the OLD GIT server via HTTP.

  4. After that, i was able to add there repositories in Gitea. (“New migration”, “Mirror” & “private”) And then i also saw my first (initial) commit.

  5. Then i’ve done a 2nd commit on the OLD GIT server - but it’s not visiable, even after 5 minutes, on the Gitea machine which should act as a mirror.

  6. Then i also configured the mirroring-configured repo in sourcetree with the url and and tried to do an commit from the “other direction”

  7. Message:

I think this makes sense, because there was a commit on the OLD GIT server, that was not correctly mirrored to the Gitea machine. So that should result in a confilct.

But why i have a “read only” and 403 message instead of conflict?

Maybe there is a problem with the “private” option? What does this mean? I think “private” means that the GIT project is even unavailable for read access from outside. (Similar to GitHub?)

Thank you for your feedback. Plesk ask me if you need more informations! :slight_smile:


What i need is full synchronisation (=mirroring) on both directions if remote repositories are not possible.

If this is also not possible by design, then i need at least that the gitea machine does synchronize the commit/push actions from it’s clients (connected by http) to the old git server.

(but i think that’s also not possible by design, if that would be possible i would not need an initial commit on the OLD Git server…?)


Regards, Jan

  1. The OLD Git server need an initial commit so Gitea can mirror it

  2. Commit / push to the old Server will not be mirrored the Gitea - only the data that are available on the moment when i click the “migrate” button.

So it seems, there is abolutely not mirroring/synchronization. It just makes a copy from the remote repo just with the data at the time of migration…?

Regards, Jan

Oh, so i saw now there is a “Synchronize” button to get new newest data from the remote repo. But after clicking, i get the message “Come back in a few minutes”…

…i came back in a “few minutes” (whatever it means, maybe 5??) but it didn’t got the newest data from the remote repo…?? Still the old text -> “1 hour ago” on the Gitea repo entry on the Gitea start page!

It is able the get a copy (first Mirroring), but it isn’t able the update that copy later via the “Synchronize” button - that makes no sense!

Why that problem, and what is the solution?

Regards, Jan

Now i see some changes sychronized from the old repo to the new one from Gitea… BUT: The changes are only visiable via the SourceTree GIT Client connected to Gitea via http - but NOT in the Gitea Web GUI.

And i also had a merge conflict - normal because of my actions… but i solved it in SourceTree GIT Client. Then still the same problem with “read only” and 403 - also after unflagging “private” repo flag.

EDIT: “1 hour ago” seems to be related to the creation time/date. But after clicking on a repo entry i still not see the other commit (that i only see in SourceTre after click “Synchronize”…)

EDIT2: When i use a Gitea Repo only (without sync/mirroring to other server), there is no “read only” / 403 problem. URL has the same pattern: with “…/xxx.git” at the end. why it works in that case?

Regards, Jan

I made a bug case now, because i don’t think that it’s the “normal” behavior!!
-> https://github.com/go-gitea/gitea/issues/8084

Gitea’s GUI is a lil bit confusing, that’s the issue!! :wink:

On the repo main page, there is only 1 entry in vertical direction - even if there are more than 1 commit. So i saw, you have to click on “x Commits” to view all of them…

But the “remote repository is read-only” problem still persists - and no, the remote repo is NOT read-only… how i should done the first (initial) commit when it’s read only…?

And i’m still able to commit on the remote repo when i’m directly connected to it. But not if Gitea is connected to it.

And the http basic auth url stored in gitea works when i copy/paste it to browser bar:


And SourceTree, where i can commit to the repo (directly, no over Gitea) also uses that http basic auth.

So problem 1 i not really a problem, but problem 2 is still unsolved!

How to solve it?

Thank you for your feedbacks,

I also updated the bug case on github…:wink:

No answer until now, here and on github?

Maybe my problem is too complex for that forum?

To be fair, I can imagine most people not having that much experience in setting up the setup you are describing, and since I would imagine most of those who frequent this forum are happy using Gitea both as their UI and git service it isn’t at the top of their priority list to solve.

I know from experience that problems that aren’t general enough to be a priority for the larger community often needs to be solved by the user at hand. Opening an issue is a good step, but when it comes down to implementing a solution it may have to be you who does it and opens a Pull Request, if no one else is up for it. (It’s what I’ve had to do)