---
name: rsync-delete-deploy-excludes
description: rsync --delete деплой дев→прод обязан исключать .env и logs — иначе стирает секреты/логи прода
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 6f344612-b945-4107-b457-8ad2163cd988
  modified: 2026-07-22T13:48:27.109Z
---

Любой `rsync -a --delete` деплой из dev-дерева в прод (mac mini или другой хост)
обязан нести как минимум `--exclude logs --exclude .env`, без исключений и без
надежды на память в моменте.

**Why:** `--delete` зеркалит dev-дерево 1:1 — если файла нет в источнике (а `.env`
и `logs/` там и не должны быть, `.env` гитигнорится и живёт только в проде), rsync
удаляет его и в prod. Дважды всплывало в [[investpilot_overview]]: сначала снёс
`~/Services/investpilot/logs/`, второй раз стёр `.env` целиком (включая
`INVESTPILOT_TINKOFF_TOKEN`, который осознанно нигде не резервируется — пришлось
просить владельца перевыпускать read-only токен T-Invest). Оба раза — ручной rsync
без явного exclude-листа, не автоматизированный скрипт.

**How to apply:** перед любым `rsync --delete` деплоем на любом проекте — секунда
на проверку команды: есть ли `--exclude logs` и `--exclude .env` (и любые другие
runtime-артефакты/секреты, которых нет в dev-дереве специально: `data/`, `*.db`,
и т.п., по аналогии с [[avtero_backups_gdrive]]-стиля осторожностью). Лучше всего —
завести деплой-скрипт с зашитыми excludes вместо повторения флагов вручную каждый
раз (см. Правило 6 CLAUDE.md — повторяемое действие достойно стать скриптом/скиллом).

**Если `.env` всё же потерян и восстанавливается вручную:** `.env.example` в репо —
НЕ полный источник правды, он документирует только «частые» поля. Сверяться нужно
с полем `Settings` в `config.py` целиком — в investpilot после восстановления `.env`
пропустили `INVESTPILOT_RESEARCH_BASE_URL` (не в `.env.example`), из-за чего все
`research/*` LLM-модели тихо уходили не туда (в OmniRoute вместо CebersResearch) и
падали с обманчивой ошибкой «no active credentials», маскируясь под флап модели, а
не под дыру в конфиге — нашли только через день, когда перепроверяли LLM-цепочку.
