git / brickware / marrow.git - main

(2 months ago)commit b8cdced: README / cleanup

tree / README

README

raw

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