Commit Graph

136 Commits

Author SHA1 Message Date
f2930f6e37 docs(tasks): add llm-web-proxy spec (web-LLM provider for pi+Claude Code) + omniroute tuning wiki 2026-08-22 14:01:53 +03:00
cbd22be2a2 admin: closing ritual — wiki concept fnf-testing-method (+index/log), STATUS.md бухгалтерия r8/r9 2026-08-19 20:28:14 +03:00
34e6e2c7ab wiki: ingest round-2 outcome — openapi-generator gotchas + sched-admin-client-openapi updated (all F-1..F-5 closed, raw_ops deleted) 2026-08-18 22:49:08 +03:00
9c5d8f5ae2 chore(wiki): F&F round concept sched-admin-client-openapi + task close 2026-08-18 22:29:30 +03:00
114db2956f chore(wiki): concept openapi-generator 3.1 gotchas (F&F sched 2026-08-18) 2026-08-18 22:28:37 +03:00
ec59917956 chore: wiki +2 концепта (nvm-junction isMain gotcha, nvm-windows switch), 4 июльских -блока флипнуты 🟢, handoff: волна вышла, ретест в след. сессии 2026-08-18 21:22:32 +03:00
df1a7ef13b docs(wiki): r8 stand updated — items 4-5 (API 52/52, UI 13/13, findings U1/U2) 2026-08-18 19:12:58 +03:00
dbce833a98 wiki: ingest 2 concepts — sched-fnf-r8-verification-stand + windows-docker-test-harness-gotchas 2026-08-18 18:25:52 +03:00
cccf63ffe6 docs(runbook): stostayer prod-config mount = truth for prod; node18 ipv4first gotcha; content-api incident 2026-08-16 21:53:44 +03:00
cb701214a2 docs(wiki): session close — handoff + ingest pilonuxt restart-vs-redeploy (stack 16 deploy day) 2026-08-16 13:41:34 +03:00
0582adbb4f wiki: ingest concepts/snolla-smtp-mail-delivery-2026-08 (postmortem SMTP-инцидента + монитор + рецепт деплоя) 2026-08-14 16:07:26 +03:00
23216c76d6 meta(wiki): FormSubmissions nvarchar coordination closed — op-log decision 2026-08-14 09:20:52 +03:00
003e71630c meta(wiki): MSSQL FormSubmissions.Content varchar→nvarchar (₽ fix) — op-log 2026-08-14 09:12:58 +03:00
be54a21316 meta(wiki): inbox-rename audit — .claude-inbox → .agents/inbox clean (op-log record) 2026-08-14 09:08:17 +03:00
4d3bb2113b meta(wiki): runbook — offline-cache fixed by 5c583f8 (supportedArchitectures), yarn install replenished cache 2026-08-13 12:06:11 +03:00
79e9ce87e8 fix(inbox): runbook letter path .claude-inbox → .agents/inbox 2026-08-13 12:00:41 +03:00
5f7d4fdc30 meta(tasks,wiki): stostayer-web 0.3.23 deploy — task done + runbook nuances (offline-build linux-bins, :9000 port, prod tag) 2026-08-13 11:57:47 +03:00
73b0564d8e wiki(kreknin): автосинк LE-серта git.kreknin.site traefik->nginx (cron 15м) 2026-08-12 19:48:28 +03:00
c2cb6c0801 wiki(kreknin): LE-серт из traefik acme.json в nginx DSM — из LAN без предупреждений
Извлечён серт git.kreknin.site (base64 Certificate/Key) из
/volume1/docker/traefik/letsencrypt/acme.json → /usr/local/etc/nginx/ssl_git_kreknin.*,
nginx reverse proxy переведён на него. Из LAN: LE + Gitea 200. DSM-пароль не нужен.
2026-08-12 19:37:22 +03:00
514a1e991e wiki(kreknin): reverse proxy git.kreknin.site 443→4443 на DSM nginx — из LAN gitea работает
443 на NAS занят встроенным nginx DSM (трафик уходил в Synology вместо traefik).
Добавлен server block в server.ReverseProxy.conf (w3conf) + nginx -s reload:
proxy_pass https://127.0.0.1:4443 (TLS-to-traefik! HTTP на 4443 = 404).
Из LAN: DNS-override → 192.168.1.43:443 → nginx → traefik → gitea 200.
Осталось: LE-серт DSM для git.kreknin.site (нужен GUI DSM).
2026-08-12 19:29:20 +03:00
88f1bb5fe2 wiki: закрыта gitea-задача на kreknin (DNS-override через RCI, hairpin не чинится)
- DNS-записи git.kreknin.site/kreknin.site → 192.168.1.43 добавлены через POST /rci/ parse (ip host)
- KeeneticOS 5.1.3 hairpin НЕ чинит (проверено) — DNS-override это решение
- Концепт keenetic-rci-api + ссылка на офиц. CLI-документацию
- Handoff: задача полностью закрыта
2026-08-12 18:47:04 +03:00
6844c24b77 wiki(kreknin/keenetic): DNS-override через RCI API решает loopback; концепт keenetic-rci-api
KeeneticOS 5.1.3: hairpin не работает (проверено после обновления) →
статичные DNS-записи ip host git.kreknin.site/kreknin.site → 192.168.1.43
через POST /rci/ parse. Из LAN всё 200. Правила порт-форвардинга = ip.static (to-host MAC).
2026-08-12 18:46:28 +03:00
f8ab0c669b wiki(kreknin): gitea 1.27.1+postgres16 установлен, traefik починен, LE git.kreknin.site live
Чистая установка gitea+postgres на /volume1 (не SSD), админ kreknin.
Traefik: restart policy unless-stopped (лежал с 07-31, restart был no).
Проброс 80/443→8000/4443 в GUI Keenetic (API Viva закрыт).
NAT loopback сломан — DNS-override git.kreknin.site→192.168.1.43 нужен.
Пароли: pass kreknin/keenetic, pass kreknin/gitea.
2026-08-12 11:17:17 +03:00
b01b23f811 meta(kreknin): backups re-enabled + verified after power-cut; rebuild restarted
- cron restored vds-kzntsv 05:00 + books-vds 06:00; manual runs VERIFIED on kreknin (vds-kzntsv 66G / books-vds 15G, latest->08-10, 7 snaps each)
- books-vds was stale since 08-05 (rsync fails, no alternate trigger); stale ES snapshot daily-2026-08-10 removed
- md3 rebuild restarted from 0 after power-cut (progress not checkpointed); md0/md1 all 4 disks green
- add kreknin_rebuild_mon.sh array monitor (md0/md1/md3 + CRC)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-10 20:13:27 +03:00
53c2dcced8 meta(kreknin): win10 resolved — Ignore reset paused state, RuTokens re-enumerated to matching addrs 2026-08-10 20:13:27 +03:00
6f60065991 meta(kreknin): md0/md1 system partitions repaired, disks green 2026-08-10 2026-08-10 20:13:27 +03:00
9c6ea001e9 meta(kreknin): rebuild md3 started 2026-08-10, cables reseated 2026-08-10 20:13:26 +03:00
543b10a464 docs(wiki): namespace-consolidation + admin-api-embed concepts
Документированы два крупнейших изменения сессии 2026-08-04/05:
- Неймспейс-миграция @snollajs→@snolla (17 пакетов, 8 сайтов)
- Admin-api embed в pilonuxt /admin/api, retire стека 25

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-05 00:24:42 +03:00
f49481b80c meta(admin): MinIO split Track A DONE — books-vds minio 2020→2025 (shared + bookva), backup paths updated
- shared minio (stack 30): mirror 17 buckets → /usr/docker/minio/data-new, Portainer swap, traefik/imgproxy/books apps GREEN
- bookva-minio (stack 49): mirror books (38692 obj) → volume bookva-minio-data-new (docker volume rename unavailable on old daemon)
- backup script (repo + host /opt/stacks/backup/run.sh) repointed to live paths
- runbook Track A progress + gotchas (mc --disable-multipart, sequential mirrors on 3.8G host, CRLF secret)
- handoff for next session (retire old data in 48h, kreknin tomorrow)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-03 17:29:35 +03:00
1a901b1396 meta(handoff): kreknin rescue session — sdd/VM-volume restore + full rescue to USB + backups paused (→ repair)
- kreknin Xpenology degraded after compressor dusting (sdb cable lost, md3 degraded, sda/sdc flaky cables)
- sdd/VM-volume (md2, /volume2) restored: DSM Repair + "Convert to read/write", scrub 0 errors
- full rescue 2026-08-02 → USB 2TB btrfs /mnt/rescue (netbackup/*.tar incl. diskstation_1.hbk 430G + 5 user shares)
- daily backups DISABLED (vds-kzntsv 05:00 + books-vds 06:00) — re-enable after repair
- wiki entity kreknin-synology: disk inventory, incident, repair, rescue, plan
- task kreknin-repair-md3-rebuild created (power-off → reseat cables → Repair md3 → re-enable backups)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-03 12:40:51 +03:00
d82361d16d fix(minio-split): create variant-cache bucket on vds 2025 — sharp gallery-images 500 across all v3 sites
v3 minio-split перевёл snolla-сайты на minio.vds.kzntsv.site (2025), но variant-cache
bucket не создали там (был на books-vds 2020). snolla sharp-pipeline (variantCache.js
DEFAULT_NAMESPACE=variant-cache, storage.js bucket=storageClient) → NoSuchBucket → 500
на ALL sharp gallery-images всех 6 v3 сайтов с 2026-07-30. v3-gate не поймал: проверял
theme CSS (themes bucket, themeFiles — без sharp), не gallery-image URLs. Заметно на
maljarka portfolio (35 фото). Fix: mc mb vds/variant-cache (пустой, кэш регенерируем).
maljarka portfolio 34/34 → 200 image/webp, tandemmebel logs NoSuchBucket ушли.

- .tasks/STATUS.md + maljarka runbook §Гочи + minio-split-cutover-runbook Track A note
- memory variant-cache-bucket-missing-on-vds-2025

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-31 09:20:13 +03:00
494b101067 feat(maljarka): restore maljarka.tandemmebel.ru as 7th snolla site on VDS (stack 23)
Сайт потерян при decomm RUVDS 2026-07-21 (.NET MoreThenCms tenant, не был в v3 тираже).
Восстановлен как Node snolla-app 0.43.2 на VDS: victor/maljarka.tandemmebel.ru @7f03d67,
layout.liquid byte-identical рендеру локального .NET-admin (43730B, sha256 match),
siteId A2476738, Reversal тема из MinIO. LE issued. Live smoke GREEN.

- host-stacks/vds-kzntsv/maljarka.compose.yml (source-of-truth, stack 23)
- .wiki/concepts/maljarka-vds-deploy-runbook.md (калька on-snolla runbook)
- .tasks/STATUS.md + .wiki/index.md updated
- тираж snolla теперь 7/7: labtools(17)/emspb(18)/labtools-pro(19)/tandemmebel(20)/kupimknigi(21)/on-snolla(22)/maljarka(23)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-31 06:15:29 +03:00
18c27ab8f5 meta(handoff): MinIO-split B4 fully closed — gallery preview fixed (MoreThenCms 09cb072d)
B4 endpoint flip + pre-existing S3-provider KeyNotFoundException bug (gallery preview
ownerId) fixed via drop-in DLL. Preview confirmed live by user. Runbook §B4 + NEXT_SESSION
updated with root cause + fix reference.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 19:49:59 +03:00
84c2d6e981 meta(handoff): MinIO-split B4 DONE — .NET catch-all админ Web.config endpoint → vds minio
Web.config 6/6 fileStorageClients endpoint minio.kzntsv.site → minio.vds.kzntsv.site
(AWSSDK 1.3.19, us-east-1, forcePathStyle). Pre-flip verify: MINIO_ROOT_USER ==
Web.config accessKey (reuse, no rotation); mc read galleries/assets/themes OK
(B1 mirror live). IIS auto-recycle; https://internal.snolla.com/admin/account/login
200 <title>SNOLLA</title>, login form renders (app boots clean). Asset Manager
preview (authenticated) — user-confirm pending. Backup: Web.config.b4.bak.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 19:33:28 +03:00
1be1ed9ded meta(handoff): B5 Obsidian Remotely Save endpoint DONE — verified flipped to vds minio
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 19:27:07 +03:00
69d3d0dd3f feat(tandemmebel): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
6-й сайт тиража v3 (после on-snolla, kupimknigi, labtools.ru, labtools.pro, emspb).
6/6 v3 сайтов GREEN — тираж v3 ЗАВЕРШЁН.

- Bump: @snollajs/snolla 0.42.1→0.43.2 (apps/web) + resolutions verbatim labtools.ru
  (@aws-sdk/client-s3 3.1005.0 + @smithy chain 5.3.11 — optional determinism) + реген
  yarn.lock (single @smithy/signature-v4@5.3.11 deduped). Commit 9d51c09 в victor/tandemmebel.ru.
  Заодно нёс на live s3.endpoint fix f4ddce6 (→ minio.vds.kzntsv.site), был в master с 2026-07-29.
- Build на VDS: registry.kzntsv.site/tandemmebel:9d51c09, digest d14982c24dc7, 476MB (v2 583MB), EXIT=0.
- Staging :5020 parity-gate GREEN: robots md5 identical, sitemap 184=184 locs IDENTICAL,
  self-consistency 183×200 + 1×404 (/articles parity), Gotham-Pro.css 200 4436B (v3 S3-direct).
- Portainer PUT stack 20 (node in-memory, кириллица compose), env 8/8, pullImage:true, mem_limit 512m. PUT 200.
- Live smoke GREEN: / 200 45742B, /projects 200, sitemap 184, theme 200 4436B. TLS CN не тронут (LE Oct 10).
- Rollback = 8df10ee (v2, жив в registry).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 19:00:52 +03:00
fd48df6225 feat(emspb): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
5-й сайт тиража v3 (5/6 GREEN). In-place bump стека 18 (DNS на VDS с
2026-07-02). Commit victor/emspb.ru 5afd8a1 (bump + resolutions + yarn.lock
реген). Build на VDS → registry.kzntsv.site/emspb:5afd8a1 digest 72bb59fc.
Staging :5082 parity-gate GREEN (29/29 routes 200, theme assets 7/7 md5
IDENTICAL — v3 S3-direct read из vds MinIO 2025). Portainer PUT stack 18
env-preserving (8/8, node in-memory put-stack), prune:false pullImage:true.
Live smoke GREEN. Rollback = 95a5c42 (v2).

- emspb.compose.yml: 95a5c42→5afd8a1
- emspb-vds-deploy-runbook: §0.43.2
- minio-split-cutover-runbook: progress-table emspb , остался tandemmebel
- NEXT_SESSION: 5/6 GREEN, остался tandemmebel (стек 20, был BLOCKED на
  sharp-staging дефекте — проверить перед бампом)

Остался 1 сайт: tandemmebel.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 17:46:19 +03:00
c3c79b996a feat(labtools.pro): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
4-й сайт тиража v3 (on-snolla, kupimknigi, labtools.ru, labtools.pro — 4/6 GREEN).
Stack 19 image 0610432→a106622, env 8/8 preserved, mem_limit 512m.

Staging :5081 parity-gate GREEN: theme lato.css 200 9994B md5-identical
(v3 aws-sdk v3 S3-direct read из vds MinIO 2025), sitemap 7 детей == live,
order-parity press-forms 12 изделий, / 4-байт diff = og:url/og:image
request-host (benign). Live smoke GREEN, TLS CN=labtools.pro не тронут.
Rollback = labtools-pro:0610432 (0.42.1, жив в registry).

Compose source-of-truth + runbook v3 секция + handoff обновлены.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 17:36:36 +03:00
387560c9f8 feat(labtools): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
3rd site of v3 тираж (after on-snolla + kupimknigi, 3/6 GREEN).
Bump 0dc0b4e: apps/web snolla→0.43.2 + resolutions (root). Endpoint fix
4f3314f (minio.vds.kzntsv.site) was in master but not in running v2 image
566d41c — v3 cutover also moved S3-direct read to vds minio.

Staging :5080 parity-gate GREEN (home/theme byte-identical, sitemap 38
locs == live, order-parity). Portainer PUT stack 17 env-preserving 8/8,
mem_limit 512m, prune:false pullImage:true. Live smoke GREEN, TLS untouched.
Rollback = 566d41c (v2, in registry).

Compose source-of-truth 566d41c→0dc0b4e. Runbook + handoff updated.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 17:19:26 +03:00
60bb09b4c0 docs(kupimknigi): v3 cutover LIVE — runbook progress + handoff update
B3-v3 kupimknigi.spb.ru done (2/6 sites). 4 remain (labtools/labtools.pro/
emspb/tandemmebel). Rollback=9608ff6.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 17:10:00 +03:00
f56eb2f800 feat(on-snolla): v3 cutover LIVE — snolla 0.43.2 (aws-sdk v2→v3) + runbook migration
v3 pilot on.snolla.com end-goal (user 2026-07-30): bump @snollajs/snolla
0.42.1→0.43.2 + @smithy resolutions (root package.json, on.snolla.com eb8c143).
Portainer PUT stack 22 → registry.kzntsv.site/on-snolla:eb8c143, env-preserving
8/8, mem_limit 512m. Live smoke GREEN: theme asset 200 97324 B (v3 aws-sdk v3
S3-direct read из vds MinIO 2025), sitemap+sub-sitemaps byte-identical, /c 404.
Rollback = 07db7e3 (v2, жив).

runbook migration (дисциплина): scripts/minio-split-cutover/runbook.md →
.wiki/concepts/minio-split-cutover-runbook.md (конвенция: runbook'и в .wiki/concepts/).
Creds normalized → pass show minio-vds/full-env (wiki-конвенция, не plaintext).
+ index.md, log.md, on-snolla-vds-deploy-runbook v3-секция.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 14:30:38 +03:00
71dee93e86 @wiki: alias pilonuxt -> pilorama98.ru in prose; keep literal container/stack/image id
Замена прозо-ссылок pilonuxt на pilorama98.ru в 7 файлах, чтоб при поиске
по домену находились ops-записи. Буквальные docker-идентификаторы
(контейнер/стек pilonuxt Id 16, image tag, task-slugs) оставлены с пометкой
«контейнер pilonuxt».

Co-Authored-By: Claude <noreply@anthropic.com>
@
2026-07-29 10:59:39 +03:00
5a93ac780c wiki(snolla): ingest local admin HTTPS binding — self-signed wildcard *.snolla.com on IIS :443
Локальный .NET-админ snolla на HTTPS: pilorama98.snolla.com/admin 404 (не в hosts → VDS)
→ ERR_CONNECTION_CLOSED (HSTS upgrade, нет 443). Fix: IIS-native self-signed wildcard
*.snolla.com на :443 + Trusted Root (без traefik — acme.json пуст, лишний слой). Рабочий
entry-point /admin/account/login (голый /admin → canonical на public — предсуществующее
поведение CMS). +index.md (2 строки, design-док ранее не индексирован) + log.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-29 09:14:29 +03:00
43aa674e5b wiki(stostayer): ingest markdown-render-404 incident postmortem + NEXT_SESSION
Постмортем инцидента 2026-07-24: 404/500 на body_repair_service (stostayer.ru) =
двойной корень. (1) код-баг snolla: viewModels/index.js `import markdown from
'markdown-it'; markdown();` — инстанс выброшен, markdown.render undefined, краш на
markdown-поле-шаблонах (латентный ~3 мес с коммита 1e3f897 2026-04-21). (2) упаковка
exact-pin-staleness: @snollajs/content-api@0.8.0 `workspace:*` запёк
@snollajs/snolla:0.7.4 exact → фиксовая 0.7.7 легла top-level, content-api юзал
nested баговую 0.7.4. yarn resolutions/patch не форсят exact-pin опубликованного
пакета — решено публикацией @snollajs/content-api@0.8.2 (^0.7.7).

Деплой stostayer-web:0.3.22 через pscp SSH:20435 + sudo docker load + Portainer PUT
pullImage:false (без push в docker.stostayer.ru:443, бана нет). 4 URL → 200 публично.
Pre-build чек yarn.lock single-snolla ловит класс. Cleanup
workspace-caret-interpackage-deps — за vitya+snolla.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-24 14:37:53 +03:00
23b1a47c14 wiki(stostayer): ingest stostayer-admin-minio-config — :8090 admin on stostayer MinIO
Fix 2026-07-22: local .NET admin (C:\sites\stostayer\Web.config) S3 providers
re-pointed to stostayer MinIO. 3 bugs in original config: wrong creds
(AKIAJ2YJP72W6ZHCRE6Q = books-vds root, not stayer_minio), wrong endpoint
(minio.stostayer.ru is not S3 API port; prod uses minio-api.stostayer.ru),
wrong region (local -> AmazonS3Exception expecting us-west-1). Creds NOT in
pass — live in stostayer.new config/default.json. Admin now shares prod
storage; manual App_Data mirroring retired.

+ index.md, log.md. Also carries pending handoff (NEXT_SESSION) + runbook
update from 2026-07-21 stostayer-web 0.3.20 deploy session.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 10:45:13 +03:00
ec3ac79272 meta(ruvds): rimiz.ru DNS flipped to VDS — zero public domains left on RUVDS
Authoritative ns1/ns2.reg.ru serve 89.253.255.94 for rimiz.ru + www.
Public resolvers still cache 80.64.31.36 (TTL 86400), clears in 24h.
RUVDS has no public domain pointing at it anymore.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-21 10:18:29 +03:00
535ed6170f meta(ruvds): DECOMM 2026-07-21 — powered off, forgotten
ruvds-iis-host (80.64.31.36) decommissioned at provider. Final offsite
snapshot verified on kreknin 2026-07-21 (8.8G, 7-day retention).
Only public domain still on RUVDS was dead rimiz.ru (404 since 2026-05-19);
all snolla-fleet migrated to VDS (stacks 17-22). Local .NET admin
independent of RUVDS. on-snolla runbook rollback-ref updated
(RUVDS no longer rollback-target — image-tag only).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-21 10:14:09 +03:00
vitya
50e263860d ops(on-snolla): rename site alias on->internal (admin at internal.snolla.com/admin)
- Sites.Alias+LoweredAlias on->internal (siteId B9ECDB50; PrimaryDomain on.snolla.com kept).
- Web.config primaryAlias on->internal (catch-all default-site; without it the whole
  catch-all NRE-500s on every request — primaryAlias references the renamed alias).
- hosts: on.snolla.com->internal.snolla.com under # snolla-local-admin marker.
- setup-local-snolla-admin.ps1 aliases array updated.
- runbook + NEXT_SESSION + memory updated.

VDS prod on.snolla.com unaffected (snolla-app uses config.siteId, not alias) — verified
byte-identical + smoke GREEN after rename. Incident: elevated hosts edit emptied hosts
to 0B (Get-Content -Raw returned null in RunAs context) — restored from Windows default
header + snolla-local-admin block. Memory snolla-catch-all-primaryalias-depends-on-alias.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-20 13:33:09 +03:00
vitya
4c4d19382b feat(on-snolla): CUTOVER DONE — on.snolla.com live on VDS (stack 22, LE cert)
DNS reg.ru on.snolla.com A -> 89.253.255.94 (operator flip, authoritative NS verified).
Traefik rule swapped staging->Host(on.snolla.com), LE cert issued (CN=on.snolla.com,
YR1, until 2026-10-18). Live-smoke GREEN, homepage byte-identical prod-HTML, sitemap
3/3 parity. RUVDS IIS untouched (rollback = revert DNS).

- compose source-of-truth updated to LIVE rule.
- runbook .wiki/concepts/on-snolla-vds-deploy-runbook.md (cutover as-built + gotchas:
  snolla robotsTxt crash on undefined app.locals.domain, no Liquid form-tag, /c dead-link
  parity, Portainer JWT re-auth before PUT).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-20 13:17:59 +03:00
b1b0092cdc design(snolla): local .NET admin restore + on.snolla.com VDS migration
Two linked tasks, spec in .wiki/concepts/ per project-discipline.

Task A — snolla-local-admin-restore: восстановить локальный catch-all IIS-сайт
`snolla` (снесён 2026-06-08) копированием C:\sites\snolla\ с RUVDS (прод-админ
с MinIO drop-in), conn → mssql.kzntsv.site MoreThenCms. Доступ
<alias>.snolla.com/admin через hosts-override, один AppPool. Адреса + siteIds
извлечены из MoreThenCms DB read-only.

Task B — on-snolla-vds-migration (blocked by A): on.snolla.com (siteId
B9ECDB50…, alias on, "Internal Site", culture en) с RUVDS IIS → VDS Node
snolla-app 0.42.1, реконструкция Liquid-шаблонов из боевого сайта+админки
(исходников нет). По рецепту tandemmebel-vds-deploy-runbook.

Board entries: .tasks/STATUS.md + per-task files.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-20 09:45:06 +03:00