[2026-09-02] eagle: family/documents/vault-sync/2026-08-31-syncthing-truenas-incident.md family/documents/vault-sync/2026-09-02-restore-privilege-scope.md family/how-to/arr-stack-taiga.md family/how-to/syncthing-truenas-android.md family/how-to/vault-git-sync.md

This commit is contained in:
Alexey Martemyanov
2026-09-02 10:50:03 +06:00
parent 2cf220cddb
commit f1c948f1d2
5 changed files with 154 additions and 6 deletions
+5 -1
View File
@@ -1,7 +1,7 @@
---
title: Arr Stack — Taiga
created: '2026-05-23'
updated: '2026-05-23'
updated: '2026-09-02'
type: tech
namespace: family
tags: [arr, taiga, infra, media, pitfalls]
@@ -13,6 +13,10 @@ related:
Secondary arr stack on Taiga (TrueNAS), added 2026-05-20.
> **STATE 2026-09-02:** Стек **выключен** — в `docker ps -a` нет ни radarr/sonarr/prowlarr/jellyfin контейнеров (стек не пересоздавался). Compose-структура живёт в `/mnt/RED_2TB/docker/arr/` (`docker-compose.yml` + подпапки `prowlarr/ radarr/ sonarr/ jellyfin/ media-pipeline/`). Работает только `transmission` (отдельный compose `/mnt/RED_2TB/docker/transmission/`).
>
> **Почему не запускается просто так — медиа-права сломаны** (тот же restore-инцидент uid 921/0000): `/mnt/RED_2TB/storage/{Movies,Cartoons,Downloads,Music,series,shared}` → `d---------`/`drwx------`, owner `transmission` (uid 921). radarr/sonarr монтируют `/storage` (rw), jellyfin `:ro` — со сломанными правами не прочитают библиотеку. Фикс + запуск: см. `family/documents/vault-sync/2026-09-02-restore-privilege-scope.md`.
## Notes from Setup (2026-05-20)
- Config and pitfalls recorded during initial Taiga arr stack deployment
+9 -3
View File
@@ -9,12 +9,16 @@ Android (Syncthing app)
│ P2P sync (QUIC/TCP :22000)
TrueNAS (syncthing контейнер)
/var/syncthing/obsidian-vault → /mnt/RED_2TB/storage/obsidian
/var/syncthing/obsidian-vault → /mnt/RED_2TB/storage/obsidian-syncthing
├── Obsidian vault (полная копия на TrueNAS)
└── Eagle (Mac) — продолжает через git, Syncthing не участвует
```
> ⚠️ **2026-09-02 уточнение:** фактический mount в compose — `/mnt/RED_2TB/storage/obsidian-syncthing` (НЕ `/storage/obsidian`). Есть две отдельные папки:
> - `/storage/obsidian` — архивная/рабочая копия vault (старый mount в доке; `.stfolder` отсутствует) — НЕ является sync target.
> - `/storage/obsidian-syncthing` — **активная sync-копия** (`.stfolder` присутствует, uid 950) — это то, что реально монтируется контейнером. По ней и идёт телефонная синхронизация. В блоке `volumes:` ниже именно она.
## Доступ
- **Web UI:** https://syncthing.mallexxx.duckdns.org
@@ -42,7 +46,7 @@ services:
- TZ=Asia/Novosibirsk
volumes:
- /mnt/RED_2TB/docker/syncthing/config:/var/syncthing/config
- /mnt/RED_2TB/storage/obsidian:/var/syncthing/obsidian-vault
- /mnt/RED_2TB/storage/obsidian-syncthing:/var/syncthing/obsidian-vault
ports:
- "22000:22000/tcp"
- "22000:22000/udp"
@@ -55,7 +59,9 @@ networks:
external: true
```
**UID 950** = `truenas_admin` — имеет `FULL_CONTROL` ACL на `/mnt/RED_2TB/storage/obsidian`.
**UID 950** = `truenas_admin` — имеет `FULL_CONTROL` ACL на `/mnt/RED_2TB/storage/obsidian-syncthing` (и на `/storage/obsidian`).
> **Питфол (после restore 2026-08-31):** после восстановления из бэкапа и syncthing-папка (`obsidian-syncthing`), и многие `/storage/*` стали `uid 921` (`transmission`) с правами 0000 → syncthing-папка уходит в `error: stat .stfolder: permission denied` → телефонная синхронизация стоит. Фикс: вернуть `950:950` + `u+rwX,g+rwX` (см. `family/documents/vault-sync/2026-08-31-syncthing-truenas-incident.md`). Эта же поломка затрагивает `git/` и медиа-папки (см. `2026-09-02-restore-privilege-scope.md`).
## Caddy
+5 -1
View File
@@ -1,6 +1,6 @@
---
title: Vault Git Sync — Architecture & Scripts
updated: '2026-06-20'
updated: '2026-09-02'
type: tech
tags:
- vault
@@ -12,6 +12,10 @@ tags:
# Vault Git Sync
> **STATE 2026-09-02:** Eagle (мой `~/obsidian`) — git-sync **СТОИТ**: `main...nas/main [ahead 55]`. Причина — поломка прав после restore: `/mnt/RED_2TB/storage/git` (bare repo `obsidian-vault.git`) → `d--------- 921 921` (uid 921 = transmission). SSH к TrueNAS живой, но `git fetch`: `fatal: ... does not appear to be a git repository`. Fix: `chown 950:950` + `chmod u+rwX,g+rwX` на `storage/git`, затем `bash ~/scripts/sync-vault.sh`. Подробно: `family/documents/vault-sync/2026-09-02-restore-privilege-scope.md`.
> **Триггер cron на маке (Eagle) — это launchd, НЕ Hermes cron:** `~/Library/LaunchAgents/com.sync-vault.plist` → `/Users/admin/scripts/sync-vault.sh`, `StartInterval=300` (5 мин). Скрипт `sync-vault-lib.sh` намеренно глушит dead remote (`git fetch` fail → `exit 0`), поэтому launchd показывает `last exit code = 0` даже при фактически стоящем sync. Системный crontab на маке пуст.
Obsidian vault is a bare git repo on TrueNAS:
`/mnt/RED_2TB/storage/git/obsidian-vault.git`
Also mirrored in Gitea: `https://git.mallexxx.duckdns.org/git_admin/obsidian-vault`