๐พ 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:
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
<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