Files
admin/.wiki/index.md

21 KiB
Raw Blame History

Wiki Index

Catalog of all wiki pages. One line per page, organized by type. Updated on every ingest / new page.

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 работает
  • de-vds-3xui — DE VDS 3x-UI VLESS node (130.17.17.158, Fornex Germany) — plain VLESS 32030 security=none; 3x-ui 3.5.0 gotchas (CSRF на POST, client-tables, binary-only setting)
  • 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)
  • vdsina-outline-3xui — VDSina Amsterdam VPN (46.151.25.64) — Outline (основной, 11 keys, :443) + 3x-UI/Xray VLESS; основной боевой VPN семьи
  • windows-recovery-host — Windows Recovery Host (рабочий PC пользователя)

Concepts

  • sched-admin-client-openapi — F&F раунды 2026-08-18: Python-клиент одной командой из спеки (openapi-generator 7.24.0); r1 0.1.2 — 24/24+smoke 19/19, находки F-1..F-5 (8 операций на raw-обходе); r2 0.2.0/0.3.5 — все 5 закрыты, raw_ops удалён, 11/11 typed-only, вердикт «claim подтверждён полностью»

  • openapi-generator-3-1-spec-gotchas — генерация клиентов из 3.1-спеки (openapi-generator 7.24.0, python): wrapped-ответы {} → ValidationError (raw-обход историчен: r2 спека фикснута), const:true → строковый enum, oneOf+discriminator → actual_instance=None (r2: плоская схема), java из PATH а не JAVA_HOME, InlineObjectN-имена, info.version не бьётся

  • nvm-junction-ismain-gate-gotcha — ESM isMain-гейт молча не выполняется под junction'нутым npm-рутом (nvm/mise/volta); realpath-фикс; диагностика за 30 сек

  • nvm-windows-node-switch — смена версии Node на nvm-windows: junction, per-version глобалы, PATH-кэш, npm 11 allow-scripts; Node 22→24 evidence

  • sched-fnf-r8-verification-stand — стенд верификации F&F r8 (schedule-as-entity): путь, версии core 0.40.2/ui 0.2.0, карта репро-скриптов (миграции/движок/политики/API 52/UI 13), подтверждённый контракт (ceiling, retryCount, snapshot, pause AND, tz-hoist, PATCH-merge), находки №5 (U1 форма-tz, U2 вёрстка), как закрыть раунд

  • windows-docker-test-harness-gotchas — грабли Windows-верификации против docker: rmSync до DatabaseSync (EBUSY), vitest 10s vs ~11s docker-DDL, монотонность фейк-часов, изоляция DB на сценарий, висельники node-процессов

  • snolla-smtp-mail-delivery-2026-08 — SMTP-инцидент 1214.08: 525 (Яндекс отключил протоколы) → 554 (холодный ящик, мульти-получатели) → 550 (from not owned); фиксы + монитор на VDS + рецепт деплоя

  • keenetic-rci-api — KeeneticOS RCI API: auth, чтение конфига, запись через CLI-parser, DNS-override против сломанного hairpin

  • admin-api-embed-pilonuxt — admin-api embedded in pilonuxt /admin/api, stack 25 retired (2026-08-05)

  • pilonuxt-restart-vs-redeploy-2026-08-16 — стек 16: рестарт (in-memory viewModel кэш content-api) vs пересборка (код); инцидент 500 на новинках (Content object vs array → core 0.26.7/admin-api 0.11.0); откат-цепочка образов 2026-08-16

  • namespace-consolidation-snolla — @snollajs → @snolla, 8 sites bumped, 17 packages (2026-08-04/05)

  • 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 не петля

  • emspb-vds-deploy-runbook — emspb.ru snolla-app на VDS (стек 18): сборка/env/cutover 07-02 + 0.42.1 in-place bump 07-05 (образ emspb:95a5c42)

  • 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

  • labtools-vds-deploy-runbook — labtools.ru snolla-app на VDS (стек 17): сборка/env/cutover 07-02 (Yandex DNS!) + 0.42.1 in-place bump 07-05 (образ labtools:566d41c, order-фикс + sitemap починен)

  • labtools.pro-vds-deploy-runbook — labtools.pro snolla-каталог на VDS (стек 19): сборка/env/cutover 07-02 + 0.42.1 in-place bump 07-05 (образ labtools-pro:0610432, order-парити 3 секции)

  • tandemmebel-vds-deploy-runbook — tandemmebel.ru snolla-блог-портфолио на VDS (стек 20): cutover 07-12 (DNS reg.ru, LE) + 0.42.1 in-place bump 07-12 (образ tandemmebel:0cd9351, 184/184 parity, /articles 404 benign)

  • maljarka-vds-deploy-runbook — maljarka.tandemmebel.ru snolla-лендинг на VDS (стек 23): restore 2026-07-31 (потерян при decomm RUVDS 2026-07-21, не был в v3 тираже). Клон on.snolla.com, siteId A2476738, layout.liquid byte-identical .NET-admin рендеру (43730B). Тираж 7/7

  • minio-imgproxy-on-vds — MinIO+imgproxy stack на VDS, миграция с upgrade 2020→2025 + DNS swap pending

  • minio-split-cutover-runbook — разнос MinIO-контента: Track A books-vds 2020→2025 (shared+bookva) + Track B CMS-медиа → vds 2025. Progress: B1 миррор B2 DNS-flip B3 on-snolla v2-пилот LIVE, B3v3 (snolla 0.43.2 опубликована, live verify ЗЕЛЁНЫЙ, resolutions optional) READY, B4/B5/Track A TODO. v3 — конечная цель.

  • morethencms-null-settingsdata-https-502 — MoreThenCms тенант с Sites.SettingsData=NULL → 502 только на HTTPS (нет httpSecure → KeyNotFound); fix = UPDATE + recycle. maljarka 2026-06-08

  • snolla-admin-appdata-acl-500-after-scp-migration — админский delete/upload ассета → 500: app pool имел на App_Data только RX после scp-миграции → File.Delete UnauthorizedAccessException. Fix = icacls Modify. + split-brain: админка пишет Local, боевой app читает MinIO

  • snolla-local-admin-and-on-snolla-migration-design — design: Task A восстановить локальный .NET-админ (catch-all IIS snolla, hosts-override, MinIO drop-in) + Task B on.snolla.com → VDS как Node snolla-app

  • snolla-local-admin-https-binding — реализация 2026-07-29: HTTPS на локальном IIS-админе snolla :443 (self-signed wildcard *.snolla.com в Trusted Root, без traefik) + pilorama98.snolla.com в hosts; рабочий entry-point /admin/account/login (голый /admin → canonical на public-домен, предсуществующее поведение CMS)

  • 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-password regression + 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)

  • snolla-live-prod-inplace-image-bump — переиспользуемый рецепт обновления образа на ЖИВОМ snolla-стеке VDS in-place (build→throwaway-staging-acceptance С VDS→env-preserving Portainer PUT→live-smoke); вкл. put-stack.js; отработан на тираже 0.42.1 (4 сайта: labtools/emspb/labtools.pro 2026-07-05 + tandemmebel 2026-07-12)

  • stostayer-web-deploy-runbook — деплой легаси web (www.stostayer.ru) на прод клиента: build→registry→Portainer-стек 16 через container-IP API с хоста; деплой 0.3.23 (2026-08-13): calculator-баннер + стек-фикс; гочи — один push без retry (VPN-IP банится хостером), offline-build не всегда проходит (linux-бинари esbuild/rollup не в cache → временный VERDACCIO_TOKEN ARG/ENV), Portainer API base=http://IP:9000 (порт обязателен)

  • stostayer-admin-minio-config — локальная .NET-админка stostayer (:8090) на stostayer MinIO: креды НЕ в pass (в stostayer.new config), endpoint minio-api.stostayer.ru (minio.stostayer.ru — не API-порт), region us-west-1 (не local); fix 2026-07-22 — 3 замены в Web.config, админка=прод единое хранилище

  • stostayer-markdown-render-404-incident-2026-07 — постмортем 2026-07-24: 404/500 на body_repair_service = двойной корень (snolla markdown(); без присвоения + exact-pin-staleness — content-api workspace:* запёк @snollajs/snolla: 0.7.4, фиксовая 0.7.7 легла top-level, content-api юзал nested баговую). Фикс snolla 0.7.7/core 0.26.1 + content-api 0.8.2 ^0.7.7; деплой 0.3.22 через pscp+load (без :443 push). Pre-build чек yarn.lock на single-snolla ловит класс. Cleanup workspace-caret-interpackage-deps (vitya scope)

  • 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 + -m flag

  • 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-manifest MANIFEST_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