Renovate Bot d9e9d54331
All checks were successful
Deploy / build (push) Successful in 1m22s
Pin dependencies (#7)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout) | action | pinDigest |  → `de0fac2` |
| [actions/setup-java](https://github.com/actions/setup-java) | action | pinDigest |  → `be666c2` |
| eclipse-temurin | final | pinDigest |  → `30d9f87` |
| [https://gitea.seeseepuff.be/actions/watchtower](https://gitea.seeseepuff.be/actions/watchtower) | action | pinDigest |  → `3c31a0d` |

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNjAuNiIsInVwZGF0ZWRJblZlciI6IjQzLjE2MC42IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlIl19-->

Reviewed-on: #7
Co-authored-by: Renovate Bot <sebastiaan.de.schaetzen+renovate@gmail.com>
Co-committed-by: Renovate Bot <sebastiaan.de.schaetzen+renovate@gmail.com>
2026-05-03 22:29:30 +02:00
2026-05-03 22:29:30 +02:00
2026-02-27 21:53:56 +01:00
2026-05-02 21:02:02 +00:00
2026-02-26 08:29:29 +01:00
2026-02-26 08:56:20 +01:00
2026-05-03 22:29:30 +02:00
2026-05-02 21:02:02 +00:00
2026-05-02 21:02:02 +00:00
2026-02-26 08:58:25 +01:00
2026-02-27 19:22:38 +01:00
2026-05-03 13:03:12 +02: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).
webgit.username Username for push/pull authentication (e.g. a dedicated Gitea account).
webgit.password Password or access token for push/pull authentication.

Credentials can be supplied via environment variables (WEBGIT_USERNAME, WEBGIT_PASSWORD) to avoid storing them in config files.

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 359 KiB
Languages
Java 88.5%
HTML 11.3%
Dockerfile 0.2%