GitPop — Setup Guide ==================== Server: https://gitpop.apps.sno.msl.cloud Binary: linux/arm64 ──────────────────────────────────────────── STEP 0 — Get the client binary ──────────────────────────────────────────── Download for your platform (auto-detects OS and arch — works on Linux and macOS): curl -fL "https://gitpop.apps.sno.msl.cloud/dl/gitpop?os=$(uname -s | tr '[:upper:]' '[:lower:]')&arch=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')" \ -o ~/gitpop && chmod +x ~/gitpop # optional: move to PATH mv ~/gitpop ~/.local/bin/gitpop Supported platforms: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64 You can also request explicitly: https://gitpop.apps.sno.msl.cloud/dl/gitpop?os=linux&arch=amd64 Build from source (any platform, Go >= 1.24): GOTOOLCHAIN=auto GOSUMDB=sum.golang.org \ go install github.com/gitpop/gitpop/cmd/gitpop@latest ──────────────────────────────────────────── STEP 1 — Create a repo ──────────────────────────────────────────── Run from inside an existing git repository: cd my-project git init && git add . && git commit -m "Initial commit" GITPOP_KEYSTORE_PASSWORD="" gitpop init \ --host https://gitpop.apps.sno.msl.cloud \ --name my-project What this does: 1. Generates an Ethereum keypair → .git/gitpop/wallet.json (per-repo; git never pushes the .git/ directory) 2. Signs a server challenge to prove key ownership (private key stays local) 3. Creates the bare repo via POST https://gitpop.apps.sno.msl.cloud/
/repos 4. Wires origin + upstream tracking ──────────────────────────────────────────── STEP 2 — Push ──────────────────────────────────────────── git push ← works immediately, forever ──────────────────────────────────────────── OPERATIONS ──────────────────────────────────────────── Clone (public): git clone https://gitpop.apps.sno.msl.cloud/
/ Delete a repo: gitpop repo delete --repo https://gitpop.apps.sno.msl.cloud/
/ Reconfigure (existing wallet): gitpop auth setup \ --host https://gitpop.apps.sno.msl.cloud \ --keyfile /path/to/wallet.json \ --repo-url https://gitpop.apps.sno.msl.cloud/
/ ──────────────────────────────────────────── API REFERENCE ──────────────────────────────────────────── GET /setup This file GET /dl/gitpop Client binary — add ?os=linux|darwin&arch=amd64|arm64 GET /auth/challenge?address=0x... Issue a sign challenge nonce POST /auth/token Exchange signed nonce for JWT POST /
/repos Create repo (auth required) DELETE /
/ Delete repo (auth required) GET /
/ Web UI — browse repo GET /
//commits Web UI — commit log GET /
//blob/ Web UI — file with syntax highlighting