254 lines
4.6 KiB
Markdown
254 lines
4.6 KiB
Markdown
# Complete Setup Guide
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# 1. Configure
|
|
cp backend/.env.example backend/.env
|
|
# Edit backend/.env with your email settings
|
|
|
|
# 2. Start (with GPU auto-detection)
|
|
./start-with-gpu.sh
|
|
|
|
# 3. Wait for model download (first time, ~2-5 min)
|
|
docker-compose logs -f ollama-setup
|
|
```
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
- Docker & Docker Compose
|
|
- 4GB+ RAM
|
|
- (Optional) NVIDIA GPU for 5-10x faster AI
|
|
|
|
---
|
|
|
|
## Configuration
|
|
|
|
### Environment File
|
|
|
|
Edit `backend/.env`:
|
|
|
|
```env
|
|
# Email (Required)
|
|
SMTP_SERVER=smtp.gmail.com
|
|
SMTP_PORT=587
|
|
EMAIL_USER=your-email@gmail.com
|
|
EMAIL_PASSWORD=your-app-password
|
|
|
|
# MongoDB (Docker service name)
|
|
MONGODB_URI=mongodb://admin:changeme@mongodb:27017/
|
|
|
|
# Ollama AI (Internal Docker network)
|
|
OLLAMA_ENABLED=true
|
|
OLLAMA_BASE_URL=http://ollama:11434
|
|
OLLAMA_MODEL=phi3:latest
|
|
```
|
|
|
|
---
|
|
|
|
## Ollama Setup
|
|
|
|
### Integrated Docker Compose (Recommended)
|
|
|
|
Ollama runs automatically with Docker Compose:
|
|
- Automatic model download (phi3:latest, 2.2GB)
|
|
- Internal-only access (secure)
|
|
- Persistent storage
|
|
- GPU support available
|
|
|
|
**Start:**
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
**Verify:**
|
|
```bash
|
|
docker-compose exec ollama ollama list
|
|
# Should show: phi3:latest
|
|
```
|
|
|
|
---
|
|
|
|
## GPU Acceleration (5-10x Faster)
|
|
|
|
### Check GPU Availability
|
|
|
|
```bash
|
|
./check-gpu.sh
|
|
```
|
|
|
|
### Start with GPU
|
|
|
|
```bash
|
|
# Auto-detect and start
|
|
./start-with-gpu.sh
|
|
|
|
# Or manually
|
|
docker-compose -f docker-compose.yml -f docker-compose.gpu.yml up -d
|
|
```
|
|
|
|
### Verify GPU Usage
|
|
|
|
```bash
|
|
# Check GPU
|
|
docker exec munich-news-ollama nvidia-smi
|
|
|
|
# Monitor during processing
|
|
watch -n 1 'docker exec munich-news-ollama nvidia-smi'
|
|
```
|
|
|
|
### Performance
|
|
|
|
| Operation | CPU | GPU | Speedup |
|
|
|-----------|-----|-----|---------|
|
|
| Translation | 1.5s | 0.3s | 5x |
|
|
| Summary | 8s | 2s | 4x |
|
|
| 10 Articles | 115s | 31s | 3.7x |
|
|
|
|
### GPU Requirements
|
|
|
|
- NVIDIA GPU (GTX 1060 or newer)
|
|
- 4GB+ VRAM for phi3:latest
|
|
- NVIDIA drivers (525.60.13+)
|
|
- NVIDIA Container Toolkit
|
|
|
|
**Install NVIDIA Container Toolkit (Ubuntu/Debian):**
|
|
```bash
|
|
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
|
|
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
|
|
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
|
|
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
|
|
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
|
|
|
|
sudo apt-get update
|
|
sudo apt-get install -y nvidia-container-toolkit
|
|
sudo nvidia-ctk runtime configure --runtime=docker
|
|
sudo systemctl restart docker
|
|
```
|
|
|
|
---
|
|
|
|
## Production Deployment
|
|
|
|
### Security Checklist
|
|
|
|
- [ ] Change MongoDB password
|
|
- [ ] Use strong email password
|
|
- [ ] Bind backend to localhost only: `127.0.0.1:5001:5001`
|
|
- [ ] Set up reverse proxy (nginx/Traefik)
|
|
- [ ] Enable HTTPS
|
|
- [ ] Set up firewall rules
|
|
- [ ] Regular backups
|
|
- [ ] Monitor logs
|
|
|
|
### Reverse Proxy (nginx)
|
|
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name your-domain.com;
|
|
|
|
location / {
|
|
proxy_pass http://localhost:5001;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
}
|
|
}
|
|
```
|
|
|
|
### Environment Variables
|
|
|
|
For production, use environment variables instead of .env:
|
|
|
|
```bash
|
|
export MONGODB_URI="mongodb://user:pass@mongodb:27017/"
|
|
export SMTP_SERVER="smtp.gmail.com"
|
|
export EMAIL_PASSWORD="secure-password"
|
|
```
|
|
|
|
### Monitoring
|
|
|
|
```bash
|
|
# Check service health
|
|
docker-compose ps
|
|
|
|
# View logs
|
|
docker-compose logs -f
|
|
|
|
# Check resource usage
|
|
docker stats
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Ollama Issues
|
|
|
|
**Model not downloading:**
|
|
```bash
|
|
docker-compose logs ollama-setup
|
|
docker-compose exec ollama ollama pull phi3:latest
|
|
```
|
|
|
|
**Out of memory:**
|
|
- Use smaller model: `OLLAMA_MODEL=gemma2:2b`
|
|
- Increase Docker memory limit
|
|
|
|
### GPU Issues
|
|
|
|
**GPU not detected:**
|
|
```bash
|
|
nvidia-smi # Check drivers
|
|
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi # Check Docker
|
|
```
|
|
|
|
**Out of VRAM:**
|
|
- Use smaller model
|
|
- Close other GPU applications
|
|
|
|
### MongoDB Issues
|
|
|
|
**Connection refused:**
|
|
- Check service is running: `docker-compose ps`
|
|
- Verify URI uses `mongodb` not `localhost`
|
|
|
|
### Email Issues
|
|
|
|
**Authentication failed:**
|
|
- Use app-specific password (Gmail)
|
|
- Check SMTP settings
|
|
- Verify credentials
|
|
|
|
---
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
# Test Ollama
|
|
./test-ollama-setup.sh
|
|
|
|
# Test MongoDB
|
|
./test-mongodb-connectivity.sh
|
|
|
|
# Test newsletter
|
|
./test-newsletter-api.sh
|
|
|
|
# Test crawl
|
|
docker-compose exec crawler python crawler_service.py 2
|
|
```
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
1. Add RSS feeds (see QUICKSTART.md)
|
|
2. Add subscribers
|
|
3. Test newsletter sending
|
|
4. Set up monitoring
|
|
5. Configure backups
|
|
|
|
See [API.md](API.md) for API reference.
|