homelab-codex-ws/scripts
oskar 3e42218868 feat(npm): create-cert — zamawianie certow Let's Encrypt przez API
Brakowalo certu dla narty27.kapala.org (host 14 na npm@VPS) — 443 zwracalo
tlsv1 unrecognized name. Proby POST /api/nginx/certificates z meta
{letsencrypt_email, letsencrypt_agree} konczyly sie 400 "data/meta must NOT
have additional properties".

Zweryfikowane w GET /api/schema oraz w /app/internal/certificate.js kontenera
(NPM 2.14.0): meta ma additionalProperties:false i nie zna pol email/agree.
Certbot dostaje --agree-tos na sztywno, a -m <email> z konta uzytkownika NPM.
Poprawny payload to {provider, domain_names, meta:{dns_challenge:false}}.

- create-cert --domain (powtarzalne), HTTP-01, dry-run domyslnie + --apply
- POST /nginx/certificates jest synchroniczne (reload + certbot + reload),
  wiec ma wlasny timeout 120 s zamiast globalnych 15 s; po nim polling
  GET /nginx/certificates/<id> az do expires_on, z czytelnym bledem po czasie
- gdy POST padnie na timeoucie klienta, cert jest odszukiwany po domenach
  (certbot moze wciaz pracowac po stronie serwera)
- set-cert: przyjmuje takze --host-id/--cert-id obok pozycyjnych i umie
  ustawic --ssl-forced przy tej samej zmianie
- README: schemat payloadu, skad bierze sie email, przyklad dla narty27

Cert #38 wystawiony (expires 2026-11-01), podpiety pod host 14 z ssl_forced;
https://narty27.kapala.org/viz.html -> 200, http -> 301.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 16:07:21 +02:00
..
bootstrap Implement VPS control-plane deployment profile 2026-05-12 20:19:05 +02:00
deploy chore(deploy): remove dead deploy-role.sh 2026-07-29 19:15:55 +02:00
dev chore(agent.sh): podnies limit worktree 4->6 (regularnie 4 rownolegle watki: KB, HA, IR, infra) 2026-07-22 16:46:03 +02:00
ha feat(ha): deploy.sh — api write path with drift-abort and verify 2026-07-22 18:31:22 +02:00
lib Implement filesystem-first runtime event system 2026-05-12 13:38:25 +02:00
maintenance fix(events): service_healthy tylko na transition + cleanup 358k backlog + retencja — glob zalewu paralizowal reconcile supervisora 2026-07-16 20:20:17 +02:00
monitor feat(node-agent): implement health monitor and safe cleanup policy 2026-05-27 13:15:06 +02:00
npm feat(npm): create-cert — zamawianie certow Let's Encrypt przez API 2026-08-03 16:07:21 +02:00
observer fix(supervisor): route healthcheck_failed to container_restart 2026-07-29 19:24:01 +02:00
onboard feat(onboard): implement 40-register + 50-verify, remove dead scaffold 2026-06-09 20:36:00 +02:00
bootstrap.sh Initial homelab workspace structure 2026-05-07 20:17:27 +02:00