diff --git a/proxmox/lxc171-claude-agent/maria-whatsapp-bridge/README.md b/proxmox/lxc171-claude-agent/maria-whatsapp-bridge/README.md index c9a24fc..1059a19 100644 --- a/proxmox/lxc171-claude-agent/maria-whatsapp-bridge/README.md +++ b/proxmox/lxc171-claude-agent/maria-whatsapp-bridge/README.md @@ -115,23 +115,19 @@ Pasi (o singura data): ``` Se deschide browserul; autentifica-te cu `mmarius28@gmail.com` si accepta. In consola apare un token JSON intre `--->` si `<---`. Copiaza-l intreg. -2. **Pe container**, creeaza remote-ul cu tokenul copiat: +2. **Pe container**, da tokenul scriptului de configurare: ``` - rclone config create gdrive drive scope=drive.readonly token='' + ops/setup-drive.sh '' ``` -3. Testeaza ca vede dosarul: - ``` - rclone lsf gdrive: --drive-root-folder-id=1C4e75zgH1_7ZK-_oBP5ZZBvUPh3iEo1O - ``` -4. Pune tinta in `~/.maria-bridge/env`: - ``` - DRIVE_REMOTE=gdrive,root_folder_id=1C4e75zgH1_7ZK-_oBP5ZZBvUPh3iEo1O: - ``` - (sintaxa „connection string" a rclone — fixeaza dosarul fara sa depinda de - structura de nume din My Drive.) -5. Testeaza: butonul „sincronizeaza din Drive acum" din dashboard, sau - `systemctl --user start maria-sync.service` apoi - `journalctl --user -u maria-sync -n 50`. + Face restul singur: creeaza remote-ul `gdrive`, verifica accesul la dosar, + scrie `DRIVE_REMOTE` in `~/.maria-bridge/env` (cu backup) si ruleaza prima + sincronizare cu reindexare. E idempotent — se poate rula din nou oricand. + + Tinta scrisa in env e `gdrive,root_folder_id=:` — sintaxa „connection + string" a rclone, care fixeaza dosarul dupa ID, fara sa depinda de structura + de nume din My Drive. +3. Verifica in dashboard: sectiunea Maria trebuie sa arate „Drive: …" in loc de + „Sincronizare Drive dezactivata". Tokenul se reimprospateaza singur (refresh token) cat timp aplicatia ramane autorizata in contul Google. Daca expira, dashboard-ul arata sincronizarea ca diff --git a/proxmox/lxc171-claude-agent/maria-whatsapp-bridge/ops/setup-drive.sh b/proxmox/lxc171-claude-agent/maria-whatsapp-bridge/ops/setup-drive.sh new file mode 100755 index 0000000..6a2af02 --- /dev/null +++ b/proxmox/lxc171-claude-agent/maria-whatsapp-bridge/ops/setup-drive.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash +# Configureaza sincronizarea depozitului Mariei cu Google Drive, dintr-un token +# obtinut cu `rclone authorize` pe o masina cu browser (containerul e headless). +# +# Pe Windows, in dosarul unde ai dezarhivat rclone.exe: +# rclone.exe authorize "drive" --drive-scope=drive.readonly +# Copiaza tokenul JSON dintre ---> si <--- si ruleaza aici: +# ops/setup-drive.sh '' +# +# Idempotent: rulat din nou, rescrie remote-ul si linia DRIVE_REMOTE. + +set -euo pipefail + +REMOTE_NAME="gdrive" +FOLDER_ID="1C4e75zgH1_7ZK-_oBP5ZZBvUPh3iEo1O" # document_store, cont mmarius28@gmail.com +ENV_FILE="${MARIA_BRIDGE_DIR:-$HOME/.maria-bridge}/env" +DRIVE_REMOTE="${REMOTE_NAME},root_folder_id=${FOLDER_ID}:" + +token="${1:-}" +if [ -z "$token" ]; then + echo "Uz: $0 ''" >&2 + exit 2 +fi +if ! printf '%s' "$token" | python3 -c 'import json,sys; json.load(sys.stdin)' 2>/dev/null; then + echo "Tokenul nu e JSON valid. Copiaza tot, inclusiv acoladele." >&2 + exit 2 +fi +command -v rclone >/dev/null || { echo "rclone nu e instalat" >&2; exit 1; } +[ -f "$ENV_FILE" ] || { echo "nu gasesc $ENV_FILE" >&2; exit 1; } + +echo "1/4 creez remote-ul rclone '$REMOTE_NAME'…" +rclone config delete "$REMOTE_NAME" 2>/dev/null || true +rclone config create "$REMOTE_NAME" drive scope=drive.readonly token="$token" --non-interactive >/dev/null + +echo "2/4 verific accesul la dosar…" +if ! rclone lsf "$DRIVE_REMOTE" >/tmp/.maria-drive-check 2>/tmp/.maria-drive-err; then + echo "nu pot citi dosarul:" >&2; cat /tmp/.maria-drive-err >&2; exit 1 +fi +echo " vad $(wc -l > "$ENV_FILE" +fi + +echo "4/4 sincronizez si reindexez…" +cd "$(dirname "$0")/../rag" +"${MARIA_BRIDGE_DIR:-$HOME/.maria-bridge}/venv/bin/python" sync.py --force + +echo +echo "Gata. Timer-ul maria-sync trage la 10 minute de acum inainte."