Project hosting, re-imagined

PyGitWeb

Hassle-free git repo management platform

A ground-up rewrite of GitWeb in Python with FastAPI: Mostly API compatible with GitWeb with tons of additional features for modern workflows. See it in action!

What is PyGitWeb?

The goal of PyGitWeb is to provide everything you need to self host a code forge for small or medium-sized teams. PyGitWeb implements OAuth2 flows, but if running locally or inside a LAN, it can be run without authentication.

PyGit2 is the only dependency required by the internal tooling package, so you can script workflows without bringing up the web server. There is also an ABC-based plugin model if you want to extend the stack with your own tools.

Core dependencies

  • PyGit2

    LibGit2 wrapper for fast manipulation and queries. Shared with standalone tooling.

  • FastAPI + Uvicorn

    ASGI server for rendered pages and internal workflow requests.

  • Jinja2

    Fast, safe templating.

  • orjson

    High-performance JSON serialization.

  • pydantic-settings

    Straightforward settings model.

  • python-ripgrep

    Fast file search across the tree.

What sets it apart?

All project metadata is stored in-situ; discovering new merge requests and tasks is just a git fetch.

Settings, merge requests, comments, and tasks all live in your repository object database. No separate database service to provision. If you have a repo, you have what PyGitWeb needs.

Setup is easy - give it a try.

Enterprise scale?

Not yet. PyGitWeb is currently only tested with light workflows, and is only recommended for evaluation by individuals and small teams. Stay tuned for updates!