# Radiant Forge A self-hosted git repository browser, similar to CGit. Single Go binary, static HTML, no JavaScript. ## Build go build . ## Usage ./forge [flags] Flags: -scan-path Directory containing bare git repos (default ".") -listen Listen address (default ":8080") -title Site title (default "radiant code repositories") -base-url Base URL prefix, e.g. "/git" (default "") -non-bare Also scan for non-bare repos (dirs containing .git) -username HTTP basic auth username (requires -password) -password HTTP basic auth password (requires -username) The server scans `scan-path` for bare repositories (directories containing `HEAD`, `objects/`, and `refs/`). Repo names are derived from directory names with the `.git` suffix stripped. Repositories are **private by default**. A repo is only served if a `public` file exists in its Git directory. ## Example Set up some bare repos and start the server: git init --bare /srv/git/example.git touch /srv/git/example.git/public ./forge -scan-path /srv/git -listen :8080 Then open http://localhost:8080 in a browser. ## URL scheme / Repository index /:repo/ Summary (file tree + README) /:repo/refs All branches and tags /:repo/log/:ref Commit log (paginated, default: HEAD) /:repo/tree/:ref/path... Tree/file browser /:repo/commit/:hash Commit detail with diff /:repo/raw/:ref/path... Raw file download ## Repository metadata The server reads optional metadata files from each bare repo: - `description` -- shown on the index and summary pages - `owner` -- shown on the index page - `public` -- must exist for the repo to be served (can be empty) ## License Copyright (c) 2025-2026 Radiant Computer (https://radiant.computer) All rights reserved.