[{"data":1,"prerenderedAt":155},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-forgejo-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":25,"intro":27,"sections":28,"ctaTitle":110,"ctaBody":111,"ctaButton":112,"ctaUrl":113,"relatedPosts":114},75,"heberger-forgejo","Host Forgejo on your own VPS","Install Forgejo, the community fork of Gitea, on your VPS with Docker and SSL. A sovereign, 100% free Git forge.",7,575,false,"2026-04-06T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[21],{"id":11,"name":16,"slug":17,"color":18,"icon":19},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-forgejo-poster.svg",{"categorySlug":17,"appSlug":26},"forgejo","Forgejo is the community fork of Gitea, driven by Codeberg e.V. and placed under nonprofit governance. It aims to be a truly sovereign, federatable Git forge with no commercial dependency. Here is how to deploy it on your VPS with Docker, a reverse proxy and an SSL certificate, and what sets it apart from Gitea.",[29,33,43,46,68,71],{"type":30,"title":31,"body":32},"h2","Why choose Forgejo for your self-hosted forge","Forgejo was born in 2022 out of a disagreement over the governance of Gitea, which had come under the control of a company. The project is now maintained by a nonprofit association and is progressing toward a decentralized forge capable of federation via ActivityPub — the goal being that a repository on one instance can interact with an issue opened from another instance. For anyone who values the longevity and independence of their tooling, Forgejo offers the same technical qualities as Gitea (lightweight, fast, low consumption) while guaranteeing a fully community-driven license and governance. It is the reference forge of Codeberg, which proves its ability to hold up under production load.",{"type":34,"title":35,"items":36},"ul","Concrete benefits of a self-hosted Forgejo",[37,38,39,40,41,42],"Nonprofit association governance: no risk of a commercial pivot of the project.","Forgejo Actions, compatible with the syntax of GitHub Actions workflows, with no third-party service.","Painless migration from Gitea: same database and data volume format.","ActivityPub federation being rolled out to interconnect instances.","Lightweight footprint identical to Gitea: ideal on a modest VPS.","100% free software, with no paid enterprise edition or restricted feature.",{"type":30,"title":44,"body":45},"Hardware and software prerequisites","Like Gitea, Forgejo is extremely lean. A VPS with 2 vCPU and 2 GB of RAM handles a team of 10 to 20 developers effortlessly; move up to 4 GB if you run Forgejo Actions with runners that compile locally. Reserve 20 to 40 GB of SSD for repositories and history. You need Docker and Docker Compose, a `git.yourdomain.com` subdomain with an A record to the VPS IP, and a port distinct from the system port 22 for repository SSH (for example 2222).",{"type":47,"title":48,"steps":49},"steps","Deploy Forgejo with Docker and SSL",[50,53,56,59,62,65],{"title":51,"body":52},"Initialize the environment","Over SSH on the VPS, install Docker and the Compose plugin, then create `\u002Fopt\u002Fforgejo`. Plan for a `data` subfolder that will contain repositories, configuration and avatars, mounted as a volume to withstand updates.",{"title":54,"body":55},"Write the docker-compose.yml","Use the official image `codeberg.org\u002Fforgejo\u002Fforgejo:latest`. Add a `postgres:16` service for the database. Mount `.\u002Fdata:\u002Fdata`, set `USER_UID`\u002F`USER_GID` to 1000 and publish Forgejo's SSH on the host with `\"2222:22\"`, keeping port 3000 internal.",{"title":57,"body":58},"Start the stack","Run `docker compose up -d`, then watch `docker compose logs -f forgejo` until you see the HTTP server listening on port 3000 and the database responding.",{"title":60,"body":61},"Set up the reverse proxy and SSL","With Caddy: `git.yourdomain.com { reverse_proxy localhost:3000 }`, the Let's Encrypt certificate is handled automatically. With Traefik or Nginx, proxy to `127.0.0.1:3000` and enable HTTP\u002F2 as well as HTTP-to-HTTPS redirection.",{"title":63,"body":64},"Configure the instance","Go to `https:\u002F\u002Fgit.yourdomain.com`, fill in the PostgreSQL host (`db:5432`), the HTTPS base URL and the external SSH port 2222. Create the administrator account and disable self-registration for a private instance.",{"title":66,"body":67},"Connect a Forgejo Actions runner","Retrieve the registration token from the administration, then start a `forgejo-runner` container pointing to your instance. Validate with a minimal `.forgejo\u002Fworkflows\u002Fci.yml` workflow that runs `echo ok`.",{"type":69,"body":70},"tip","If you are migrating from an existing Gitea instance, Forgejo reads the same data volume and the same database directly: stop Gitea, back up, replace the image with Forgejo's in the `docker-compose.yml`, then restart. The Forgejo version must be compatible with the Gitea version in use — check the version correspondence table before the switch to avoid a one-way schema migration. Always take a snapshot of the VPS before the operation.",{"type":72,"title":73,"headers":74,"rows":78},"comparison","Forgejo versus Gitea",[75,76,77],"Criterion","Forgejo","Gitea",[79,83,87,91,95,98,102,106],[80,81,82],"Governance","Nonprofit association (Codeberg e.V.)","Commercial company",[84,85,86],"License \u002F model","100% free, no enterprise edition","Open source with a commercial Gitea Cloud edition",[88,89,90],"Built-in CI\u002FCD","Forgejo Actions (GitHub Actions compatible)","Gitea Actions (GitHub Actions compatible)",[92,93,94],"Federation","ActivityPub in active development","Not a priority",[96,97,97],"RAM consumption","Very low (~200-300 MB)",[99,100,101],"Cross migration","Reads the Gitea volume and database","Origin of the fork",[103,104,105],"Docker image","codeberg.org\u002Fforgejo\u002Fforgejo","gitea\u002Fgitea",[107,108,109],"Typical use case","Sovereignty and community longevity","General-purpose forge with possible managed services","Host your sovereign Forgejo forge on a ServOrbit Cloud VPS","With a Cloud VPS delivered with Docker ready to use, set up Forgejo and its CI\u002FCD runner in a few commands. You keep full control of your code and your data.","Launch my Cloud VPS","\u002Fvps-cloud",[115,128,142],{"id":116,"slug":117,"title":118,"excerpt":119,"readTime":11,"views":120,"isPinned":13,"publishedAt":121,"category":122,"categories":123,"featuredImage":22,"bgImage":23,"posterImage":125,"relatedSolution":126},71,"heberger-nextcloud","Hosting Nextcloud on your own VPS","Take back control of your files: deploy Nextcloud on your VPS with Docker, database, reverse proxy and SSL.",2720,"2026-04-10T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[124],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":17,"appSlug":127},"nextcloud",{"id":129,"slug":130,"title":131,"excerpt":132,"readTime":133,"views":134,"isPinned":13,"publishedAt":135,"category":136,"categories":137,"featuredImage":22,"bgImage":23,"posterImage":139,"relatedSolution":140},72,"heberger-ghost","Hosting Ghost on your own VPS","Launch a professional blog or newsletter with Ghost on your VPS: Docker, database, paid subscriptions, reverse proxy and SSL.",6,2000,"2026-04-09T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[138],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":17,"appSlug":141},"ghost",{"id":143,"slug":144,"title":145,"excerpt":146,"readTime":11,"views":147,"isPinned":13,"publishedAt":148,"category":149,"categories":150,"featuredImage":22,"bgImage":23,"posterImage":152,"relatedSolution":153},73,"heberger-wordpress","Host WordPress on your own VPS","Host WordPress on your VPS for maximum performance and control: Docker, MariaDB, caching, reverse proxy and SSL.",501,"2026-04-08T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[151],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":17,"appSlug":154},"wordpress",1785628436799]