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

  1. Initialize: ./bin/gitm --init -- sets admin password
  2. Start: ./bin/gitm -- starts web server
  3. Open browser to http://localhost:9000
  4. Login and add Gitea servers
  5. 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
No description provided
Readme 125 KiB
Languages
Go 62.3%
Vue 29.4%
TypeScript 7.3%
Makefile 0.6%
HTML 0.4%