type: standard
layer: arch
object: hub
aspect: standard
form: text
title: "Стандарт Hub — папка обмена данными"
status: active
version: 1.1.0
date: 2026-04-20
knowledge_level: У1
parent: arch-infra-structure.md
Hub — общая папка обмена данными между машинами платформы.
Существует на каждой машине. Внутри — подпапки по именам участников.
~/hub/ ← корень хаба (на всех машинах)
├── eu/ ← владелец: hub-eu (91.218.142.168)
│ └── <проект>/ ← обязательная папка проекта
│ └── файлы...
├── ai/ ← владелец: hub-ai (155.212.142.142)
│ └── <проект>/
│ └── файлы...
└── pc/ ← владелец: PC оператора
└── <проект>/
└── файлы...
Правило именования подпапок: короткое имя машины (2-4 буквы).
Правило вложенности: файлы кладутся не в корень папки владельца,
а в подпапку проекта: ~/hub/<машина>/<проект>/файл.
Пример: ~/hub/eu/lideravto/archive.tar.gz
| Уровень | Кто | Может |
|---|---|---|
| Обычный | каждая машина | писать только в свою папку, читать все |
| Привилегированный | claude, admin-агенты | писать в любую папку |
Серверы: lsyncd — синк по событию (inotify), не по таймеру.
При изменении файла в eu/ → сразу пуш в ai/eu/ и PC.
PC: rclone mount — живое монтирование. Файлы пишутся напрямую на сервер.
Нет синка — нет задержки.
| Компонент | Механизм |
|---|---|
| PC монтирование | systemd сервис + Restart=always + RestartSec=10 |
| Серверный синк | lsyncd + systemd сервис |
| Кеш на PC | --vfs-cache-mode full — файлы кешируются локально |
При обрыве сети: systemd перезапускает rclone через 10 сек автоматически.
| Компонент | Имя | Где |
|---|---|---|
| Хаб на 155 | @hub-ai.hub |
infra/@hub-ai.hub/ |
| Хаб на 91 | @hub-eu.hub |
infra/@hub-eu.hub/ |
| Коннектор PC | @home-pc.connector |
infra/@home-pc.connector/ |
# На сервере:
mkdir -p ~/hub/{eu,ai,pc}
# На PC:
bash <(curl -s http://91.218.142.168/files/hub-connect.sh)