Add comprehensive deployment and automation FAQ
Answers user's questions: - What happens after deployment? (nothing automatic by default) - How to get reports? (3 options: email, SSH, future web UI) - Where are reports sent? (email or saved to ~/logs/) - Do you need to check IP? (depends on setup method) - Can we setup email reports? (YES! 5-minute setup) - Do we need CI/CD pipelines? (optional, but included) - Can we use existing Ansible pipeline? (concepts reused, not directly) This document ties everything together and provides clear next steps.
This commit is contained in:
parent
0d8d85adc1
commit
d8f723bafb
338
DEPLOYMENT_AND_AUTOMATION.md
Normal file
338
DEPLOYMENT_AND_AUTOMATION.md
Normal file
@ -0,0 +1,338 @@
|
||||
# POTE Deployment & Automation Guide
|
||||
|
||||
## 🎯 Quick Answer to Your Questions
|
||||
|
||||
### After Deployment, What Happens?
|
||||
|
||||
**By default: NOTHING automatic happens.** You need to set up automation.
|
||||
|
||||
The deployed system is:
|
||||
- ✅ Running (database, code installed)
|
||||
- ✅ Accessible via SSH at your Proxmox IP
|
||||
- ❌ NOT fetching data automatically
|
||||
- ❌ NOT sending reports automatically
|
||||
- ❌ NOT monitoring markets automatically
|
||||
|
||||
**You must either:**
|
||||
1. **Run scripts manually** when you want updates, OR
|
||||
2. **Set up automation** (5 minutes, see below)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Option 1: Automated Email Reports (Recommended)
|
||||
|
||||
### What You Get
|
||||
|
||||
- **Daily reports at 6 AM** (or your chosen time)
|
||||
- New congressional trades from yesterday
|
||||
- Market alerts (unusual activity)
|
||||
- Suspicious timing detections
|
||||
|
||||
- **Weekly reports on Sundays**
|
||||
- Most active officials & securities
|
||||
- Repeat offenders (consistent suspicious timing)
|
||||
- Pattern analysis
|
||||
|
||||
- **Sent to your email** (Gmail, SendGrid, or custom SMTP)
|
||||
|
||||
### 5-Minute Setup
|
||||
|
||||
SSH to your deployed POTE server:
|
||||
|
||||
```bash
|
||||
ssh poteapp@your-proxmox-ip
|
||||
cd ~/pote
|
||||
```
|
||||
|
||||
Run the interactive setup:
|
||||
|
||||
```bash
|
||||
./scripts/setup_cron.sh
|
||||
```
|
||||
|
||||
Follow prompts:
|
||||
1. Enter your email address
|
||||
2. Choose report time (default: 6 AM)
|
||||
3. Done! ✅
|
||||
|
||||
**See full guide:** [`AUTOMATION_QUICKSTART.md`](AUTOMATION_QUICKSTART.md)
|
||||
|
||||
---
|
||||
|
||||
## 📍 Option 2: Access Reports via IP (No Email)
|
||||
|
||||
If you don't want email, you can:
|
||||
|
||||
### SSH to Server and View Reports
|
||||
|
||||
```bash
|
||||
ssh poteapp@your-proxmox-ip
|
||||
cd ~/pote
|
||||
source venv/bin/activate
|
||||
|
||||
# Generate report to stdout
|
||||
python scripts/send_daily_report.py --to dummy@example.com --save-to-file /tmp/report.txt
|
||||
cat /tmp/report.txt
|
||||
```
|
||||
|
||||
### Access Saved Reports
|
||||
|
||||
If you set up automation (even without email), reports are saved to:
|
||||
|
||||
```bash
|
||||
# SSH to server
|
||||
ssh poteapp@your-proxmox-ip
|
||||
|
||||
# View reports
|
||||
ls -lh ~/logs/
|
||||
cat ~/logs/daily_report_$(date +%Y%m%d).txt
|
||||
cat ~/logs/weekly_report_$(date +%Y%m%d).txt
|
||||
```
|
||||
|
||||
### Run Scripts Manually via SSH
|
||||
|
||||
```bash
|
||||
ssh poteapp@your-proxmox-ip
|
||||
cd ~/pote
|
||||
source venv/bin/activate
|
||||
|
||||
# Fetch new data
|
||||
python scripts/fetch_congressional_trades.py
|
||||
python scripts/monitor_market.py --scan
|
||||
python scripts/analyze_disclosure_timing.py --recent 7
|
||||
|
||||
# View results in database
|
||||
python scripts/health_check.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Option 3: Build a Web Interface (Future)
|
||||
|
||||
Currently, POTE is **command-line only**. No web UI yet.
|
||||
|
||||
**To add a web interface, you would need to:**
|
||||
1. Build a FastAPI backend (expose read-only endpoints)
|
||||
2. Build a React/Streamlit frontend
|
||||
3. Access via `http://your-proxmox-ip:8000`
|
||||
|
||||
This is **not implemented yet**, but it's on the roadmap (Phase 3).
|
||||
|
||||
For now, use SSH or email reports.
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Do You Need CI/CD Pipelines?
|
||||
|
||||
### What the Pipeline Does
|
||||
|
||||
The included CI/CD pipeline (`.github/workflows/ci.yml`) runs on **every git push**:
|
||||
|
||||
1. ✅ Lint & test (93 tests)
|
||||
2. ✅ Security scanning
|
||||
3. ✅ Dependency scanning
|
||||
4. ✅ Docker build test
|
||||
|
||||
### Should You Use It?
|
||||
|
||||
**YES, if you:**
|
||||
- Are actively developing POTE
|
||||
- Want to catch bugs before deployment
|
||||
- Want automated testing on every commit
|
||||
- Use GitHub or Gitea for version control
|
||||
|
||||
**NO, if you:**
|
||||
- Just want to use POTE as-is
|
||||
- Don't plan to modify the code
|
||||
- Don't have a CI/CD runner set up
|
||||
|
||||
### How to Use the Pipeline
|
||||
|
||||
The pipeline is **GitHub Actions / Gitea Actions compatible**.
|
||||
|
||||
#### For GitHub:
|
||||
Push your code to GitHub. The workflow runs automatically.
|
||||
|
||||
#### For Gitea (Your Setup):
|
||||
1. Ensure Gitea Actions runner is installed
|
||||
2. Push to your Gitea repo
|
||||
3. Workflow runs automatically
|
||||
|
||||
#### For Local Testing:
|
||||
```bash
|
||||
# Run tests locally
|
||||
pytest tests/ -v
|
||||
|
||||
# Run linters
|
||||
ruff check src/ tests/
|
||||
black --check src/ tests/
|
||||
mypy src/
|
||||
|
||||
# Build Docker image
|
||||
docker build -t pote:test .
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Comparison of Options
|
||||
|
||||
| Method | Pros | Cons | Best For |
|
||||
|--------|------|------|----------|
|
||||
| **Automated Email** | ✅ Convenient<br>✅ No SSH needed<br>✅ Daily/weekly updates | ❌ Requires SMTP setup | Most users |
|
||||
| **SSH + Manual Scripts** | ✅ Full control<br>✅ No email needed | ❌ Manual work<br>❌ Must remember to run | Power users |
|
||||
| **Saved Reports (SSH access)** | ✅ Automated<br>✅ No email | ❌ Must SSH to view | Users without email |
|
||||
| **Web Interface** | ✅ User-friendly | ❌ Not implemented yet | Future |
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Your Ansible Pipeline
|
||||
|
||||
Your existing Ansible CI/CD pipeline is **NOT directly usable** for POTE because:
|
||||
|
||||
1. **Language mismatch**: Your pipeline is for Node.js/Ansible; POTE is Python
|
||||
2. **Different tooling**: POTE uses pytest, ruff, mypy (not npm, ansible-lint)
|
||||
3. **Different structure**: POTE uses different security scanners
|
||||
|
||||
### What You CAN Reuse
|
||||
|
||||
**Concepts from your pipeline that ARE used in POTE's CI/CD:**
|
||||
|
||||
- ✅ Security scanning (Trivy, Bandit instead of Gitleaks)
|
||||
- ✅ Dependency scanning (Trivy instead of npm audit)
|
||||
- ✅ SAST scanning (Bandit instead of Semgrep)
|
||||
- ✅ Container scanning (Docker build test)
|
||||
- ✅ Workflow summary generation
|
||||
|
||||
**The POTE pipeline (`.github/workflows/ci.yml`) already includes all of these!**
|
||||
|
||||
### If You Want to Integrate with Your Gitea
|
||||
|
||||
Your Gitea server can run the POTE pipeline using Gitea Actions:
|
||||
|
||||
1. Push POTE to your Gitea
|
||||
2. Gitea Actions will detect `.github/workflows/ci.yml`
|
||||
3. Workflow runs automatically (if runner is configured)
|
||||
|
||||
**No modifications needed** - it's already compatible!
|
||||
|
||||
---
|
||||
|
||||
## 📧 Email Setup Examples
|
||||
|
||||
### Gmail (Most Common)
|
||||
|
||||
In your deployed `.env` file:
|
||||
|
||||
```env
|
||||
SMTP_HOST=smtp.gmail.com
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=your-email@gmail.com
|
||||
SMTP_PASSWORD=your-16-char-app-password
|
||||
FROM_EMAIL=pote-reports@gmail.com
|
||||
REPORT_RECIPIENTS=your-email@example.com
|
||||
```
|
||||
|
||||
**Important**: Use an [App Password](https://myaccount.google.com/apppasswords), NOT your regular password!
|
||||
|
||||
### SendGrid
|
||||
|
||||
```env
|
||||
SMTP_HOST=smtp.sendgrid.net
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=apikey
|
||||
SMTP_PASSWORD=SG.your-api-key-here
|
||||
FROM_EMAIL=noreply@yourdomain.com
|
||||
REPORT_RECIPIENTS=admin@yourdomain.com
|
||||
```
|
||||
|
||||
### Custom Mail Server
|
||||
|
||||
```env
|
||||
SMTP_HOST=mail.yourdomain.com
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=username
|
||||
SMTP_PASSWORD=password
|
||||
FROM_EMAIL=pote@yourdomain.com
|
||||
REPORT_RECIPIENTS=admin@yourdomain.com
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Recommended Setup for Most Users
|
||||
|
||||
1. **Deploy to Proxmox** (5 min)
|
||||
```bash
|
||||
bash scripts/proxmox_setup.sh
|
||||
```
|
||||
|
||||
2. **Set up automated email reports** (5 min)
|
||||
```bash
|
||||
ssh poteapp@your-ip
|
||||
cd ~/pote
|
||||
./scripts/setup_cron.sh
|
||||
```
|
||||
|
||||
3. **Done!** You'll receive:
|
||||
- Daily reports at 6 AM
|
||||
- Weekly reports on Sundays
|
||||
- All reports also saved to `~/logs/`
|
||||
|
||||
4. **(Optional)** Set up CI/CD if you plan to develop:
|
||||
- Push to GitHub/Gitea
|
||||
- Pipeline runs automatically
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Monitoring & Health Checks
|
||||
|
||||
### Add System Health Monitoring
|
||||
|
||||
Edit crontab:
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
|
||||
Add health check (every 6 hours):
|
||||
|
||||
```cron
|
||||
0 */6 * * * /home/poteapp/pote/venv/bin/python /home/poteapp/pote/scripts/health_check.py >> /home/poteapp/logs/health.log 2>&1
|
||||
```
|
||||
|
||||
Check health anytime:
|
||||
|
||||
```bash
|
||||
ssh poteapp@your-ip
|
||||
cd ~/pote
|
||||
source venv/bin/activate
|
||||
python scripts/health_check.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Full Documentation
|
||||
|
||||
- **Automation Setup**: [`AUTOMATION_QUICKSTART.md`](AUTOMATION_QUICKSTART.md) ⭐
|
||||
- **Deployment**: [`PROXMOX_QUICKSTART.md`](PROXMOX_QUICKSTART.md) ⭐
|
||||
- **Usage**: [`QUICKSTART.md`](QUICKSTART.md) ⭐
|
||||
- **Detailed Automation Guide**: [`docs/12_automation_and_reporting.md`](docs/12_automation_and_reporting.md)
|
||||
- **Monitoring System**: [`MONITORING_SYSTEM_COMPLETE.md`](MONITORING_SYSTEM_COMPLETE.md)
|
||||
|
||||
---
|
||||
|
||||
## 🎉 Summary
|
||||
|
||||
**After deployment:**
|
||||
- Reports are NOT sent automatically by default
|
||||
- You must set up automation OR run scripts manually
|
||||
- **Recommended: 5-minute automation setup** with `./scripts/setup_cron.sh`
|
||||
- Reports can be emailed OR saved to `~/logs/` for SSH access
|
||||
- CI/CD pipeline is included and ready for GitHub/Gitea
|
||||
- Your Ansible pipeline is not directly usable, but concepts are already implemented
|
||||
|
||||
**Most users should:**
|
||||
1. Deploy to Proxmox
|
||||
2. Run `./scripts/setup_cron.sh`
|
||||
3. Receive daily/weekly email reports
|
||||
4. Done! 🚀
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user