food-market/deploy
nns 0ff93b6daa
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
fix(hotfix): Claude CLI via ssh на dev-vm + не хранить фото накладных
Owner caught (повторно, после фикса 500): контейнер stage-api пытался
запустить "claude" в своём cwd (/app), а binary там нет —
"No such file or directory". Включаем RemoteHost SSH:

1. ClaudeCliInvoiceExtractor: передаёт в ssh/scp опции -i <SshKey>,
   -o StrictHostKeyChecking=accept-new, -o UserKnownHostsFile=<SshKnownHosts>,
   -o BatchMode=yes, -o ConnectTimeout=10. Конфиги Invoices:ClaudeCli:SshKey
   и Invoices:ClaudeCli:SshKnownHosts.
2. deploy/Dockerfile.api: + openssh-client в runtime.
3. (compose + ssh-ключ на prod-vm не в репо: deploy/secrets/invoice-ocr-key,
   authorized_keys на dev-vm с from="192.168.1.190",no-pty,no-forwarding;
   env RemoteHost=nns@192.168.1.192, Executable=/home/nns/.local/bin/claude.)

Owner-policy: фото/сканы накладных НЕ хранить на серверах. InvoiceProcessor
удаляет StoredPath сразу после распознавания — успех и неудача; remote
tmp копия на dev-vm подчищается в finally. InvoiceWorker больше не содержит
sweeper (периодическая очистка не нужна), конфиг Invoices:KeepFilesDays
игнорируется (оставлен в комментарии для backwards compat).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-05 00:51:12 +05:00
..
forgejo ops: Forgejo on git.zat.kz as primary, GitHub as mirror 2026-04-23 12:27:45 +05:00
grafana/dashboards feat(s26): flaky-test detection + observability dashboards (8/8 ✓ 10/10 cert) 2026-06-08 14:44:19 +05:00
nginx feat(public): Phase 6 — публичный маркетинговый сайт food-market.public на Astro 2026-04-26 19:11:34 +05:00
prometheus feat(s26): flaky-test detection + observability dashboards (8/8 ✓ 10/10 cert) 2026-06-08 14:44:19 +05:00
telegram-bridge revert(domains): публичный сайт → test.food-market.kz, apex 404 до релиза 2026-05-01 18:06:31 +05:00
.env.example docs(deploy): .env.example + secrets.md, проброс OpenIddict env в compose (P0-8) 2026-05-27 02:51:13 +05:00
anonymize-prod.sh feat(s22): data tooling — export/import + schema docs + anon dump (7 пунктов) 2026-06-07 23:00:54 +05:00
backup.sh ci/deploy: GitHub Actions + Docker images + DB backup + 24x7 plan 2026-04-22 11:26:01 +05:00
check-prod-readiness.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
db-schema-diff.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
docker-compose.yml feat(s30): sentinel pwd для SPA — реальный мастер-пароль только в server-env 2026-10-04 21:02:36 +05:00
docker-registry.service feat(ops): Telegram <-> tmux bridge + local docker-registry unit 2026-04-23 10:53:45 +05:00
Dockerfile.api fix(hotfix): Claude CLI via ssh на dev-vm + не хранить фото накладных 2026-10-05 00:51:12 +05:00
Dockerfile.web fix(docker): обновить node:20-alpine → 22-alpine (pnpm 11 требует Node ≥22) 2026-05-18 12:56:12 +05:00
food-market-backup.service feat(deploy): авто-бэкап БД+uploads — systemd timer/service + скрипт (P0-6) 2026-05-27 02:49:08 +05:00
food-market-backup.sh feat(deploy): авто-бэкап БД+uploads — systemd timer/service + скрипт (P0-6) 2026-05-27 02:49:08 +05:00
food-market-backup.timer feat(deploy): авто-бэкап БД+uploads — systemd timer/service + скрипт (P0-6) 2026-05-27 02:49:08 +05:00
food-market-mirror-base-images.service deploy: mirror all base images into local registry — builds no longer need internet 2026-04-23 17:42:48 +05:00
food-market-mirror-base-images.timer deploy: mirror all base images into local registry — builds no longer need internet 2026-04-23 17:42:48 +05:00
generate-release-notes.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
mirror-base-images.sh deploy: mirror all base images into local registry — builds no longer need internet 2026-04-23 17:42:48 +05:00
nginx.conf fix(security): add HSTS header on stage + integration test 2026-06-09 03:35:38 +05:00
post-deploy-smoke.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
prod-deploy.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
prod-rollback.sh feat(s21): stage→prod migration toolchain (7 скриптов + workflow) 2026-06-07 22:31:10 +05:00
recovery-restore-orphan-owners.sql feat(employees): главный администратор — терминология + защита роли/активности 2026-04-27 19:12:33 +05:00
stage-prune-autotest.sql feat(s30): PruneAutoTestEntities + одноразовая зачистка стейджа (шаг 7/9) 2026-10-04 15:49:25 +05:00
swagger-diff.sh docs(s24): docs cross-check + auto-gen + onboarding + test gap-fill (8/8 ✓) 2026-06-08 02:15:56 +05:00