diff --git a/GIT_CLONE_TUTORIAL.md b/GIT_CLONE_TUTORIAL.md new file mode 100644 index 0000000..6bc58ba --- /dev/null +++ b/GIT_CLONE_TUTORIAL.md @@ -0,0 +1,43 @@ +# Cloning from any tailnet machine + +## Prerequisites +- The remote machine must be on your tailnet (registered + can ping `100.85.x.x`) +- You must have an account on the Gitea instance (`http://git.klud.top`) +- You must have an SSH key on the remote machine (`ssh-keygen` if you don't) + +## Step 1: Add your SSH key to Gitea +1. Open `http://git.klud.top/user/settings/keys` in browser +2. Paste the content of `~/.ssh/id_ed25519.pub` (or `id_rsa.pub`) +3. Click "Add Key" + +## Step 2: Test SSH reachability +```bash +ssh -T git@thunderobot -p 222 +# Expected output: "Hello from Gitea!\n\nPlease come over!" +# If asked about fingerprint, type "yes" and press Enter +``` + +## Step 3: Clone a repo +```bash +# Using tea CLI +tea repos clone --git-protocol ssh danchie/tekton + +# Or plain git +git clone git@thunderobot:222/danchie/tekton.git +``` + +## Troubleshooting +- `ssh: connect to host thunderobot port 222: Connection refused` + → Ensure the remote machine has `tailscale ping thunderobot` resolving to `100.93.226.13` + → Ensure the host's port `222` is reachable from the remote (it's bound to `0.0.0.0:222` in Docker) + +- `Permission denied (publickey)` + → Your SSH key wasn't added via Gitea web UI + → Run `ssh-add ~/.ssh/id_ed25519` if you use an agent + +- `Host key verification failed` + → Run `ssh -T git@thunderobot -p 222` interactively once to accept the fingerprint + +## HTTPS is disabled +`DISABLE_HTTP_GIT = true` is set on the server. All clones MUST use SSH. +If you need to fetch via HTTPS for CI or other non-ssh environments, this must be remapped. \ No newline at end of file diff --git a/README.md b/README.md index 71e89ca..1f8ef0c 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,24 @@ > Full developer documentation lives in this repo's **wiki** (sidebar link). > -> See in particular: [Skin Creation Workflow](./Skin-Creation-Workflow), [Nakama Deployment](./Nakama-Deployment), and [Patch Release Workflow](./Patch-Release-Workflow). +> See in particular: [Skin Creation Workflow](https://git.klud.top/danchie/tekton/wiki/Skin-Creation-Workflow), [Nakama Deployment](https://git.klud.top/danchie/tekton/wiki/Nakama-Deployment), and [Patch Release Workflow](https://git.klud.top/danchie/tekton/wiki/Patch-Release-Workflow). + +## SSH setup for cloning + +All clones **must use SSH** over Tailscale. HTTPS is disabled on this instance. + +Guides by operating system: + +- [Linux](https://git.klud.top/danchie/tekton/wiki/SSH-Setup-Linux) +- [macOS](https://git.klud.top/danchie/tekton/wiki/SSH-Setup-macOS) +- [Windows](https://git.klud.top/danchie/tekton/wiki/SSH-Setup-Windows) + +Quick verification after setup: +```bash +ssh -T git@thunderobot -p 222 +``` + +Once verified, clone: +```bash +git clone git@thunderobot:222/danchie/tekton.git +```