fix(ops OPS53): deploy — stdin do compose run + build via proxy socat (validação manual completa) #22

Merged
fsolla merged 1 commit from OPS53-ops53-etapa-de-deploy-no-ci-para-o-homeserver-containe into main 2026-08-18 01:59:18 +00:00
Owner

Fixes do primeiro deploy real (validado manualmente em 0aec0d50)

O deploy manual encontrou 2 problemas que o CI ainda não tinha exercitado:

  1. docker compose run consome o stdin do bash -s: o run do migrate anexa stdin por padrão; o container come o resto do script que viaja no pipe — o bash chega a EOF e termina (exit 0) logo após o migrate, sem rodar o rollout. Fix: </dev/null no run --rm do migrate (comentário no script).
  2. BuildKit recusa rede bridge custom (network mode "stack_default" not supported by buildkit): o build passa a usar --network host + um proxy socat teqo-1313-build-proxy (na stack_default, publicado em 127.0.0.1:5433, criado idempotentemente pelo script com restart: unless-stopped) + DATABASE_URL reescrita para o loopback — o build alcança o postgres sem publicar porta no compose.

Resultado do deploy manual (0aec0d50): build runner+migrator → push localhost:5000 → migrate (no-op) → rollout (teqo-1313 Recreated/Started) → healthcheck healthy → smoke completo (/ 200, /campanha/login 200, /admin 200, barreira 307, webauthn 200, api/revalidate revalidated) — site público 200 via túnel. Container rodando teqo-1313:0aec0d50….

Runbook (docs/ops/teqo-1313-deploy.md) atualizado: os dois pitfalls nas falhas conhecidas + arquitetura do build no fluxo. Invariante unit do script atualizado (proxy + --network host).

Este merge dispara o primeiro deploy oficial do CI (com cache de build quente).

Closes #8

## Fixes do primeiro deploy real (validado manualmente em 0aec0d50) O deploy manual encontrou 2 problemas que o CI ainda não tinha exercitado: 1. **`docker compose run` consome o stdin do `bash -s`**: o run do migrate anexa stdin por padrão; o container come o resto do script que viaja no pipe — o bash chega a EOF e **termina (exit 0) logo após o migrate, sem rodar o rollout**. Fix: `</dev/null` no `run --rm` do migrate (comentário no script). 2. **BuildKit recusa rede bridge custom** (`network mode "stack_default" not supported by buildkit`): o build passa a usar `--network host` + um proxy socat `teqo-1313-build-proxy` (na `stack_default`, publicado em `127.0.0.1:5433`, criado idempotentemente pelo script com `restart: unless-stopped`) + `DATABASE_URL` reescrita para o loopback — o build alcança o `postgres` sem publicar porta no compose. **Resultado do deploy manual (0aec0d50):** build runner+migrator → push `localhost:5000` → migrate (no-op) → rollout (`teqo-1313 Recreated/Started`) → healthcheck healthy → smoke completo (`/` 200, `/campanha/login` 200, `/admin` 200, barreira 307, webauthn 200, `api/revalidate` revalidated) — site público 200 via túnel. Container rodando `teqo-1313:0aec0d50…`. Runbook (`docs/ops/teqo-1313-deploy.md`) atualizado: os dois pitfalls nas falhas conhecidas + arquitetura do build no fluxo. Invariante unit do script atualizado (proxy + `--network host`). Este merge dispara o **primeiro deploy oficial do CI** (com cache de build quente). Closes #8
fsolla added 7 commits 2026-08-18 00:58:01 +00:00
ops(OPS53): etapa de deploy no CI para o homeserver (teqo-1313)
Some checks failed
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Failing after 3s
CI (PR) / plans-only-closes (pull_request) Failing after 5s
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Failing after 1s
CI (PR) / scope (pull_request) Successful in 32s
CI (PR) / lint (pull_request) Successful in 43s
CI (PR) / format (pull_request) Successful in 51s
CI (PR) / typecheck (pull_request) Successful in 32s
CI (PR) / knip (pull_request) Successful in 34s
9c74b9634f
Job deploy em ci.yml (runs-on host na workstation) streama
scripts/deploy-homeserver.sh para o homeserver via SSH: build dos stages
runner+migrator com secrets do teqo-1313.env, push no registry local,
migrate pelo serviço de maintenance antes do rollout, up + smoke. Zero
secrets novos no Forgejo; HEAD guard + flock; rollback automático com
backup do compose; runbook docs/ops/teqo-1313-deploy.md; invariantes
unit do script (bash -n + estrutura).
docs(ops OPS53): falha conhecida do runner — PATH dos containers quebra com runner.envs.PATH só de host
All checks were successful
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / scope (pull_request) Successful in 36s
CI (PR) / lint (pull_request) Successful in 47s
CI (PR) / format (pull_request) Successful in 59s
CI (PR) / typecheck (pull_request) Successful in 36s
CI (PR) / knip (pull_request) Successful in 37s
CI (PR) / cycles (pull_request) Successful in 38s
CI (PR) / unit (pull_request) Successful in 53s
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / int (pull_request) Successful in 2m52s
CI (PR) / checks (pull_request) Successful in 1s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Has been skipped
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 15s
Agent pool supervisor / tick (pull_request) Successful in 33s
9dc6b42802
style(docs): prettier nos planos S1-S4 (destrava format:check de main)
All checks were successful
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Successful in 38s
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / lint (pull_request) Successful in 55s
CI (PR) / plans-only-closes (pull_request) Successful in 10s
CI (PR) / format (pull_request) Successful in 1m5s
CI (PR) / typecheck (pull_request) Successful in 39s
CI (PR) / knip (pull_request) Successful in 41s
CI (PR) / cycles (pull_request) Successful in 43s
CI (PR) / unit (pull_request) Successful in 59s
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / int (pull_request) Successful in 2m10s
CI (PR) / checks (pull_request) Successful in 2s
Agent pool supervisor / tick (pull_request) Has been skipped
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Has been skipped
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Has been skipped
b5ae7497df
fsolla added 1 commit 2026-08-18 01:43:45 +00:00
fix(ops OPS53): deploy — compose run consome o stdin do bash -s (migrate com </dev/null); build via --network host + proxy socat (BuildKit recusa rede bridge custom)
All checks were successful
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Successful in 45s
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / lint (pull_request) Successful in 57s
CI (PR) / plans-only-closes (pull_request) Successful in 10s
CI (PR) / format (pull_request) Successful in 1m10s
CI (PR) / knip (pull_request) Successful in 40s
CI (PR) / typecheck (pull_request) Successful in 49s
CI (PR) / cycles (pull_request) Successful in 46s
CI (PR) / unit (pull_request) Successful in 1m15s
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / int (pull_request) Successful in 2m31s
CI (PR) / checks (pull_request) Successful in 1s
e46c2e7092
Primeiro deploy real validado manualmente (0aec0d50): build+push+migrate+rollout+healthcheck+smoke verdes.
fsolla changed title from style(docs): prettier nos planos S1-S4 (destrava format:check de main) to fix(ops OPS53): deploy — stdin do compose run + build via proxy socat (validação manual completa) 2026-08-18 01:44:22 +00:00
fsolla added 1 commit 2026-08-18 01:45:52 +00:00
merge main into OPS53 branch (fix portado)
All checks were successful
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Successful in 43s
CI (PR) / lint (pull_request) Successful in 1m0s
CI (PR) / docs-guards (pull_request) Successful in 8s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / format (pull_request) Successful in 1m15s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Successful in 2s
9f331e4bb2
fsolla force-pushed OPS53-ops53-etapa-de-deploy-no-ci-para-o-homeserver-containe from 9f331e4bb2 to 06757f40f8 2026-08-18 01:52:41 +00:00 Compare
fsolla merged commit a34cd9b68a into main 2026-08-18 01:59:18 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: fsolla/teqo#22
No description provided.