# IronDome — Backup Completo · 2026-05-01 · v1.0.9

Snapshot de **toda a estrutura** do projeto IronDome neste momento. Use pra
restaurar a máquina inteira em caso de formatação.

## Conteúdo

```
irondome-backup-20260501-v1.0.9/
├── README.md                       # este arquivo
├── cloud/                          # 288 KB
│   ├── frontend/                   # SPA Vercel (irondome-cloud.vercel.app)
│   │   ├── public/index.html       # 205 KB · SPA inteira
│   │   ├── public/manifest.webmanifest, sw.js, icon.svg
│   │   └── vercel.json
│   └── backend/                    # FastAPI VPS Hostinger 72.62.136.152
│       ├── main.py                 # 57 KB · 30+ endpoints
│       ├── requirements.txt
│       ├── Dockerfile
│       └── docker-compose.yml
├── operator/                       # 12 MB · IronDome Operator (Mac)
│   ├── source/                     # código Python (gui.py, irondome_operator.py, ...)
│   │   ├── gui.py
│   │   ├── irondome_operator.py    # 1.0.9 com gates OR
│   │   ├── houses.json
│   │   ├── build.spec
│   │   ├── CHANGELOG.md
│   │   └── README.md
│   └── IronDome-Operator-1.0.9.dmg # 12 MB · binário pronto pra instalar
├── aviator-signals/                # 17 MB · scraper local + sqlite
│   ├── server.py, daemon_dom.py, daemon_cdp.py, autoclick_daemon.py
│   ├── cloud_sync.py
│   ├── data/aviator.db             # 9 MB · sqlite com crashes históricos
│   ├── start.sh, restart.sh, stop.sh, install.sh
│   └── .env.cloud                  # credenciais cloud (token + chat_id)
├── irondome-site/                  # 27 MB · site de download
│   ├── public/                     # estático Vercel
│   ├── api/                        # versioning JSON
│   └── vercel.json
└── db/
    └── irondome.sql.gz             # 2.1 MB · pg_dump completo Postgres VPS
                                    # 227.843 crashes, 6 tenants, operator_state, bets
```

## Como restaurar (Mac novo zerado)

### 1. Pré-requisitos
- macOS 11+
- Brave Browser instalado
- Python 3.12 (`brew install python@3.12`)
- Acesso SSH ao VPS Hostinger (chave configurada)
- Vercel CLI instalado (`npm i -g vercel` + `vercel login`)

### 2. Restaurar projetos no Mac

```bash
# Cria estrutura de pastas
mkdir -p ~/projetos ~/estudos

# Copia cada projeto pro lugar certo
cp -R cloud/frontend ~/projetos/irondome-cloud
cp -R operator/source ~/projetos/irondome-operator
cp -R aviator-signals ~/estudos/aviator-signals
cp -R irondome-site ~/estudos/irondome-site
```

### 3. Reinstalar Operator (Mac)

```bash
# Opção A: instalar DMG diretamente (mais rápido)
hdiutil attach operator/IronDome-Operator-1.0.9.dmg
cp -R "/Volumes/IronDome Operator/IronDome Operator.app" /Applications/
xattr -cr "/Applications/IronDome Operator.app"
hdiutil detach "/Volumes/IronDome Operator"

# Opção B: rebuildar do código fonte (se quiser mudar)
cd ~/projetos/irondome-operator
python3.12 -m venv .venv
.venv/bin/pip install pyinstaller websocket-client
.venv/bin/python -m PyInstaller build.spec --clean --noconfirm
```

### 4. Reativar aviator-signals (scraper local)

```bash
cd ~/estudos/aviator-signals
# verifica .env.cloud está correto (credenciais VPS)
cat .env.cloud
# instala deps Python
pip3 install -r requirements.txt
# inicia
bash start.sh
```

### 5. Restaurar VPS (cloud backend)

```bash
# Sobe arquivos pro VPS
scp cloud/backend/main.py root@72.62.136.152:/opt/irondome/api/
scp cloud/backend/requirements.txt root@72.62.136.152:/opt/irondome/api/
scp cloud/backend/Dockerfile root@72.62.136.152:/opt/irondome/api/
scp cloud/backend/docker-compose.yml root@72.62.136.152:/opt/irondome/

# Restaura DB Postgres (CUIDADO: apaga estado atual)
scp db/irondome.sql.gz root@72.62.136.152:/tmp/
ssh root@72.62.136.152 "gunzip -c /tmp/irondome.sql.gz | sudo -u postgres psql -d irondome"
ssh root@72.62.136.152 "rm /tmp/irondome.sql.gz"

# Rebuilda container
ssh root@72.62.136.152 "cd /opt/irondome && docker compose up -d --build api"
```

### 6. Re-deploy frontend Vercel

```bash
cd ~/projetos/irondome-cloud
vercel --prod --yes
```

```bash
cd ~/estudos/irondome-site
vercel --prod --yes
```

## Estado capturado neste backup

### Versões em produção
- **Cloud Frontend**: deploy mais recente em `irondome-cloud.vercel.app`
  - 4 gauges na Visão Geral (Cenário 10x · Horário pra apostar · Rodadas sem 10x · 10x últimas 300)
  - Card de status preto com mensagens dinâmicas + contagem regressiva
  - 6 blocos na aba Configuração com tooltips
  - Aba Horários com seletor de período + fuso configurável
  - Modal "Nova sessão / Continuar" no Ativar autoclick
  - Som de alerta BET + relógio com fuso (SP/LA)
- **Cloud Backend**: 30+ endpoints sob `/api/v1/`
  - `operator_state` com 22 colunas avançadas
  - Telegram outbound via httpx em 6 hooks (bet/hit/miss/stop/session/test)
  - Heatmap dia × hora com fuso configurável
- **Operator**: 1.0.9 com gates OR entre observe_mode e detector de cauda
- **Aviator-signals**: scraper rodando via 3 daemons (server.py + daemon_dom + autoclick_daemon)

### Banco
- 227.843 crashes (range 2025-08-02 → 2026-05-01)
- 6 tenants (matheus-local, Matheus Irondome cloud, Matheus, test-cliente, Ribeiro Adm, Ribeiro Master)
- 1.421 bets históricos
- operator_state com 4 tenants ativos
