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