{"slug": "cgit", "name": "cgit", "category": "selfhosted", "category_name": "Self-hosted and home server", "description": "", "recommenders": 3, "commenters": 5, "warners": 0, "score": 2.728, "rising": 2.67, "first": "2025-11-14", "latest": "2026-08-18", "why": "Or you can run cgit as a frontend to your git remote on a server.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 2, "compare": 0, "warn": 0}, "spark": [1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Or you can run cgit as a frontend to your git remote on a server.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://git.zx2c4.com/cgit/", "pricing": "", "aliases": ["cgit", "CGit"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 789480785, "item_id": 49342549, "url": "https://news.ycombinator.com/item?id=49342549", "by": "zserge", "date": "2026-08-18", "stance": "recommend", "quote": "Or you can run cgit as a frontend to your git remote on a server.", "excerpt": "I'm building my own - https://git.zserge.com/fierj - and for a few weeks it's hosting itself. Still working on patches workflow and CI, but it's quite usable already. I try to make it \"minimally federated\" - only threads (issues/discussions etc) are federated via ActivityPub, for PR there is old-school patches workflow, for CI just chroot and a shell script. A lightweight personal git forge in ~4KLOC. Can't say every", "context": "", "use_case": "git frontend", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 789452625, "item_id": 49340789, "url": "https://news.ycombinator.com/item?id=49340789", "by": "prima-facie", "date": "2026-08-17", "stance": "recommend", "quote": "cgit is pretty good for exporting repos", "excerpt": "For SaaS forges there's also upd.dev launched recently. For self-hosted forges: forgejo is great but also cgit is pretty good for exporting repos. With the recent GitHub fiasco I've split my repos across multiple forges. Git was always supposed to be decentralised so why store everything in one place?", "context": "", "use_case": "exporting repos", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 789343941, "item_id": 49333996, "url": "https://news.ycombinator.com/item?id=49333996", "by": "rhdunn", "date": "2026-08-17", "stance": "recommend", "quote": "CGit or GitWeb for the frontend", "excerpt": "It depends on what you are after? 1. Do you want something that works and feels like GitHub? -- Forejo and Gitea are good for this. 2. Do you want a place to host git repositories with minimal hassle? -- GitLab, CodeBerg, and others are available. 3. Do you have your own hosting infrastructure? You could use gitolite and CGit/GitWeb on that hosting platform or local hardware. 4. Do you just want to host repositories?", "context": "", "use_case": "git web frontend", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 734907059, "item_id": 45931691, "url": "https://news.ycombinator.com/item?id=45931691", "by": "rhdunn", "date": "2025-11-14", "stance": "recommend", "quote": "I eventually switched to gitolite and CGit", "excerpt": "I used Gitea for a while. I eventually switched to gitolite and CGit primarily because Gitea (and Forgejo) force you into a flat organization/project structure. This makes organizing personal projects harder because: 1. you need to create an organization for each group (lang, tools, template, etc.) 2. you can't create more complex organization structure (e.g. template/python/python-flask-template) 3. you can't group ", "context": "", "use_case": "web view of git repos", "switched_from": "Gitea", "story": "Meeting notes between Forgejo and the Dutch government via Git commits"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["git web frontend", "git frontend", "exporting repos", "repository web view", "self-hosted git web interface", "web view of git repos"], "compared": [{"slug": "gitea", "name": "Gitea", "co": 4, "switched_from": 1, "switched_to": 0}, {"slug": "forgejo", "name": "Forgejo", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "gitolite", "name": "Gitolite", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "github", "name": "GitHub", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "tangled", "name": "Tangled", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "gitweb", "name": "GitWeb", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "gitlab", "name": "GitLab", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49331033", "title": "Ask HN: Alternatives to GitHub", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=47971771", "title": "If I Could Make My Own GitHub", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47948603", "title": "Tangled \u2013 We need a federation of forges", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=45929247", "title": "Meeting notes between Forgejo and the Dutch government via Git commits", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {"neutral": 1}, "2026-05": {"neutral": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {"recommend": 3}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 789480785, "item_id": 49342549, "url": "https://news.ycombinator.com/item?id=49342549", "by": "zserge", "date": "2026-08-18", "stance": "recommend", "quote": "Or you can run cgit as a frontend to your git remote on a server.", "excerpt": "I'm building my own - https://git.zserge.com/fierj - and for a few weeks it's hosting itself. Still working on patches workflow and CI, but it's quite usable already. I try to make it \"minimally federated\" - only threads (issues/discussions etc) are federated via ActivityPub, for PR there is old-school patches workflow, for CI just chroot and a shell script. A lightweight personal git forge in ~4KLOC. Can't say every", "context": "", "use_case": "git frontend", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 789452625, "item_id": 49340789, "url": "https://news.ycombinator.com/item?id=49340789", "by": "prima-facie", "date": "2026-08-17", "stance": "recommend", "quote": "cgit is pretty good for exporting repos", "excerpt": "For SaaS forges there's also upd.dev launched recently. For self-hosted forges: forgejo is great but also cgit is pretty good for exporting repos. With the recent GitHub fiasco I've split my repos across multiple forges. Git was always supposed to be decentralised so why store everything in one place?", "context": "", "use_case": "exporting repos", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 789348003, "item_id": 49334250, "url": "https://news.ycombinator.com/item?id=49334250", "by": "rhdunn", "date": "2026-08-17", "stance": "neutral", "quote": "GitWeb/CGit have a free-form category (e.g. \"lang/python\")", "excerpt": "Two of the big issues I had were around the user/repository forced structure. That works to some extent when you have multiple users with a small number of repositories. But for my personal projects I wanted more control over the structure and grouping. I worked around it to some extent by having an organisation per category, but that doesn't work at scale. For example, you can't group Text-to-Speech projects around ", "context": "", "use_case": "repository web view", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 789343941, "item_id": 49333996, "url": "https://news.ycombinator.com/item?id=49333996", "by": "rhdunn", "date": "2026-08-17", "stance": "recommend", "quote": "CGit or GitWeb for the frontend", "excerpt": "It depends on what you are after? 1. Do you want something that works and feels like GitHub? -- Forejo and Gitea are good for this. 2. Do you want a place to host git repositories with minimal hassle? -- GitLab, CodeBerg, and others are available. 3. Do you have your own hosting infrastructure? You could use gitolite and CGit/GitWeb on that hosting platform or local hardware. 4. Do you just want to host repositories?", "context": "", "use_case": "git web frontend", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 767561827, "item_id": 47972614, "url": "https://news.ycombinator.com/item?id=47972614", "by": "rvz", "date": "2026-05-01", "stance": "neutral", "quote": "The Linux kernel is not hosted on GitHub and uses cgit.", "excerpt": "The alternative to GitHub is already here. It is called self-hosting and there are many alternatives. The Linux kernel is not hosted on GitHub and uses cgit. Others use GitLab, or Gitea and there is also Forgejo (Which Codeberg uses) that people are using and can be self hosted. This is why now everyone is realising why \"centralising everything to GitHub\" [0] was a terrible idea and now GitHub has been (unsurprisingl", "context": "", "use_case": "git web frontend", "switched_from": "", "story": "If I Could Make My Own GitHub"}, {"id": 767184097, "item_id": 47949006, "url": "https://news.ycombinator.com/item?id=47949006", "by": "NetOpWibby", "date": "2026-04-29", "stance": "neutral", "quote": "I\u2019m self-hosting with cgit", "excerpt": "Last time I tried Tangled they had no concept of private repos. That\u2019s the only thing keeping me on GitHub (oh, and my massive likes collection, I use those as bookmarks). I\u2019m self-hosting with cgit, maybe I could move my private repos to SourceHut? Idk.", "context": "", "use_case": "self-hosted git web interface", "switched_from": "", "story": "Tangled \u2013 We need a federation of forges"}, {"id": 734907059, "item_id": 45931691, "url": "https://news.ycombinator.com/item?id=45931691", "by": "rhdunn", "date": "2025-11-14", "stance": "recommend", "quote": "I eventually switched to gitolite and CGit", "excerpt": "I used Gitea for a while. I eventually switched to gitolite and CGit primarily because Gitea (and Forgejo) force you into a flat organization/project structure. This makes organizing personal projects harder because: 1. you need to create an organization for each group (lang, tools, template, etc.) 2. you can't create more complex organization structure (e.g. template/python/python-flask-template) 3. you can't group ", "context": "", "use_case": "web view of git repos", "switched_from": "Gitea", "story": "Meeting notes between Forgejo and the Dutch government via Git commits"}]}