Files
vtube/docs/SITES.md
goboss 981a0ad9b6 Document granular hook policy + ad architecture + 94-site scale
Hook redesign (guard-readonly.sh + guard-bash.sh):
- ALLOW edits: /home/nosfortube/frontend_<port>/ (digits-only, all subdirs)
  + /home/nosfortube/orest/ (user working zone + screenshots)
- DENY: lang variants (frontend_<port>_<lang>/), frontend_core/, .git/,
  system paths (/etc/, /usr/, /boot/, /var/* except /var/log/claude/)
- 19/19 readonly + 18/19 bash tests pass (1 pre-existing sed-i regex gap)
- Backup попередньої версії: .bak.2026-05-02

Doc updates:
- New: PROJECT.md, ARCHITECTURE.md, DEPLOY.md, ADS.md, PERFORMANCE.md,
  INTERLINKING.md, ADMINS.md (topic-split docs/)
- CLAUDE.md: 94-site scale, granular edit zones, doc index
- INFRASTRUCTURE.md: hook table updated
- SITES.md: scope note (14 backup-tracked of 94 total)
- RECOMMENDATIONS.md: W1 (hook conflict) → DONE; W2-W3, D1-D4 added

Site architecture findings (audit 2026-05-02):
- 94 frontend_<port>/ sites, 71 in site-name-routing.csv, 14 backup-tracked
- 3 ad-architectures coexist: 8148 modern bundle (1), modern partials (~23),
  legacy inline surstrom (31)
- 8148 unique: ad-bundle.min.js source files, build-ad-bundle.sh, terser
- Server IP 185.73.222.75 у t1.* allowlist (curl probes work)
- CDN: custom + Cloudflare на 8081 etc; purge-cache при prod deploy

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 13:26:25 +00:00

5.9 KiB
Raw Permalink Blame History

tubev — Sites Inventory

Scope note: ця таблиця покриває 14 git-archived сайтів у /home/w4/backup_<port>/. Повна екосистема — 94 сайти у /home/nosfortube/frontend_<port>/. Site-name → port mapping (71 entries): /home/nosfortube/orest/site-name-routing.csv. Ця таблиця буде розширена коли поширимо backup-tracking або додамо моніторинг по всіх сайтах.

14 backup-tracked сайтів — кожен окремий git repo.

Таблиця

Port Domain Status Architecture Sync CSS Brand Notes
8081 ? (NL agego) active dev monolith selective (46L) 449KB outlier dark blue #3162d8 profile_*.etlua тільки тут; channel_list_thumb унікальний; SPA-like; CSS monolith style.css 221KB; layout 1223L
8084 hdsexvideo.xxx live legacy partials rsync mirror (12L) 172KB light + orange #ff8201 SCSS + gulp build pipeline; без views/css/
8085 sexfreehd.xxx live legacy partials rsync mirror (12L) 252KB dark + pink #fe6661 SCSS hybrid (style.scss 2421L); submodule drift views/static/js/lib; legacy js_old/, img_old/
8086 nu-bay.com live legacy partials hybrid (36L) 98KB dark + green #8bc215 outlier color (зелений); 30+ legacy файлів *copy*, *bak*, del___*; single styles.etlua (не css_*.etlua)
8100 fulltube.xxx live legacy partials rsync mirror (12L) 147KB red/brown #c8280e багато файлів з пробілами та " copy"/"with titles" варіантами
8102 gaypornhd.xxx live legacy partials rsync mirror (12L) 106KB dark + red #fe1c5c DEL_* модулі; my copy.js dead
8107 maturesexmovies.xxx live legacy partials rsync mirror (12L) 104KB gradient blue-violet DEL_* + adspy banners cluster; obfuscated gk5LT.js
8112 hdpornvideo.xxx live prod canonical selective (50L) 209KB dark + orange #f45100 повна дублікація static/ ↔ views/static/ (md5-identical); єдиний з git remote git.tubev.sex; 2 GA properties у одному gtag (потенційний bug); 7+ "with/without ads" варіантів; untracked rotator/, lib/, nginx.conf
8120 pornv.xxx live partial-modern selective (46L) 133KB navy + orange мінімальний (без top_list); HTML5 <main> semantic; обmodernized
8126 xxxtube1.com live legacy partials rsync mirror (12L) 103KB dark + red #ff0344 мінімалістичні breakpoints (7 BP); HTML5 <section>; mobile menu з 8 aria-expanded; untitled file × 2
8129 ? active dev minimal hybrid (36L) 69KB smallest dark + orange #fb671e мінімаліст (без model_list, top_list, header.etlua, footer.etlua, bottom_block.etlua); 7 модулів total
8131 fullhdxxx.com live legacy partials rsync mirror (12L) 111KB dark + orange #f47a20 obfuscated JS: PxqbeCb.js, gD0A3.js, 9qFdXQ7.js
8133 broxxx.com live legacy partials hybrid (37L) 127KB light __main.js underscore prefix; counters.min.test.js (test у prod)
8148 ? canonical lab minimal modern selective (79L) + build hook 82KB sprite-driven, light 288 commits/30d (broadcast source); CSS vars system (24 tokens) — єдиний з token system; sync.sh викликає build-ad-bundle.sh + md5 hash bump через sed -i; vast-preroll.js, ad-* adstack

Кластери

Архітектурні

  • Monolith outlier: 8081 (1223L layout, profile pages, SPA-like)
  • Canonical lab: 8148 (modern, CSS vars, ad-bundle automation, broadcast source)
  • Prod canonical: 8112 (повна дублікація tree, untracked prod mirror)
  • Legacy partials majority: 8084, 8085, 8086, 8100, 8102, 8107, 8126, 8131, 8133 (header.etlua + footer.etlua + bottom_block.etlua)
  • Minimalists: 8120, 8129, 8148 (без top_list / без header.etlua)

Візуальні

  • Dark + Orange: 8112, 8129, 8131, 8133
  • Dark + Red/Pink: 8085, 8086 (зелений), 8102, 8126
  • Dark + Blue: 8081
  • Light + Orange: 8084, 8133
  • Hybrid/Modern: 8107 (gradient), 8120 (navy+orange), 8148 (sprite light)
  • Outlier color: 8086 (зелений #8bc215)

Sync патерни

  • Group A (rsync mirror 12L, ідентично): 8084, 8085, 8100, 8102, 8107, 8126, 8131
  • Group B (selective cp): 8081, 8086, 8112, 8120, 8129, 8133, 8148

Невідомі домени

8081, 8129, 8148 — lib/<port>/var.lua відсутній у backup, домен не виводиться. Питання до розробника: які домени відповідають цим портам?

Test/staging

test.<domain> НЕ налаштовано (DNS/connect-fail для всіх 11 known доменів). Усі live тільки на www.<domain> (HTTP/2 200, nginx 1.21.1, спільний backend s=l8 cookie).

Питання до розробника: як працює preview змін перед prod? Інший механізм (port-direct, VPN, feature branch deploy)?

Останні активності (станом на 2026-04-30)

Activity Sites
288 commits/30d 8148 (lab/dev)
12 commits/30d 8081 (NL experiments)
2-5 commits/30d решта 12 (broadcast рецепієнти)

Pattern: 8148 розробляється → коміти broadcast'яться по всіх 14 сайтах (cross-site batch commits типу popunder cross-tab gate _asgGatedLoad on 12 sites).


Source: gocc2 + gocc3 + gocc4 audits 2026-04-30. Update — коли додається/закривається сайт, або змінюється cluster.