# gitlite

`gitlite` (`glite`) is a local Git server + web UI for everyday Git workflows.

Use it to manage commits, stash, push/pull, and diffs in your browser, without installing GitHub Desktop.

## What You Get

- Status, changed files, and diffs
- Stage/unstage and discard flows
- Commit, stash/apply/drop stash
- Branch checkout, fetch, pull, push

## Quick Start (No Install)

```bash
npx @alvix/gitlite /absolute/path/to/your/repo
```

## Add To Any Project

Prerequisites:
- Node.js 20+
- Git on PATH

From your own repository:

```bash
cd /absolute/path/to/your/repo
npm i -D @alvix/gitlite
```

Add scripts in your `package.json`:

```json
{
  "scripts": {
    "dev": "glite .",
    "git:ui:5050": "glite . --port 5050"
  }
}
```

Start the Git server + UI:

```bash
npm run dev
```

That gives you a local Git management UI for the current repo, so your team can avoid installing GitHub Desktop.

If your project already uses `dev`, keep it and add a dedicated script:

```json
{
  "scripts": {
    "dev": "your-existing-dev-command",
    "git:ui": "glite ."
  }
}
```

Run:

```bash
npm run git:ui
```

## CLI Usage

```bash
glite /absolute/path/to/your/repo
glite /absolute/path/to/your/repo --port 5050
glite /absolute/path/to/your/repo --config /absolute/path/to/config.json
glite /absolute/path/to/your/repo --detached
glite --help
glite --version
```

## Theme Configuration

`gitlite` supports theme config from:
- Local file passed at startup: `glite <repo-path> --config <config-path>`
- Global file fallback:
  - macOS/Linux: `~/.config/gitlite/config.json`
  - Windows: `%APPDATA%\\gitlite\\config.json`

Example:

```json
{
  "theme": {
    "preset": "monokai",
    "ui": {
      "accentPrimary": "#ff8c00",
      "surface0": "#1f1f1f"
    },
    "monaco": {
      "preset": "monokai",
      "fontFamily": "Menlo, Monaco, Consolas, 'Courier New', monospace",
      "rules": [
        { "token": "comment", "foreground": "6A9955", "fontStyle": "italic" }
      ],
      "colors": {
        "editor.lineHighlightBackground": "#2A2D2E"
      }
    }
  }
}
```

Supported presets:
- `vsdark` (default)
- `vslight`
- `monokai`
- `onedarkmodern`

## Development (This Repo)

```bash
pnpm install
pnpm dev
```

Build production standalone artifacts:

```bash
pnpm run build:all
```

Publishing steps are documented in `/Users/nishkal/Desktop/github-repos/gitlite/publishing-guide.md`.
