cursor-agent-api-proxy

OpenAI-compatible HTTP API wrapping cursor-agent via ACP (agent acp). Deployed on node4-k3s.

  • Image: dcr.trinitysan.by/infra/cursor-agent-api-proxy
  • Deploy: deploy/ (PVC, Deployment, Service, ServiceExport)
  • Flux image automation: flux/ (ImageRepository / ImagePolicy / ImageUpdateAutomation)

Infra on node4 keeps thin Flux glue (Namespace, SecretAdapters, GitRepository, Kustomizations) in infrastructure/node4-k3s/131-cursor-agent-api.yaml. Public HTTPS + Authentik live on node2 (245-authentik-cursor-agent-api).

Access

Endpoint Detail
Public https://cursor-api.trinitysan.by (Authentik outpost on node2)
In-cluster / MCS cursor-agent-api.cursor-agent-api.svc.clusterset.local:4646
Health GET /health

CI

Gitea Actions (.gitea/workflows/build-and-push.yaml) on master and workflow_dispatch pushes:

Tag Purpose
:latest Convenience
:<git-sha> Immutable full SHA
:<run_number>-<git-sha> Sortable; elected by Flux ImagePolicy

Org secrets: DCR_USERNAME, DCR_PASSWORD (infra org).

Local build / E2E

docker build -t cursor-agent-api-proxy:latest .
# Requires CURSOR_API_KEY in env or .env
./scripts/e2e-docker.sh

Flux update flow

  1. CI pushes run_number-sha to DCR
  2. ImageRepository scans; ImagePolicy picks highest run_number
  3. ImageUpdateAutomation commits the new tag into deploy/010-cursor-agent-api.yaml
  4. Kustomization applies; Deployment rolls

Requires a Gitea PAT with read+write on this repo (GITEA_CURSOR_AGENT_API_GITOPS_TOKEN on node4, see infra 060-external-secrets.yaml.template).

S
Description
No description provided
Readme
56 KiB
Languages
JavaScript 89%
Shell 8.2%
Dockerfile 2.8%