Skip to content

chore(deploy): desplegar la API en srv07 en vez de la EC2 - #449

Merged
vgpastor merged 4 commits into
mainfrom
chore/deploy-srv07
Sep 11, 2026
Merged

chore(deploy): desplegar la API en srv07 en vez de la EC2#449
vgpastor merged 4 commits into
mainfrom
chore/deploy-srv07

Conversation

@vgpastor

Copy link
Copy Markdown
Contributor

La API de producción ya corre en srv07 (Plesk + Docker); el workflow de deploy seguía disparando SSM contra la EC2 i-0f5979080ad5da6e5.

Cambios

  • .github/workflows/deploy.yml: de SSM/OIDC a SSH contra srv07 (appleboy/ssh-action, fijada por SHA). La clave SRV07_DEPLOY_KEY está atada a un forced command en authorized_keys → solo puede ejecutar /usr/local/sbin/responsegrid-deploy (fetch + reset --hard origin/main + build + migraciones + health check a 127.0.0.1:3100/emergencies, falla si no hay 200 en 2 min).
  • Filtro de paths: solo despliega con cambios en apps/api, packages, deploy, package.json, pnpm-workspace.yaml, pnpm-lock.yaml o el propio workflow.
  • deploy/docker-compose.srv07.yml (nuevo): sin Caddy (nginx de Plesk → 127.0.0.1:3100), Datadog del host vía DD_AGENT_HOST, S3 por usuario IAM.
  • deploy/responsegrid.srv07.service (nuevo): unit de arranque.
  • docs/deploy/srv07.md (nuevo), AGENTS.md, README.md.

docker-compose.prod.yml y docs/deploy/aws-free-tier.md se conservan como alternativa en AWS.

Verificado antes de abrir

  • Secretos SRV07_HOST / SRV07_USER / SRV07_DEPLOY_KEY presentes en el repo.
  • Script de deploy y forced command presentes en srv07; stack api/postgres/redis running.
  • El deploy/docker-compose.srv07.yml sin versionar del servidor es idéntico (blob 149a075) al de esta PR: el primer reset --hard no altera la config viva.
  • GET /emergencies → 200 en responsegrid-api.globalemergency.online y en api.responsegrid.app (EC2).

⚠️ Al mergear

Dispara el primer deploy real por SSH contra srv07. La EC2 sigue sirviendo api.responsegrid.app hasta el corte de DNS (pendiente, junto con las env de Vercel y el redirect URI de Google OAuth).

El stack de producción ha pasado de la EC2 a srv07 (Plesk + Docker), así que
el workflow que disparaba el deploy por SSM contra i-0f5979080ad5da6e5 ya no
apunta a donde corre el servicio.

- deploy.yml entra ahora por SSH a srv07 (appleboy/ssh-action), igual que el
  resto de proyectos del servidor. La clave está atada a un forced command en
  authorized_keys, así que solo puede ejecutar el script de deploy.
- docker-compose.srv07.yml: sin Caddy (nginx de Plesk termina el TLS y hace
  proxy a 127.0.0.1:3100), sin agente Datadog propio (se reutiliza el del host
  vía DD_AGENT_HOST) y credenciales de S3 por usuario IAM al no haber rol de
  instancia.
- responsegrid.srv07.service para el arranque en boot.
- docs/deploy/srv07.md con el despliegue vivo; la guía de AWS queda como
  alternativa.
- appleboy/ssh-action fijada por SHA (v1.2.0), como el resto de actions del
  repo: la clave de deploy entra como root.
- package.json y pnpm-workspace.yaml en el filtro: los pnpm.overrides de la
  raíz cambian la imagen de la API y no disparaban el deploy.
- AGENTS.md: api.responsegrid.app sigue en la EC2 hasta el corte de DNS.
@vercel

vercel Bot commented Sep 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
response-grid Ready Ready Preview Sep 11, 2026 9:59am UTC

Request Review

- deploy.yml: permissions: {} (el job solo usa secretos; el repo da write
  por defecto al GITHUB_TOKEN).
- README y docs/deploy/srv07.md: la web y api.responsegrid.app siguen en la
  EC2 hasta el corte de DNS.
…como redirect

La web apunta directamente a responsegrid-api.globalemergency.online; el
dominio antiguo queda como Redirect Rule 308 de Cloudflare (consumidores
externos y callback de Google OAuth).
@vgpastor
vgpastor merged commit d83c2e5 into main Sep 11, 2026
11 of 12 checks passed
@vgpastor
vgpastor deleted the chore/deploy-srv07 branch September 11, 2026 11:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant