Перепрогон registryGc dryRun на descent-фиксе (master-dcd7c91) вскрыл 2-й root-cause: реестр засорён dangling OCI image-индексами — тег жив, но его платформенный sub-manifest отдаёт MANIFEST_UNKNOWN (вычищен прежним host-side registry garbage-collect, не следящим index->child для multi-arch). books-web: 19 тегов -> 3 датируемых, 16 dangling. date-based GC защищает dangling как null-dated -> никогда не удаляет, хотя они и есть мусор (логика задом наперёд). Рекомендация books: различать transient-error (protect) vs MANIFEST_UNKNOWN (eligible for delete). freedBytes от dangling ~0 (слои уже вычищены). +registry-oci-image-index-gc.md (раздел) +index.md +log.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 KiB
12 KiB
Wiki Index
Catalog of all wiki pages. One line per page, organized by type. Updated on every ingest / new page.
Overview
- overview.md — project overview
Entities
- books-vds — Books VDS (89.253.255.133 — host4g.ru, client server hosting books app + shared mongo/minio/elasticsearch)
- dead-synology-diskstation — мёртвая Synology DiskStation (source NAS)
- kreknin-synology — Kreknin Synology (backup target + DDNS)
- nl-vds-3xui — NL VDS 3x-UI VLESS/Reality node (213.176.64.253) — Reality 443 сломан (PQ×intel), plain VLESS 32030 работает
- openwrt-router — OpenWRT Router (192.168.1.1)
- ruvds-iis-host — RUVDS IIS Host (Win Server 2025 Core, 80.64.31.36) — CMS catch-all destination
- snolla-recovery-vm — Snolla Recovery VM (VirtualBox, savestate'нута 2026-05-21 после 36h soak)
- vds-kzntsv — VDS kzntsv (Rusonyx 160 NVMe cloud server)
- windows-recovery-host — Windows Recovery Host (рабочий PC пользователя)
Concepts
- admin-infra-project — design + migration plan для OpeItcLoc03/admin (canonical)
- backup-inventory-2026-06 — карта всех машин × что реально бэкапится (с доказательством); дыры по приоритету (kreknin SPOF, nl-vds x-ui.db, bookva-*, openwrt) — триггер: MSSQL 3-нед gap
- bindmount-config-edit-preserve-mode — правка bind-mounted config'а через mktemp+mv роняет режим 644→600 → non-root контейнер (uid 1000) EACCES crash-loop; chmod --reference=backup. + гоча: bind-mount затеняет config образа целиком → класть полную секцию, не дельту. Инциденты books-job-scheduler + task-runner 2026-06-18
- vds-kzntsv-ssh-access — SSH access audit на vds-kzntsv (infra VDS), retained keys + add/revoke processes (was misnamed
books-ssh-accessдо 2026-05-25 — content всегда был про vds-kzntsv) - compose-bcrypt-escape-trap — Docker Compose ест
$в bcrypt hashes - db-tls-self-signed-via-traefik-raw-tcp — DB TLS через traefik raw TCP с self-signed certs
- docker-host-loopback-detect — Docker host-loopback detection — как доказать что host.docker.internal не петля
- es-destructive-delete-incident-2026-05-26 — ES indices wiped on canonical — true root cause (2026-05-29): ransom-бот через открытый
0.0.0.0:9200мимо traefik, free-ES без auth; гипотеза operator-error опровергнута. Fix = убрать публикацию host-порта (Control #3) + restore. Exposure-audit: mongo/mariadb/minio тоже exposed (credentialed) - future-resilient-architecture-goals — fault-tolerance roadmap placeholder (расширяется через
[resilience-roadmap-design]) - hyper-backup-structure-and-recovery — Hyper Backup — структура репо и стратегия восстановления
- iis-migration-2026-05-19-postmortem — post-mortem миграции CMS на нативный IIS, 2026-05-19
- minio-imgproxy-on-vds — MinIO+imgproxy stack на VDS, миграция с upgrade 2020→2025 + DNS swap pending
- morethencms-null-settingsdata-https-502 — MoreThenCms тенант с
Sites.SettingsData=NULL→ 502 только на HTTPS (нетhttpSecure→ KeyNotFound); fix = UPDATE + recycle. maljarka 2026-06-08 - mssql-container-data-restore — MSSQL контейнер с восстановленными production data — паттерн
- mssql-on-vds — MSSQL Express 2022 Linux на VDS — миграция + login orphan fix + traefik TCP gotchas
- ocis-on-vds-deploy-recipe — oCIS на VDS — deploy recipe + non-obvious gotchas (UID 1001 vs 1000, basic auth, LibreGraph user-create)
- portainer-2.21-admin-password-regression — Portainer 2.21
--admin-passwordregression + min 12-char policy - portainer-stack-management-books-vds — Portainer-managed stacks на books VDS — pattern application + migration log 2026-05-25
- portainer-stack-management-vds — Portainer-managed stacks на VDS — canonical pattern + migration script + stack-redeploy recipe (новый тег) + gotchas (вкл. PS 5.1 ISO-8859-1 коррапт кириллицы при API round-trip)
- stostayer-web-deploy-runbook — деплой легаси web (
www.stostayer.ru) на прод клиента: build→registry→Portainer-стек 16 через container-IP API с хоста; БЛОКЕР: легаси не пересобрать с master (ESM-стена: top-level await @stostayer/data на build, ERR_REQUIRE_ESM @snollajs/snolla в рантайме); гоча — один push без retry (VPN-IP банится хостером) - proxy-debugging-test-the-real-client — анти-паттерн: свои curl/standalone-тесты «работают», а боевой клиент пользователя нет; источник истины — реальный клиент
- reality-pq-mldsa65-dest-incompatibility — REALITY+ML-DSA-65 (PQ) не работает с не-PQ dest (Akamai/intel шлёт HRR); fix = PQ-совместимый dest или выключить PQ; caveat: снятие PQ ≠ рабочий Reality у GUI-клиентов
- recovery-architecture-snapshot — текущая recovery architecture (2026-05-19/21, attempt 2)
- registry-gc-mount-and-modify-flag — Docker Registry GC mount layout +
-mflag - registry-kzntsv-auth-model — registry.kzntsv.site = standalone registry:2 + htpasswd Basic (бинарный доступ, НЕ Gitea-packages, нет per-repo ACL/robot-токенов); как заводить htpasswd-юзеров (hot-reload), GC через v2 DELETE; юзеры vitya + books-ci
- registry-oci-image-index-gc — books-* образы в registry = OCI image-index (buildx multi-manifest): top-level
.config=null, дата.createdживёт в платформенном sub-manifest; наивный GC по top-level дате → null у всех → no-op (keepLastN не применяется). DELETE по index-digest, дата из sub. + dangling-индексы: 16/19 тегов books-web — тег жив, sub-manifestMANIFEST_UNKNOWN(вычищен прежним host-GC); date-GC защищает их как null-dated → не чистит, хотя они и есть мусор. Зафиксировано на books registryGc dryRun 2026-06-18 - rusonyx-vps-onboarding-quirks — Rusonyx VPS onboarding quirks (Astra Облако / myvm.rusonyx.ru)
- traefik-acme-json-to-iis-cert-import — Экспорт LE certs из traefik acme.json в IIS (PFX + SNI bindings)
- traefik-file-watch-wsl2-broken — Traefik file-watch broken под Docker Desktop Windows (WSL2 9p mount)
- traefik-on-windows-docker-desktop — Traefik на Windows Docker Desktop — нюансы
- traefik-tcp-passthrough-vs-starttls — Traefik TCP passthrough vs STARTTLS-protocols
- vbox-windows-stability-tuning — VirtualBox + Windows-гость — нюансы стабильности cross-hypervisor миграции
- vds-kzntsv-dhcp-outage-2026-05-28 — DHCP outage 2026-05-28 на vds-kzntsv — диагностика + recovery runbook (link UP но без IPv4 → статика + тикет хостеру)
- verdaccio-prune-semantics — Verdaccio prune semantics — proxied vs locally-published
- verdaccio-restore-packument-desync — disaster-restore: тарболл на диске + древний packument → EEXISTS 409; fix = снять коллизирующий .tgz, не rm -rf каталог
- verdaccio-token-lifecycle — restart trap (ephemeral secret) + max_users:-1 pnpm 409 + JWT fix + yarn clients
- yarn-npm-minimal-age-gate — Yarn ≥4.16 client-side age-gate (YN0016 «quarantined») на версиях <24ч; глобальный, не per-scope; fix npmMinimalAgeGate:0
- winacme-iis-owin-catchall-http01 — win-acme HTTP-01 авто-renewal LE на IIS под OWIN-catch-all CMS — challenge в отдельном No-Managed-Code приложении + патч шаблона; заменяет ручной PFX-импорт
- wd40efax-smr-cascade — WD40EFAX SMR Cascade — root cause NAS failure 2026-05-18
- windows-server-2025-core-bootstrap — Win Server 2025 Core (RUVDS) — bootstrap для IIS-хоста: default-blockers + transfer-методов матрица
- mcp-init-resilience — mcp-init-resilience
Packages
Sources
- iis-host-migration-2026-05-19 — IIS Host Migration Session 2026-05-19 chronology
- iis-migration-to-ruvds-2026-05-23 — IIS migration to RUVDS — session 2026-05-23/24 (SSH/scp pivot, 25 SNI bindings, partial DNS cutover)
- nas-recovery-session-2026-05-18 — NAS Recovery Session 2026-05-18/19 chronology
- books-vds-backup-daily-kreknin-2026-05-25 — books VDS daily backup → kreknin pipeline standup 2026-05-25 (ES file-snapshot repo + DB dumps + curl SMTP)
- ruvds-backup-daily-kreknin-2026-05-24 — RUVDS daily backup → kreknin pipeline standup 2026-05-24 (rclone+SFTP, SYSTEM task)
- nl-vds-3xui-setup-2026-06-05 — NL VDS 3x-UI setup+troubleshooting session; итог: у реальных клиентов из РФ работает только plain VLESS 32030 (Reality/MTProto/SOCKS не поднялись)
- vds-kzntsv-bootstrap-2026-05-20 — VDS bootstrap session 2026-05-20 chronology
- vds-kzntsv-incident-2026-05-28 — DHCP outage incident session 2026-05-28 — chronology + ticket text