a7cfa381e7534c3e78ca27899291fd8719fd578e
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GitM - Gitea Repository Sync Tool
Cross-platform tool to synchronize all repositories from multiple Gitea servers to local storage.
Features
- Single binary deployment (frontend embedded)
- Web UI for management (Vue 3 + Element Plus)
- SQLite database
- JWT authentication
- Scheduled and manual sync
- Cross-platform (Windows, Linux)
Build
# Build binary with embedded frontend
go build -o bin/gitm .
# Or with CGO for SQLite support
CGO_ENABLED=1 go build -o bin/gitm .
Run
# First-time initialization (set admin password)
./bin/gitm --init
# Start server (default :9000)
./bin/gitm
# Custom address
./bin/gitm --addr :9090
# Custom data directory
./bin/gitm --data /path/to/data
Usage
- Initialize:
./bin/gitm --init-- sets admin password - Start:
./bin/gitm-- starts web server - Open browser to
http://localhost:9000 - Login and add Gitea servers
- Discover repos and sync
Development
# Frontend dev server
cd web && npm install && npm run dev
# Backend
go run main.go
# Run tests
go test ./internal/gitea/... -v
CGO_ENABLED=1 go test ./internal/database/... -v
Description
Languages
Go
62.3%
Vue
29.4%
TypeScript
7.3%
Makefile
0.6%
HTML
0.4%