# PyGitWeb: Hassle-Free Project Hosting

PyGitWeb and its bundled tools allow users to:
- Self-host git repositories (+ associated settings, permissions, and metadata)
- Manage projects and teams; built-in issues and kanban boards
- Assist with info security including code signing and secret scanning
- Setup hooks and jobs to run on your machine, including server-side hooks for branch protection

## Installation and Usage

To setup with UV and a standard virtual environment:
```
git clone <url>; cd distgit;
python -m venv .venv;
source .venv/bin/activate; # (just ".venv/Scripts/activate" on Windows)
uv sync --all-packages;
uvicorn pygitweb.main:app --host 0.0.0.0 --port 8000
```

## Installation with Docker

(todo)

## Installation for Development

With the venv set up, instead run:
```
uv sync --all-packages --all-groups;
uvicorn pygitweb.main:app --reload --host 0.0.0.0 --port 8000
```

Setting up your precommit hooks is recommended, but to manually run precommit checks, do:
```
ruff format --preview; ruff check; mypy .;
```