Add Object B and self-growth canons with Cursor ledger rules; refresh connectivity and VPN runbooks.
Track day metrics/anamnesis HARD rules under .cursor/rules and personal docs so each screening updates days/{KIN}, dynamics, and big-data ledger.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,17 +1,38 @@
|
||||
# Стабильная настройка: Android-хотспот + Mac + Joplin
|
||||
# Стабильная настройка: Joplin Mac ↔ телефон
|
||||
|
||||
Без облака и без VPN. Mac — WebDAV (rclone), телефон — клиент по HTTP в одной LAN (обычно **хотспот Android**).
|
||||
|
||||
---
|
||||
|
||||
## Важно: `.local` с телефона **не работает**
|
||||
## Схема
|
||||
|
||||
`http://eternals.local:8080` резолвится на **Mac**, но **Android, раздающий хотспот, не умеет** резолвить `.local` имён **подключённых** клиентов (Mac). Запросы до rclone не доходят.
|
||||
| Устройство | WebDAV URL |
|
||||
|------------|------------|
|
||||
| **Mac** | `http://127.0.0.1:8080` (никогда не менять) |
|
||||
| **Телефон** | `http://<подсеть>.100:8080` — из `joplin-webdav-status.sh` |
|
||||
|
||||
**Рабочая схема:** alias **`*.100`** на `en0` + URL `http://<подсеть>.100:8080`.
|
||||
На Mac **primary IP** Wi‑Fi = `*.100` через `networksetup -setmanual` (не ifconfig alias). Android маршрутизирует к **primary**; alias `.100` телефон часто не видит.
|
||||
|
||||
| Устройство | URL |
|
||||
|------------|-----|
|
||||
| Mac | `http://127.0.0.1:8080` |
|
||||
| Телефон | `http://10.74.21.100:8080` (подсеть меняется → см. ниже) |
|
||||
`.local` / mDNS **с Android-хотспота не работает** — только IP.
|
||||
|
||||
---
|
||||
|
||||
## Перед каждым синком (чеклист)
|
||||
|
||||
1. **Mac на Wi‑Fi хотспота этого телефона** — не домашний Wi‑Fi (отключить auto-join домашней сети).
|
||||
2. На Mac:
|
||||
```bash
|
||||
./docs/apps/joplin/scripts/joplin-ensure-sync.sh
|
||||
```
|
||||
3. В выводе: `static IP: OK`, rclone слушает `:8080`.
|
||||
4. **Телефон:** URL `http://<подсеть>.100:8080` — сначала проверить в **браузере** (логин за 2–3 сек), потом Joplin → синк.
|
||||
5. В `~/Library/Logs/joplin-webdav/rclone.log` — `GET`/`PUT from <IP шлюза/телефона>`.
|
||||
|
||||
Переход на **домашний Wi‑Fi** (без Joplin с телефона):
|
||||
|
||||
```bash
|
||||
./docs/apps/joplin/scripts/joplin-hotspot-alias.sh dhcp
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -19,37 +40,75 @@
|
||||
|
||||
```bash
|
||||
./docs/apps/joplin/scripts/joplin-webdav-install.sh
|
||||
bash ./docs/apps/joplin/scripts/joplin-android-hotspot-setup.sh install
|
||||
./docs/apps/joplin/scripts/joplin-hotspot-alias-install.sh # LaunchAgent
|
||||
./docs/apps/joplin/scripts/joplin-hotspot-alias-install-sudo.sh # sudo без пароля
|
||||
```
|
||||
|
||||
На телефоне — URL из вывода (`joplin-hotspot-alias.sh status`).
|
||||
|
||||
Автоподнятие alias после reconnect:
|
||||
На телефоне в Joplin → WebDAV — URL из:
|
||||
|
||||
```bash
|
||||
./docs/apps/joplin/scripts/joplin-hotspot-alias-install-sudo.sh # sudoers, без пароля
|
||||
./docs/apps/joplin/scripts/joplin-webdav-status.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## После reconnect
|
||||
## После reconnect / смены подсети
|
||||
|
||||
1. Alias поднимается LaunchAgent (если sudoers установлен)
|
||||
2. Проверка: `./docs/apps/joplin/scripts/joplin-webdav-status.sh`
|
||||
3. Если подсеть **та же** (`10.74.21.x`) — URL на телефоне **не менять**
|
||||
4. Если подсеть **сменилась** (`10.219` → `10.74`) — **один раз** новый URL из `status`
|
||||
```bash
|
||||
./docs/apps/joplin/scripts/joplin-ensure-sync.sh
|
||||
```
|
||||
|
||||
Интернет пропал: `bash .../macos-hotspot-network-recover.sh recover`
|
||||
| Ситуация | URL на телефоне |
|
||||
|----------|-----------------|
|
||||
| Та же подсеть (`10.121.169.x` → `10.121.169.x`) | **Не менять** |
|
||||
| Подсеть сменилась (`10.74.21.x` → `10.121.169.x`) | **Один раз** новый URL из `status` |
|
||||
| Mac и телефон в одной домашней Wi‑Fi | `http://192.168.1.100:8080` (пример) |
|
||||
| Mac на домашнем Wi‑Fi, телефон на мобильном | **Синк невозможен** — Mac к хотспоту телефона |
|
||||
|
||||
Если `static IP: MISSING`:
|
||||
|
||||
```bash
|
||||
./docs/apps/joplin/scripts/joplin-hotspot-alias.sh repair
|
||||
```
|
||||
|
||||
Сеть «умерла» после reconnect хотспота:
|
||||
|
||||
```bash
|
||||
bash /Users/eternal/code/local_machine/docs/connectivity/scripts/macos-hotspot-network-recover.sh recover
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Почему URL иногда меняется
|
||||
## Почему десктоп «синкается», а телефон — нет
|
||||
|
||||
Android выдаёт **разные подсети** (`10.219.227.x`, `10.74.21.x`). Без Tailscale/VPN **нельзя** иметь один HTTP-URL при любой подсети с телефона-хотспота. Фиксированный **хвост `.100`** + автоподнятие alias минимизируют ручную работу.
|
||||
Mac ходит на **`127.0.0.1:8080`** — всегда работает. Телефон зависит от:
|
||||
|
||||
1. **Одна сеть** — Mac и телефон в одной LAN
|
||||
2. **Primary `.100`** — `static IP: OK` в status
|
||||
3. **URL на телефоне = текущая подсеть** — не старый `10.74.21.100`
|
||||
4. **rclone.log** — есть `GET`/`PUT from <IP>`
|
||||
|
||||
Joplin на Mac **скрывает** ошибки — смотреть `rclone.log`, не только UI.
|
||||
|
||||
---
|
||||
|
||||
## Подсети меняются
|
||||
|
||||
Без VPN нельзя иметь **один** URL при любой подсети. Фиксированный **хвост `.100`** минимизирует правки: меняется только префикс (`10.74` → `10.121` → `10.219`).
|
||||
|
||||
---
|
||||
|
||||
## История рабочих подсетей
|
||||
|
||||
| Дата | Подсеть | URL телефона |
|
||||
|------|---------|--------------|
|
||||
| 2026-06-09 | `10.219.227.x` | `http://10.219.227.100:8080` (setmanual) |
|
||||
| 2026-06-19 | `10.74.21.x` | `http://10.74.21.100:8080` |
|
||||
| 2026-07-04 | `10.121.169.x` | `http://10.121.169.100:8080` — **проверено, синк OK** (setmanual) |
|
||||
|
||||
---
|
||||
|
||||
## Связанное
|
||||
|
||||
- [RUNBOOK.md](./RUNBOOK.md)
|
||||
- [RUNBOOK.md](./RUNBOOK.md) — диагностика
|
||||
- [HOTSPOT_NETWORK_EMERGENCY.md](../../HOTSPOT_NETWORK_EMERGENCY.md)
|
||||
|
||||
Reference in New Issue
Block a user