(2 months ago)commit b8cdced: README / cleanup
tree / README
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 <output-dir> <repo>
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