Admin Panel

# ๐Ÿพ Tigler โ€” Lightweight Git Web Interface

**Tigler** is a minimalist, forensic-friendly Git web interface built for clarity, auditability, and modular integration. It supports browsing, settings management, and repository creation with LDAP-backed authentication.

---

## ๐Ÿš€ Features

- ๐Ÿ” Browse Git repositories via default branch or specific refs
- ๐Ÿ›  Edit repository metadata (`.meta`) with ACLs and descriptions
- ๐Ÿ” LDAP-based login/logout with session tracking
- ๐Ÿง  Context-aware routing (user, repo, branch, subpath)
- ๐Ÿ“ Bare repo creation with normalized naming and metadata
- ๐Ÿงพ XML-based `.meta` format for permissions and audit trails
- ๐ŸŽจ Clean UI with CSS-driven state transitions and error overlays

---

## ๐Ÿ“ฆ Structure

```
tigler/
โ”œโ”€โ”€ src/main/java
โ”‚   โ””โ”€โ”€ GitDetectFilter.java # Routes Git clients to GitServlet, others to TigServlet 
โ”‚   โ””โ”€โ”€ GitServlet.java # handle git commands
โ”‚   โ””โ”€โ”€ TigServlet.java # Handles UI, repo browsing, settings, creation 
โ”‚   โ””โ”€โ”€ RepoMeta.java # Record for .meta structure 
โ”‚
โ””โ”€โ”€ src/main/webapp
    โ”œโ”€โ”€ WEB-INF/ 
    โ””โ”€โ”€ web.xml # Servlet/filter mappings 
    โ””โ”€โ”€ jsp/views
	     โ””โ”€โ”€ 	overview.jsp
	     โ””โ”€โ”€ userRepos.jsp
	     โ””โ”€โ”€ repoView.jsp
	     โ””โ”€โ”€ settings.jsp
```

---

## โš™๏ธ Configuration

Set the following environment variables:

```properties
git.repoBase     = /path/to/the/repos
git.ldapUrl      = ldap://localhost:389
git.userBaseDn   = ou=people,dc=serveronline,dc=org
```

---

## ๐Ÿงช Development Notes

All routing is context-aware (/git/user/repo)

.meta files are parsed into RepoMeta records

Use RepoMeta.fromRequest(req) and writeMeta(file, meta) for consistency

Git clients are detected via User-Agent and path heuristics

UI actions (createRepo, updateSettings) are handled in TigServlet.doPost()

---

## ๐Ÿ”’ Permissions Model

```xml
<git public="true">
  <description>...</description>
  <branch>main</branch>
  <permissions>
    <admins><member>alice</member></admins>
    <readers><member>bob</member></readers>
    <writers><member>carol</member></writers>
  </permissions>
</git>
```

---

## ๐Ÿ“œ License

MIT โ€” see LICENSE.txt.

---

## ๐Ÿ“ฌ Contact

For questions or contributions: stefan [at] franke [dot] ms