A tiny read-only git web frontend — browse bare repos with just PHP and git, no database, no framework.
<?php declare(strict_types=1); // Copy this file to config.php and fill in your real values. config.php is // gitignored — it never gets committed, so your domain and server paths // don't end up in a public repo (or its history, which git never forgets). const REPO_BASE = '/var/git/repos'; // directory holding your *.git bare repos const LOG_COUNT = 50; // commits shown per log page const SITE_NAME = 'foxygit'; const SITE_DESCRIPTION = 'A personal git server.'; // shown in a box atop the repo list; '' hides it const CLONE_BASE = 'https://git.example.com/repos/'; // shown as `clone: <CLONE_BASE><repo>.git`; leave '' to hide — matches the anonymous-clone route from server/setup-anon-clone.sh const MAX_BLOB_BYTES = 1_000_000; // files bigger than this get a "too large" notice instead of being dumped inline const MAX_DIFF_BYTES = 2_000_000; // commit diffs bigger than this get truncated const ATOM_COUNT = 100; // commits included in the atom feed const THEME_DEFAULT = 'foxygit-dark'; // theme used when nothing else is requested const THEME_DIR = __DIR__ . '/../themes'; // one CSS custom-property file per theme; drop a new one in to add it const AUTH_STORE = '/var/git/foxygit-auth.json'; // user accounts + API key hashes (JSON, git:git-owned); shared with server/verify-api-key.php