Sebastiaan de Schaetzen 8784dfc391 Show commit title, description, author and date on commit detail page
Added GitService.getCommitInfo() using getFullMessage() to preserve
the full commit body. Controller splits the message into title (first
line) and body (remainder) for separate display in the template.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-27 11:24:40 +01:00
2026-02-26 08:29:29 +01:00
2026-02-26 08:29:29 +01:00
2026-02-26 08:56:20 +01:00
2026-02-26 08:29:29 +01:00
2026-02-26 08:29:29 +01:00
2026-02-26 08:58:25 +01:00
2026-02-26 08:58:25 +01:00
2026-02-26 08:29:29 +01:00

WebGit

A web interface for managing Git repositories, designed to work on retro systems such as Windows 3.11, Windows 98, and FreeDOS.

Overview

WebGit allows old machines on a local network to interact with Git repositories through a simple HTML-based web interface. The server clones repositories to a shared network drive so that legacy systems can access the working files directly. Git operations — committing, branching, pushing, and pulling — are performed through the web UI since these machines cannot run Git themselves.

┌──────────────┐        ┌──────────────┐
│  Win 3.11 /  │  HTTP  │              │    ┌────────────────┐
│  Win 98 PC   ├───────►│   WebGit     ├───►│  Git remote    │
│  (browser)   │        │   server     │    └────────────────┘
└──────┬───────┘        └──────┬───────┘
       │                       │
       │    ┌──────────────┐   │
       └───►│ Network drive│◄──┘
            │ (work trees) │
            └──────────────┘

Features

  • Clone repositories — clone a remote repository; the working tree is placed on the shared network drive and the .git directory is stored separately.
  • Create commits — stage files and create commits from the web interface.
  • Push and pull — sync with remote repositories.
  • Branch management — check out existing branches or create new ones.
  • Retro-compatible UI — pure HTML with table-based layout. No JavaScript or CSS, so it works in period-appropriate browsers.
  • Telnet interface — planned interface for FreeDOS users without a graphical web browser.

Tech Stack

  • Java 25
  • Spring Boot 4.0
  • Thymeleaf (server-side HTML templating)
  • Gradle

Configuration

Configure the following properties in application.properties (or via environment variables / command-line arguments):

Property Description
webgit.worktree-path Path to the shared network drive where working trees are stored (the files your retro machines will access).
webgit.git-dir-path Path where .git directories are stored (can be a local disk on the server).

Example:

webgit.worktree-path=/mnt/shared/repos
webgit.git-dir-path=/var/lib/webgit/git

Building

./gradlew build

Running

./gradlew bootRun

Then open http://<server>:8080 in any web browser.

License

This project is licensed under the GNU General Public License v3.0. See LICENSE.txt for details.

Description
A tool for old machines to access git
git
Readme 284 KiB
Languages
Java 88.6%
HTML 11.3%
Dockerfile 0.1%