This is easy to reproduce. Find a large repository with lots of history and committers. Mirror it to a local Gitea instance. I will use
https://git.FreeBSD.org/ports.git since that’s how I was able to produce this behavior.
Depending on how fast/slow your server is you may or may not be able to use the migration tool in the web UI. For me it was timing out. My server is a dual socket Xeon 3.00GHz with 16 GB of RAM on NVMe’s.
I had to do it manually after creating an empty repository with the web UI.
git clone https://git.FreeBSD.org/ports.git cd ports git remote add gitea firstname.lastname@example.org:freebsd/ports.git git push -u gitea main:master
Now try to browse to the repository on your local Gitea instance, ie.
Note: if you are using an Apache HTTP server as a remote proxy to Gitea you may need to increase the time out with
ProxyTimeout. I set mine to 180 seconds.
Look at the process list on your server. You’ll see 100% CPU usage for
gitea web while the page continues to load in your browser. Eventually (if the reverse proxy doesn’t timeout) the page is displayed. This is understandable. It’s the first time the large repository is opened in Gitea.
Now refresh the page. It unfortunately takes the same amount of time to load. I would have hoped that some caching would be in use to speed that up.
My Gitea’s app.ini can be seen here.