[{"data":1,"prerenderedAt":169},["ShallowReactive",2],{"seo-verification":3,"blog-gitea-vs-gitlab-which-self-hosted-git-forge-on-a-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":23,"featuredImage":25,"bgImage":26,"posterImage":27,"relatedSolution":28,"intro":31,"sections":32,"ctaTitle":114,"ctaBody":115,"ctaButton":116,"ctaUrl":117,"relatedPosts":118},99,"gitea-vs-gitlab-which-self-hosted-git-forge-on-a-vps",{"fr":10,"en":8,"ar":11},"gitea-vs-gitlab","gitea-مقابل-gitlab-أي-منصة-git-مستضافة-ذاتيا-على-vps","Gitea vs GitLab: Which Self-Hosted Git Forge on a VPS?","Gitea vs GitLab self-hosted: memory footprint, CI\u002FCD, registries, and scalability compared to choose your Git forge on a VPS.",3,2,false,"2026-03-13T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},5,"Comparison","comparatif","bg-info\u002F10 text-info",[24],{"id":19,"name":20,"slug":21,"color":22,"icon":21},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fgitea-vs-gitlab-poster.svg",{"categorySlug":29,"appSlug":30},"development","gitea","Hosting your own Git forge means taking back control of your code, your CI, and your secrets. Gitea plays the lightweight card, GitLab the all-in-one platform. Here's how to decide and deploy yours on a VPS.",[33,37,47,50,72,111],{"type":34,"title":35,"body":36},"h2","Why Self-Host Your Git Forge on a VPS","A self-hosted Git forge keeps your intellectual property off public platforms and removes any arbitrary limit on the number of private repositories, collaborators, or CI minutes. On a VPS, you control data location, backups, and integration with your internal pipeline. Gitea (and its fork Forgejo) is written in Go: a single binary, instant startup, minimal memory footprint, ideal for a modest VPS. GitLab CE is an integrated suite (issues, CI\u002FCD, Docker registry, package registry, wiki, environments) but consumes far more RAM. The choice depends on your need: a clean, fast Git, or a complete DevOps platform in a single product.",{"type":38,"title":39,"items":40},"ul","The Benefits of a Self-Hosted Forge",[41,42,43,44,45,46],"Private repositories with no cap and no per-seat subscription","CI\u002FCD under your control, with your own runners on the VPS","Secrets and tokens stored on your own server, off a third-party platform","Built-in Docker image and package registry, close to your deployments","Compliance and data residency in Morocco fully under control","With Gitea: a single binary, back up by copying a folder and a database",{"type":34,"title":48,"body":49},"Prerequisites by Chosen Forge","Gitea is frugal: 1 vCPU and 1 GB of RAM are enough for a small team, 2 GB with the database and a few runners. GitLab CE is far more demanding: aim for at least 4 GB of RAM (8 GB recommended in real-world use with CI), 4 vCPUs, and a fast disk, since the suite bundles PostgreSQL, Redis, Sidekiq, and Gitaly. In both cases you'll need Docker and Compose, a subdomain (git.yourdomain.com), a reverse proxy for TLS, and ideally a second subdomain if you enable the Docker registry. Plan for a dedicated volume for the repositories and a backup strategy.",{"type":51,"title":52,"steps":53},"steps","Deploy Gitea (or GitLab) on a VPS with Docker",[54,57,60,63,66,69],{"title":55,"body":56},"Create the Volumes and the Network","Prepare `mkdir -p \u002Fsrv\u002Fgitea\u002F{data,db}` and a dedicated Docker network `docker network create forge`. Separating data\u002Fdb makes it easier to back up the code and the database independently.",{"title":58,"body":59},"Define the docker-compose.yml","For Gitea, declare the `gitea\u002Fgitea` service plus a `postgres`, mount the volumes, and expose HTTP port `3000` and Git SSH port `2222` locally. For GitLab, use `gitlab\u002Fgitlab-ce` with the `GITLAB_OMNIBUS_CONFIG` variable to set the `external_url`.",{"title":61,"body":62},"Launch and Finish the Installation","Run `docker compose up -d`. Gitea shows an installation wizard on first connection (fill in the database type and the domain); GitLab takes several minutes to initialize—retrieve the generated root password from the logs.",{"title":64,"body":65},"Configure the Reverse Proxy and SSL","Proxy git.yourdomain.com to the forge's HTTP port with Caddy or Nginx to obtain a Let's Encrypt certificate. Make sure to pass the correct `X-Forwarded-Proto` so that the HTTPS clone URLs are correct.",{"title":67,"body":68},"Enable Git SSH","Map the container's SSH port to a VPS port (e.g. 2222) and set up your keys. Set `SSH_DOMAIN` so that the `git clone` commands suggested by the interface are accurate.",{"title":70,"body":71},"Wire Up CI\u002FCD","Register a runner: Gitea Actions (compatible with GitHub Actions syntax) or a Docker GitLab Runner. Limit its resources and isolate it in its own container so that a heavy job doesn't bring the forge down.",{"type":73,"headers":74,"rows":78},"comparison",[75,76,77],"Criterion","Gitea","GitLab CE",[79,83,87,91,95,99,103,107],[80,81,82],"Recommended minimum RAM","1 to 2 GB","4 to 8 GB",[84,85,86],"Architecture","Single Go binary","Multi-service suite (omnibus)",[88,89,90],"Startup time","Near-instant","Several minutes",[92,93,94],"Built-in CI\u002FCD","Gitea Actions (GitHub-style)","GitLab CI\u002FCD, very complete",[96,97,98],"Docker \u002F package registry","Included and lightweight","Included, rich",[100,101,102],"Project management (issues, boards)","Essential","Advanced (epics depending on edition)",[104,105,106],"Ease of backup","Folder + SQL dump","Dedicated omnibus procedure",[108,109,110],"Ideal for","Modest VPS, small\u002Fmedium team","Complete DevOps platform",{"type":112,"body":113},"tip","On GitLab, avoid the OOM-kill on a small VPS by reducing concurrency: set `puma['worker_processes']` to 2 and `sidekiq['max_concurrency']` to 10 in the omnibus config. If RAM remains a problem, look at Forgejo (a community fork of Gitea), which keeps the lightness while covering 90% of a team's needs, registry and Actions included.","Your Git Forge, Ready to Clone","A ServOrbit Cloud VPS with a Docker template lets you deploy Gitea or GitLab with a reverse proxy, SSL, and a CI runner in a few steps, right from your client area.","Launch My Forge on a VPS","\u002Fvps-cloud",[119,136,152],{"id":120,"slug":121,"slugs":122,"title":125,"excerpt":126,"readTime":15,"views":127,"isPinned":16,"publishedAt":128,"category":129,"categories":130,"featuredImage":25,"bgImage":26,"posterImage":132,"relatedSolution":133},4,"coolify-vs-dokploy-which-tool-to-deploy-on-a-vps",{"fr":123,"en":121,"ar":124},"coolify-vs-dokploy","coolify-مقابل-dokploy-أي-أداة-للنشر-على-vps","Coolify vs Dokploy: which tool to deploy on a VPS?","A complete Coolify vs Dokploy comparison: features, simplicity, use cases. Which tool should you choose to host and deploy your applications on a VPS?",0,"2026-06-07T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[131],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fcoolify-vs-dokploy-poster.svg",{"categorySlug":134,"appSlug":135},"application-deployment-devops","coolify",{"id":137,"slug":138,"slugs":139,"title":142,"excerpt":143,"readTime":14,"views":127,"isPinned":16,"publishedAt":144,"category":145,"categories":146,"featuredImage":25,"bgImage":26,"posterImage":148,"relatedSolution":149},93,"n8n-vs-node-red-which-self-hosted-automation-tool-to-choose",{"fr":140,"en":138,"ar":141},"n8n-vs-node-red","n8n-مقابل-node-red-أي-أداة-أتمتة-مستضافة-ذاتيا-تختار","n8n vs Node-RED: which self-hosted automation tool to choose?","n8n or Node-RED to automate your workflows on a VPS? Technical comparison, Docker prerequisites and self-hosted deployment guide.","2026-03-19T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[147],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fn8n-vs-node-red-poster.svg",{"categorySlug":150,"appSlug":151},"automation-workflows","n8n",{"id":153,"slug":154,"slugs":155,"title":158,"excerpt":159,"readTime":160,"views":127,"isPinned":16,"publishedAt":161,"category":162,"categories":163,"featuredImage":25,"bgImage":26,"posterImage":165,"relatedSolution":166},94,"supabase-vs-appwrite-which-self-hosted-backend-for-your-vps",{"fr":156,"en":154,"ar":157},"supabase-vs-appwrite","supabase-مقابل-appwrite-أي-خلفية-مستضافة-ذاتيا-لـ-vps","Supabase vs Appwrite: Choosing Your Open-Source BaaS on a VPS","Full comparison of Supabase vs Appwrite: Docker deployment, RAM requirements, auth, serverless functions, realtime, and a decision guide for your VPS.",10,"2026-03-18T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[164],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fsupabase-vs-appwrite-poster.svg",{"categorySlug":167,"appSlug":168},"databases","supabase",1787661715724]