87 lines
2.9 KiB
Markdown
87 lines
2.9 KiB
Markdown
# AGENTS.md — Autonomous Publisher Infrastructure
|
|
|
|
## Quick Start
|
|
8 authority sites on Proxmox CTs 135-142. Flask :5000 + nginx :80.
|
|
Check Obsidian: Infrastructure/Auto Publisher.md
|
|
|
|
## Critical Rules
|
|
1. NEVER Proxmox CTs for AI — user forbids it
|
|
2. MacBook: qwen3.5:4b-mlx (think:false)
|
|
3. GamingPC: ornith:latest (RTX 3070)
|
|
4. Deploy engine: tar+scp+pct push+pct exec restart
|
|
5. Check Obsidian before any infra change: ~/ai brain/ai brain/
|
|
|
|
## Dashboards
|
|
- NOC (fleet): http://localhost:5090
|
|
- Admin (pipeline): http://localhost:5106
|
|
- Kalshi (trading): http://localhost:5053/fleet
|
|
|
|
## 8 Sites
|
|
| # | CT | IP | Vertical | Health |
|
|
|---|----|----|----------|--------|
|
|
| 1 | 135 | .240 | AI | /health |
|
|
| 2 | 136 | .241 | Tech | /health |
|
|
| 3 | 137 | .242 | Science | ARP issue |
|
|
| 4 | 138 | .243 | Crypto | ARP issue |
|
|
| 5 | 139 | .244 | Linux | /health |
|
|
| 6 | 140 | .246 | Gaming | /health |
|
|
| 7 | 141 | .247 | DIY | /health |
|
|
| 8 | 142 | .248 | Guides | /health |
|
|
|
|
.242/.243 need periodic `sudo arp -d <ip>` — another device responds to ARP first.
|
|
|
|
## Quick Commands
|
|
Deploy engine update to all CTs:
|
|
```
|
|
cd ~/auto-publisher/sites/_engine && tar czf /tmp/e.tar.gz app.py
|
|
scp /tmp/e.tar.gz root@10.30.20.85:/tmp/
|
|
for vmid in 135 136 137 138 139 140 141 142; do
|
|
ssh root@10.30.20.85 "pct push $vmid /tmp/e.tar.gz /tmp/e.tar.gz && pct exec $vmid -- bash -c 'cd /opt/publisher && tar xzf /tmp/e.tar.gz && systemctl restart publisher'"
|
|
done
|
|
```
|
|
|
|
Pipeline:
|
|
```
|
|
/usr/bin/python3 ~/auto-publisher/core/orchestrator.py discover
|
|
/usr/bin/python3 ~/auto-publisher/core/orchestrator.py run --max 3
|
|
/usr/bin/python3 ~/auto-publisher/core/orchestrator.py status
|
|
```
|
|
|
|
Speed bot:
|
|
```
|
|
cd ~/kalshi-bot && .venv/bin/python3 speed_bot.py --coin DOGE --dry
|
|
```
|
|
|
|
NOC restart:
|
|
```
|
|
pkill -f noc.py; /usr/bin/python3 ~/auto-publisher/dashboard/noc.py --port 5090
|
|
```
|
|
|
|
ARP fix:
|
|
```
|
|
sudo -S -p '' arp -d 10.30.20.242; sudo -S -p '' arp -d 10.30.20.243
|
|
```
|
|
|
|
## Key Files
|
|
- Engine: ~/auto-publisher/sites/_engine/app.py
|
|
- Orchestrator: ~/auto-publisher/core/orchestrator.py
|
|
- NOC: ~/auto-publisher/dashboard/noc.py
|
|
- Speed bot: ~/kalshi-bot/speed_bot.py
|
|
- Evolution log: ~/auto-publisher/core/evolution_log.json
|
|
- Gitea main: http://10.30.20.149:3000/drjones/auto-publisher
|
|
- Gitea per-site: http://10.30.20.149:3000/drjones/{name}-publisher
|
|
|
|
## Credit Plugins
|
|
- Kalshi: Auth via RSA-PSS-SHA256, key ~/kalshi-bot/kalshi_private_key.pem
|
|
- Gitea: Basic auth drjones:czapiewski
|
|
- Proxmox: root/Czapiewski1! via SSH
|
|
|
|
## Pitfalls
|
|
- Ollama saturated by Kalshi bots — throttle before pipeline
|
|
- MLX needs think:false or generates slow chain-of-thought
|
|
- System Python 3.9 lacks requests — install with --break-system-packages
|
|
- Python 3.9 doesn't support `str | None` syntax — use Optional[str]
|
|
- CT 137/138 ARP conflicts — flush before accessing
|
|
- Evolution cron b48fc30f84b7 paused — too complex for unattended
|
|
- WebSocket auth for Kalshi still WIP (401/403)
|