This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [https://gitea.seeseepuff.be/actions/watchtower](https://gitea.seeseepuff.be/actions/watchtower) | action | major | `v1` → `v2` | --- ### Release Notes <details> <summary>actions/watchtower (https://gitea.seeseepuff.be/actions/watchtower)</summary> ### [`v2`](https://gitea.seeseepuff.be/actions/watchtower/compare/v1...v2) [Compare Source](https://gitea.seeseepuff.be/actions/watchtower/compare/v1...v2) </details> --- ### 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. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- 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: #9 Co-authored-by: Renovate Bot <sebastiaan.de.schaetzen+renovate@gmail.com> Co-committed-by: Renovate Bot <sebastiaan.de.schaetzen+renovate@gmail.com>
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
.gitdirectory 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.