64 lines
3.4 KiB
Markdown
64 lines
3.4 KiB
Markdown
|
|
# tubev — Per-Site Architecture
|
|||
|
|
|
|||
|
|
Що де лежить у `/home/nosfortube/frontend_<port>/` і яка зона безпечна для редагування.
|
|||
|
|
|
|||
|
|
## Folder map
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
/home/nosfortube/frontend_<port>/
|
|||
|
|
├── views/ ← НАША зона
|
|||
|
|
│ ├── *.etlua templates (layout, video page, list, footer, ...)
|
|||
|
|
│ ├── modules/ reusable module includes
|
|||
|
|
│ ├── css/ etlua-rendered CSS chunks (часто critical inline)
|
|||
|
|
│ └── static/ ← public-served assets
|
|||
|
|
│ ├── css/ deferred CSS files
|
|||
|
|
│ ├── js/
|
|||
|
|
│ │ ├── lib/ ← SHARED (НЕ редагувати для one-off!)
|
|||
|
|
│ │ ├── lib2/ ← SHARED (НЕ редагувати для one-off!)
|
|||
|
|
│ │ ├── c2.js, auth.js, comment.js, profile_index.js, main.js, ...
|
|||
|
|
│ │ └── *.min.js
|
|||
|
|
│ └── videojs-v10/ video player
|
|||
|
|
├── lib/
|
|||
|
|
│ └── <port>/
|
|||
|
|
│ └── var.lua ← per-site config змінні (потребує kor reboot!)
|
|||
|
|
└── (інше) ← НЕ чіпаємо
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Site name → port
|
|||
|
|
|
|||
|
|
`/home/nosfortube/orest/site-name-routing.csv`:
|
|||
|
|
|
|||
|
|
```csv
|
|||
|
|
site name;id;url-pattern;new-url-pattern
|
|||
|
|
atube.sex;8082;/video/;/video/hold/
|
|||
|
|
hdmmovies.xxx;8083;/video/;/video/offline/
|
|||
|
|
...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Лукап: `grep ';8083;' /home/nosfortube/orest/site-name-routing.csv` → site name.
|
|||
|
|
|
|||
|
|
## SHARED vs per-site
|
|||
|
|
|
|||
|
|
**SHARED (зміни → всі сайти):**
|
|||
|
|
- `views/static/js/lib/` — основний shared, активно використовується звичайними скриптами
|
|||
|
|
- `views/static/js/lib2/` — другий shared bucket. Юзер каже: "в цілому сайти що юзають звичайні скрипти то ніби ніколи не бачив що тянуть щось з lib2, тільки lib". **Реальне використання lib2 — рідкісне** (можливо historical / specific subset).
|
|||
|
|
|
|||
|
|
**Правило:** якщо щось правиш у `lib/` або `lib2/` — зміна поширюється на ВСІ сайти. Per-site fix робити НЕ можна тут. Винести у per-site файл або параметризувати через `var.lua`.
|
|||
|
|
|
|||
|
|
**Per-site (editable безпечно):**
|
|||
|
|
- `views/*.etlua` (всі templates)
|
|||
|
|
- `views/modules/`, `views/css/`
|
|||
|
|
- `views/static/css/`, `views/static/js/<non-shared>.js`
|
|||
|
|
|
|||
|
|
## Config — `lib/<port>/var.lua`
|
|||
|
|
|
|||
|
|
- Lua-таблиця змінних доступних у templates через kor runtime
|
|||
|
|
- **Зміни applied тільки після kor reboot** — це блокер для interactive flow
|
|||
|
|
- Додавати нові змінні → пишеш у `var.lua` → просиш Адміна reboot → змінна стає доступна
|
|||
|
|
|
|||
|
|
## Open questions
|
|||
|
|
|
|||
|
|
- [ ] `lib/` vs `lib2/` — функціональна різниця історична / структурна / випадкова? (lib2 рідко вживається — можливо deprecated subset?)
|
|||
|
|
- [ ] Що ще лежить у `frontend_<port>/` поза `views/` + `lib/`? (services/, conf/, scripts/?) — `ls` коли матимем доступ
|
|||
|
|
- [ ] kor reboot — manual через Адміна, нема self-service API
|