Import complete: 25 044 objs / 26 GB. 99.97% залито rclone'ом (22.2 GB
за ~2.5 ч), оставшиеся 6 файлов (4.04 GB) — 4× .pat ~221 MB + 2× .seospider
1.55+1.7 GB — упали с 502/500 на каждом rclone PUT из-за 60-секундного
HTTP timeout в reva v2.27 datagateway (hardcoded в Go http.Client.Timeout,
не env-configurable).
Workaround: VDS-side curl PUT loopback через throwaway sftp key.
Local network 142 MB/s → 4.04 GB за 28 секунд, все PROPFIND size match.
Wiki: §Gotcha 5 в concepts/ocis-on-vds-deploy-recipe.md документирует
finding + recipe для workaround. Traefik buffering middleware пробован,
не помог (likely vulcand/oxy buffer bug на больших телах) — откатил.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New concept page documents the oCIS-on-VDS deploy pattern with the 4
non-obvious gotchas surfaced during owncloud-vds-deploy:
1. UID mismatch — image ocis-user is 1000, host vitya is 1001 →
compose `user: "1001:1001"` override (alt chown rejected as orphan-UID)
2. PROXY_TLS=false — explicit per docs when reverse proxy terminates HTTPS
3. PROXY_ENABLE_BASIC_AUTH=true — required for WebDAV/LibreGraph API
4. LibreGraph POST /graph/v1.0/users — only way to create users (no CLI)
Plus decomposedfs storage layout, atomic-revert recipe, backup integration
note. Source: .tasks/owncloud-vds-deploy.md.
entities/vds-kzntsv.md updated: stack table + hostnames + file layout
include owncloud row.
index.md catalog + log.md ingest entry refreshed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deploy phase done: oCIS 7.1.0 в /opt/stacks/owncloud/ через traefik labels на
owncloud.kzntsv.site (LE cert valid), user 'vitya' создан через LibreGraph
API, WebDAV `/dav/files/vitya/` PROPFIND 200 OK.
Decisions in close-note: oCIS vs Seafile/Nextcloud chosen for drop-in
decomposedfs import + lightweight Go binary. user:1001:1001 override after
mount perms fail (host vitya UID 1001 ≠ image ocis-user UID 1000).
PROXY_ENABLE_BASIC_AUTH=true для WebDAV/LibreGraph admin API.
Backup integration: /opt/stacks/owncloud добавлен в rsync sources в
/opt/stacks/backup/scripts/run.sh (vds-backup-rsync-kreknin scope expanded).
Status 🟡 — pending user-side rclone copy 24.7GB → WebDAV (full copy лежит
на другом PC, не на этом).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bisect через X-Forwarded headers: IIS+CMS возвращает 502 specifically для
Host: maljarka.tandemmebel.ru + X-Forwarded-Proto: https. Без XFP=https → 200.
URL Rewrite rule из cms-port-leak-fix ставит HTTPS=on/SERVER_PORT=443 → CMS
код для этого hostname падает в HTTPS-context. Same class как
emspb /admin/assets 500 NullRef, rimiz 404 — pre-existing CMS issues.
Side finding: traefik file-watch broken под Docker Desktop Windows (WSL2 9p
не пропускает inotify). Rename .yml → .disabled оставался без эффекта 38min
после изменения; только docker restart traefik подхватил. Это значит
iis-traefik-dead-routes-cleanup был фантомным до сегодняшнего restart 07:42 UTC.
2 новых wiki concepts: traefik-file-watch-wsl2-broken (workarounds) +
cms-maljarka-https-mode-crash (3 workarounds + 5 investigation places).
Новая follow-up ⚪ cms-maljarka-https-mode-bug-fix.
Final smoke post-restart: 7 live hosts ✅ Microsoft-IIS/10.0 без regression,
2 dead routes (sestech, ics-artmaterials) → 404 (cleanup теперь real).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bisect через X-Forwarded headers: IIS+CMS возвращает 502 specifically для
Host: maljarka.tandemmebel.ru + X-Forwarded-Proto: https. Без XFP=https → 200.
URL Rewrite rule из cms-port-leak-fix ставит HTTPS=on/SERVER_PORT=443 → CMS
код для этого hostname падает в HTTPS-context. Same class как
emspb /admin/assets 500 NullRef, rimiz 404 — pre-existing CMS issues.
Side finding: traefik file-watch broken под Docker Desktop Windows (WSL2 9p
не пропускает inotify). Rename .yml → .disabled оставался без эффекта 38min
после изменения; только docker restart traefik подхватил. Это значит
iis-traefik-dead-routes-cleanup был фантомным до сегодняшнего restart 07:42 UTC.
2 новых wiki concepts: traefik-file-watch-wsl2-broken (workarounds) +
cms-maljarka-https-mode-crash (3 workarounds + 5 investigation places).
Новая follow-up ⚪ cms-maljarka-https-mode-bug-fix.
Final smoke post-restart: 7 live hosts ✅ Microsoft-IIS/10.0 без regression,
2 dead routes (sestech, ics-artmaterials) → 404 (cleanup теперь real).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Renamed sestech.yml + isc-artmaterials.yml to .disabled (backups
.bak-pre-dead-routes-cleanup-2026-05-21). Traefik file-provider auto-reloaded,
no restart needed. 4 sibling live hosts (emspb, on.snolla, www.tandemmebel,
kupimknigi) → Microsoft-IIS/10.0 без regression.
maljarka оказался НЕ dead — yml route'ит maljarka.tandemmebel.ru (subdomain),
не голый maljarka.ru. DNS на наш IP, IIS backend 200 OK. Изначальная task'а
перепутала hostname. Side-finding: traefik HTTPS возвращает 502 для этого
subdomain (backend сам 200). Новая ⚪ task traefik-maljarka-502-bug.
Files renamed live в C:\Users\vitya\projects\docker\diskstation\traefik\data\
custom\ (вне репо) — поэтому в diff только task/wiki updates.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Soak passed: traefik Up 38h, w3wp 8.8h (scheduled IIS pool recycle ~29h, not crash).
HTTPS smoke 11 hostnames через full traefik chain — 8/8 наших sites вернули
Microsoft-IIS/10.0. 3 hostname'а оказались off-infra (DNS снят / parked / external
nginx) — не regression миграции, заведена follow-up ⚪ iis-traefik-dead-routes-cleanup.
Wiki: Phase 11 close-out section в sources/iis-host-migration-2026-05-19, log
ingest+decision entries.
VM snolla-recovery ready для savestate (waits user go).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Soak passed: traefik Up 38h, w3wp 8.8h (scheduled IIS pool recycle ~29h, not crash).
HTTPS smoke 11 hostnames через full traefik chain — 8/8 наших sites вернули
Microsoft-IIS/10.0. 3 hostname'а оказались off-infra (DNS снят / parked / external
nginx) — не regression миграции, заведена follow-up ⚪ iis-traefik-dead-routes-cleanup.
Wiki: Phase 11 close-out section в sources/iis-host-migration-2026-05-19, log
ingest+decision entries.
VM snolla-recovery ready для savestate (waits user go).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ntfy v2.11.0 stack at /opt/stacks/ntfy on VDS. Per-host LE cert (R12,
2026-05-20 → 2026-08-18) via traefik http-01. Admin user vitya/Pryakhin9
(deny-all default + admin role). Topics vds-backup + vds-ops. Phone push
confirmed in Android ntfy app. Integration-ready for vds-backup-rsync-kreknin.
iis-on-host-migration demoted to paused (passive soak, no agent action).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>