Files
claudetools/.claude/standards/gitea/internal-api.md
Mike Swanson dd0ef45645 feat: implement agent-os standards system and feature planning tools
- Split CODING_GUIDELINES.md into 19 indexed standards files under .claude/standards/
  - 9 from CODING_GUIDELINES (conventions, powershell, security, api, git, gururmm)
  - 10 from session log tribal knowledge (syncro, ssh, gitea, python, client, gururmm)
- Add .claude/standards/index.yml for cheap relevance-based lookup
- Add /inject-standards command: load targeted standards per task instead of full guidelines
- Add /shape-spec command: pre-implementation spec for GuruRMM features (plan.md,
  shape.md, references.md, standards.md) with mandatory out-of-scope gate
- Add docs/tech-stack.md and docs/mission.md for ClaudeTools API
- Add projects/msp-tools/guru-rmm/docs/tech-stack.md and mission.md for GuruRMM
- Update CLAUDE.md commands table with /inject-standards and /shape-spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 12:59:49 -07:00

2.0 KiB

name, description, applies-to
name description applies-to
internal-api Use http://172.16.3.20:3000 for Gitea API; git.azcomputerguru.com is behind Cloudflare and blocks curl all

Gitea API Access

Internal IP for API calls

Always use the internal IP for Gitea API calls:

http://172.16.3.20:3000

The public URL git.azcomputerguru.com is proxied through Cloudflare. Cloudflare's bot protection blocks programmatic curl requests with HTTP 403 or challenge pages. The internal IP bypasses Cloudflare entirely and is accessible from all machines on the office network and Tailscale.

Git remotes (push/pull)

For git push and pull, the public URL works fine — git's SSH/HTTPS protocols are not affected by Cloudflare's bot challenge:

git push https://azcomputerguru@git.azcomputerguru.com/azcomputerguru/gururmm.git main
git remote set-url origin https://azcomputerguru@git.azcomputerguru.com/azcomputerguru/claudetools.git

Only API calls (REST HTTP) need the internal IP.

API base URLs

Use case URL
Gitea REST API http://172.16.3.20:3000/api/v1/
Gitea web UI http://172.16.3.20:3000/
GuruRMM repo http://172.16.3.20:3000/azcomputerguru/gururmm
ClaudeTools repo http://172.16.3.20:3000/azcomputerguru/claudetools

Authentication

Gitea API tokens are stored in the vault. The push account azcomputerguru is shared, but individual API tokens should be scoped appropriately.

Example API call

# Correct — internal IP
curl -s "http://172.16.3.20:3000/api/v1/repos/azcomputerguru/gururmm/releases" \
  -H "Authorization: token <GITEA_TOKEN>"

# Wrong — blocked by Cloudflare
curl -s "https://git.azcomputerguru.com/api/v1/repos/azcomputerguru/gururmm/releases" \
  -H "Authorization: token <GITEA_TOKEN>"

Webhook

The build webhook is separate — it runs on Saturn (172.16.3.30:9000), not Gitea:

POST http://172.16.3.30:9000/webhook/build
Header: X-Hub-Signature-256: sha256=<HMAC>
Secret: gururmm-build-secret