git / brickware / marrow.git - main

(4 seconds ago)commit 81d366f: removed janky one time list, and replaced with generic vector implementation

tree

Files | History

clone

git clone git@host:brickware/marrow.git

files

typenamecommitsize
file.gitignore(2 months ago)b8cdced README / cleanup 139
fileMakefile(4 seconds ago)81d366f removed janky one time list, and replaced ... 820
fileREADME(2 months ago)b8cdced README / cleanup 1318
fileTODO(4 seconds ago)81d366f removed janky one time list, and replaced ... 262
fileallocator.h(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 274
filedefalloc.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 735
filelalloc.c(4 seconds ago)81d366f removed janky one time list, and replaced ... 533
fileldup.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 426
filelinsert.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 304
filelinserts.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 685
filelpush.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 275
filemarrow-auth.c(2 months ago)512c504 Slice forward approach 5458
filemarrow-shell.c(6 hours ago)f79468c added hook install 9831
filemarrow-static.c(4 seconds ago)81d366f removed janky one time list, and replaced ... 74619
filepath.h(2 months ago)c268699 initial release of brickware marrow 883
fileslice.h(2 months ago)512c504 Slice forward approach 278
fileslice_empty.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 200
fileslice_fromcstr.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 258
fileslice_isempty.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 191
fileslice_tocstr.c(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 375
filevector.h(45 minutes ago)7790c99 Meh. Halfway vector implementation. Not ha... 5601

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