GitHub Enterprise pricing is a fucking joke. Started at $8K/month for our team, ended up at $31K after infrastructure and two full-time ops people. GitHub's pricing calculator doesn't include the hidden costs - servers, monitoring, storage, and full-time ops staff. When I calculated we were spending $186K/year just keeping GitHub working, I knew we had a problem.
The Clustering Documentation Is Complete Fiction
I've deployed GitHub Enterprise clustering three times. GitHub's clustering docs are written by someone who's never touched production infrastructure. Random node failures? Check. Split-brain scenarios that brick your entire Git platform at 2am? Double check.
The backup process failed silently for 4 months. Found out during an emergency when we needed to restore and discovered our backups were corrupted. GitHub's backup utilities documentation doesn't mention this failure mode. GitHub support's response: "Have you tried turning it off and on again?"
GitHub's real genius is vendor lock-in. GitHub Actions workflows won't work anywhere else, so you're rebuilding CI/CD from scratch. Their export tools are intentionally shitty - they want you to stay trapped. GitLab's migration documentation exists because so many people are trying to escape.
What I Tried That Actually Worked
After our first migration attempt turned into a 6-month clusterfuck, I tested everything:
GitLab Enterprise - Costs $99/user/month but they won't tell you that until you waste 3 hours with their sales team. GitLab's importer shit the bed on our complex repos. Spent 4 months rebuilding GitHub Actions workflows. Memory usage was insane - their "8GB minimum" requirements actually needs 32GB or Sidekiq workers crash with "Sidekiq::Retry exhausted" errors. GitLab's memory-constrained documentation is complete fiction.
Azure DevOps Server - Actually works if you're a Microsoft shop. Their migration tools don't suck, which shocked me. Azure DevOps Data Migration Tool actually works for complex repositories. Need someone who knows SQL Server or you'll hate life. Azure Pipelines YAML is different but more logical than GitHub Actions. Cost us about $12K/month all-in.
Bitbucket Data Center - If you're already trapped in Atlassian's ecosystem, it's decent. Their clustering docs actually help instead of GitHub's "figure it out yourself" approach. UI looks like 2015 but doesn't randomly break. Bitbucket Pipelines is basic but reliable.
Gitea/Forgejo - Single Go binary that just fucking works. Deployed it in 20 minutes on a basic VPS. Gitea Actions runs most GitHub workflows without changes - the compatibility is actually impressive. Dropped our monthly costs from $31K to $400. You give up integrated everything, but sometimes simple is better.
What Actually Matters (Learned the Hard Way)
Forget the feature comparison charts. Here's what really matters:
Can your team handle the ops burden? GitLab Enterprise will eat your on-call rotation alive. We had PostgreSQL connection exhaustion alerts at 3am every week. Azure DevOps Server is fine if someone knows SQL Server - otherwise you're fucked. Gitea? I check logs once a month. Don't kid yourself about your team's ops capacity. Check GitHub's clustering configuration and high availability documentation to understand the operational complexity.
How deep are you in GitHub's ecosystem? GitHub Actions workflows are the real trap. Spent 4 months converting complex deployment pipelines to GitLab CI. Gitea Actions runs most workflows unchanged - that's why we went back to it. Everything else means rebuilding your entire CI/CD from scratch.
What's your actual budget? $21/user/month becomes $31K/month real fast. Then add servers, monitoring, backup storage, security scanning, and two full-time ops people at $150K each. Whatever you're quoted, double it. Compare that to GitHub's Enterprise pricing and don't forget total cost of ownership calculations that include infrastructure and operational overhead.