docs(ci): how to connect Codemagic to self-hosted Gitea over SSH (expose port + read-only deploy key)

This commit is contained in:
2026-07-16 15:46:22 +05:30
parent 6b5ca687e4
commit 42e0122504
+29
View File
@@ -0,0 +1,29 @@
# Connecting Codemagic to our self-hosted Gitea (SSH)
We build the iOS app on Codemagic's macOS cloud (no Mac needed). Codemagic must clone the repo from
`code.bizgaze.com`, but that Gitea only exposes **HTTPS (443)** — its **SSH port is not reachable** from
the internet, so Codemagic can't connect yet. This is a one-time infra + Codemagic setup.
## Part 1 — IT: expose Gitea's SSH port (git host `118.95.33.93`)
1. **Find Gitea's SSH port.** In `app.ini``[server]``SSH_PORT` / `SSH_LISTEN_PORT`. Or open a repo
in the Gitea web UI → **clone dropdown → SSH** and read the port in the URL, e.g.
`ssh://git@code.bizgaze.com:2222/Sravan/BizGaze_Remote.git`.
2. **Port-forward a public TCP port → that Gitea SSH port.** Suggested public port: **2222**.
- ⚠️ Nginx Proxy Manager proxies HTTP/HTTPS only. SSH needs a **raw TCP forward** at the firewall/router
(or an NPM **Stream** rule) — not an HTTP proxy host.
3. Confirm reachable, then send the DevOps/AI the **SSH clone URL** (with port) to verify.
Security: Gitea SSH is **key-only** (no password auth), same model as GitHub's public port 22. Access is
further limited to a **read-only deploy key** (below), so a leaked key could only *read* this one repo.
## Part 2 — Codemagic: connect the repo (once the port is open)
1. Codemagic → **Add application → "Other"** (self-hosted / SSH) → paste the SSH clone URL.
2. Copy the **SSH public key** Codemagic shows.
3. Gitea → this repo → **Settings → Deploy Keys → Add Deploy Key** → paste it, **Enable write access = OFF**.
4. Codemagic **Test connection** → it clones and reads [`codemagic.yaml`](../codemagic.yaml).
Then follow [IOS_SETUP.md](IOS_SETUP.md) for the App Store Connect key + first build.
## Auto-build on push (optional, later)
Manual **Start build** works immediately. Automatic builds on push work natively only for
GitHub/GitLab/Bitbucket; for Gitea we'd add a webhook Codemagic can accept — a later nicety, not required.