I tried to use gitlab and was very excited with the self host option. But for a small business, it was too much hassle with setup, installation and the biggest issue: huge memory requirement. On a DigitalOcean droplet of 512MB, it was too slow. I switched to Bitbucket private repo.
I'm not sure it's realistic to expect great performance on a tiny droplet in a budget provider that over-provisions the heck out of these tiny instance sizes.
Spend more than $5/month and you may get better results.
It's actually not so obvious. I run an droplet with email, xmpp, web, several django apps (+postgres), and a few other small things, and don't even come close to pushing the limit on the cheapest DO droplet.
GitLab has actually a pretty large overhead, and for a single user, it requires quite a bit of CPU/RAM. I assume that the requirement is not lineal though.
No, they're not. That said, there is no valid engineering reason why any web app should require more than 512MB of memory to run with minimal user load.
User load is what bumps up the RAM requirements. If the active user count is in the single digits and you're running into problems with RAM, either something is deeply misconfigured on your server, you have a ton of data, or the codebase is poor.
Wow, that's a lot of blanket statements. Nevermind the fact that GitLab won't even have a full 512 MB at its disposal in your particular case (the $5 512 MB droplet).
Memory is cheap. GitLab's resource usage doesn't increase much from the baseline as you go from 1 user to 100 users. You just can't run it on a potato.
An empty Rails app is already 100MB+ or memory. GitLab is running the largest open source rails app. Also, since we use Unicorn instead of multithreading we have to spin up multiple Rails apps.
>That said, there is no valid engineering reason why any web app should require more than 512MB of memory to run with minimal user load.
GitLab (and every other Rails app) makes the assumption that it's better to eager load an entire codebase once at boot time rather than to load code on demand and throw it away during a request.
That trades off baseline memory usage for runtime performance, and it's a perfectly valid 'engineering reason' for why GitLab's baseline memory usage is so high.
I think you're comparing apples to oranges. As far as I know BitBucket doesn't offer a self hosted solution but GitLab offers both. In fact they match BitBucket on pricing too, well at least for the free tier. You can host private repos directly on GitLab and BitBucket for free.
The self hosted option may not be right for you especially if you're already using BitBucket private repos. Why did you not try GitLab's hosted private repos?
I'm curious as to why you didn't simply go with the free hosted gitlab.com option, instead of bitbucket. Both are hosted, and I feel that gitlab has more features (ci, free, and a few small niceties).
May be i was not doing something right.