61 lines
1.1 KiB
Markdown
61 lines
1.1 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
```
|