2026-04-30 14:18:23 +00:00
# tubev — Sites Inventory
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
> **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.
2026-04-30 14:18:23 +00:00
## Таблиця
| 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.*