# Gitpub Desktop Gitpub Desktop is a lightweight, cross-platform Git client built with Tauri, Rust, and plain HTML/CSS/JavaScript. It connects to any compatible self-hosted Gitea instance (including Gitpub) without hardcoding a single backend. ## Stack - Tauri + Rust backend commands - Vanilla HTML/CSS/JS frontend (no framework) - System-installed Git for repository operations - Gitea REST API for server-side repository listing and account context ## Project Structure - `src-tauri/` Rust backend and Tauri application setup - `frontend/` vanilla frontend shell - `frontend/assets/` static assets - `frontend/css/` UI styles - `frontend/js/` application modules - `frontend/components/` shared component/template area ## MVP Included - First-launch setup flow for adding first Gitea server - Multi-server backend management (add/edit/remove/switch/default) - Dynamic API base URL generation (`/api/v1`) - Connection testing against Gitea API - Repository dashboard with search and mock cards fallback - Read-only repository viewer for remote Gitea repos and local clones - Local repository open + recent repositories - Rust Git commands: clone, pull, push, status, branch - Settings for git path, clone directory, and theme placeholder ## Development ### Prerequisites - [Node.js](https://nodejs.org/) (npm comes with it) - [Rust](https://www.rust-lang.org/tools/install) via `rustup` (required for the Tauri backend) - Platform-specific Tauri dependencies (WebView2 on Windows, Xcode tools on macOS, etc.) — see the [Tauri prerequisites](https://v2.tauri.app/start/prerequisites/) for your OS - **Git** installed and available on your `PATH` (the app shells out to `git` for clone, pull, push, and related commands) ### Start the app in dev mode From the repository root: ```bash npm install npm run dev ``` This runs the Tauri dev process, which loads the static frontend from `frontend/` and hot-reloads the Rust side when you change `src-tauri/`. Edit HTML/CSS/JS under `frontend/` and refresh the window (or rely on your usual workflow) as needed. ### Production build ```bash npm install npm run tauri:build ``` Installers and bundles are emitted under `src-tauri/target/release/bundle/` (exact paths depend on the target platform). ### Useful commands | Command | Purpose | | --- | --- | | `npm run dev` | Desktop app in development mode | | `npm run tauri:build` | Release build and platform bundles | | `npm run tauri -- ` | Forward arguments to the Tauri CLI (e.g. `npm run tauri -- info`) | ### Notes - There is no separate Vite/webpack dev server; the UI is plain static files under `frontend/`. - Point the app at a running Gitea-compatible instance during setup; API calls use `/api/v1`.