MARROW Minimal git server for FreeBSD jails. Handles authentication, repository access control, and static site generation. COMPONENTS marrow-auth SSH authorized keys provider marrow-shell Restricted shell enforcing repository permissions marrow-static Static site generator for repositories AUTHENTICATION marrow-auth reads SSH public keys from /usr/local/etc/marrow/$USER and outputs them with forced marrow-shell commands. REPOSITORY ACCESS Repositories live in /srv/git. Access rules: - Anonymous users: read-only access to all repositories - Authenticated users: read all, write to /srv/git/$USER/ only - Write operations auto-create bare repositories if they don't exist STATIC SITE GENERATION Generate HTML pages for repositories: marrow-static Generates repository page with README, recent commits, and clone URL. BUILDING make Build all programs make install Install to /usr/local/bin make clean Clean build artifacts SETUP 1. Add to /etc/ssh/sshd_config: Match User git AuthorizedKeysCommand /usr/local/bin/marrow-auth %u AuthorizedKeysCommandUser git 2. Create /usr/local/etc/marrow/$USER with SSH public keys for each user 3. Create /srv/git for repositories 4. Users connect via SSH and use git commands