Add deployment files with environment configurations
This commit is contained in:
221
DEPLOYMENT_INSTRUCTIONS.md
Normal file
221
DEPLOYMENT_INSTRUCTIONS.md
Normal file
@ -0,0 +1,221 @@
|
||||
# 🚀 Deployment Instructions für pounce.ch
|
||||
|
||||
## Server Setup
|
||||
|
||||
### 1. Code auf den Server pullen
|
||||
```bash
|
||||
cd /path/to/server
|
||||
git clone https://git.6bit.ch/yvg/pounce.git
|
||||
cd pounce
|
||||
```
|
||||
|
||||
### 2. Environment Dateien einrichten
|
||||
|
||||
#### Backend (.env)
|
||||
```bash
|
||||
# Kopiere DEPLOY_backend.env nach backend/.env
|
||||
cp DEPLOY_backend.env backend/.env
|
||||
```
|
||||
|
||||
**Wichtige Anpassungen für Production:**
|
||||
- `DATABASE_URL`: Wenn du PostgreSQL verwendest, passe die Connection-String an
|
||||
- `CORS_ORIGINS`: Stelle sicher, dass deine Domain(s) enthalten sind
|
||||
- `ENVIRONMENT=production`
|
||||
- `DEBUG=false`
|
||||
|
||||
#### Frontend (.env.local)
|
||||
```bash
|
||||
# Kopiere DEPLOY_frontend.env nach frontend/.env.local
|
||||
cp DEPLOY_frontend.env frontend/.env.local
|
||||
```
|
||||
|
||||
**Wichtig:** `NEXT_PUBLIC_API_URL` muss auf deine Backend-URL zeigen (z.B. `https://pounce.ch/api/v1`)
|
||||
|
||||
### 3. Backend Setup
|
||||
```bash
|
||||
cd backend
|
||||
|
||||
# Python Virtual Environment erstellen
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
|
||||
# Dependencies installieren
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Datenbank initialisieren
|
||||
python init_db.py
|
||||
|
||||
# TLD Preise seeden
|
||||
python seed_tld_prices.py
|
||||
|
||||
# Auctions seeden (optional für Demo-Daten)
|
||||
python seed_auctions.py
|
||||
|
||||
# Stripe Produkte erstellen
|
||||
python -c "
|
||||
from app.services.stripe_service import create_stripe_products
|
||||
import asyncio
|
||||
asyncio.run(create_stripe_products())
|
||||
"
|
||||
```
|
||||
|
||||
### 4. Frontend Setup
|
||||
```bash
|
||||
cd ../frontend
|
||||
|
||||
# Node.js Dependencies installieren
|
||||
npm install
|
||||
|
||||
# Production Build
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 5. Server starten
|
||||
|
||||
#### Option A: Mit PM2 (empfohlen)
|
||||
```bash
|
||||
# Backend
|
||||
pm2 start backend/ecosystem.config.js
|
||||
|
||||
# Frontend
|
||||
pm2 start frontend/ecosystem.config.js
|
||||
|
||||
# Prozesse speichern
|
||||
pm2 save
|
||||
pm2 startup
|
||||
```
|
||||
|
||||
#### Option B: Mit systemd
|
||||
Siehe `deploy.sh` Skript für systemd Service-Konfiguration.
|
||||
|
||||
#### Option C: Docker
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 6. Nginx Reverse Proxy (empfohlen)
|
||||
|
||||
```nginx
|
||||
# /etc/nginx/sites-available/pounce.ch
|
||||
|
||||
upstream backend {
|
||||
server 127.0.0.1:8000;
|
||||
}
|
||||
|
||||
upstream frontend {
|
||||
server 127.0.0.1:3000;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name pounce.ch www.pounce.ch;
|
||||
|
||||
# Redirect HTTP to HTTPS
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name pounce.ch www.pounce.ch;
|
||||
|
||||
# SSL Certificates (Let's Encrypt)
|
||||
ssl_certificate /etc/letsencrypt/live/pounce.ch/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/pounce.ch/privkey.pem;
|
||||
|
||||
# Backend API
|
||||
location /api/ {
|
||||
proxy_pass http://backend;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
|
||||
# Frontend
|
||||
location / {
|
||||
proxy_pass http://frontend;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 7. SSL Zertifikate (Let's Encrypt)
|
||||
```bash
|
||||
sudo certbot --nginx -d pounce.ch -d www.pounce.ch
|
||||
```
|
||||
|
||||
### 8. Cronjobs einrichten
|
||||
|
||||
Für automatische TLD-Preis-Updates und Domain-Checks:
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
|
||||
```cron
|
||||
# Täglich um 3:00 Uhr TLD Preise aktualisieren
|
||||
0 3 * * * cd /path/to/pounce/backend && source venv/bin/activate && python -c "from app.services.tld_scraper import scrape_all_tlds; import asyncio; asyncio.run(scrape_all_tlds())"
|
||||
|
||||
# Stündlich Auctions scrapen
|
||||
0 * * * * cd /path/to/pounce/backend && source venv/bin/activate && python -c "from app.services.auction_scraper import auction_scraper; from app.database import AsyncSessionLocal; import asyncio; async def run(): async with AsyncSessionLocal() as db: await auction_scraper.scrape_all_platforms(db); asyncio.run(run())"
|
||||
```
|
||||
|
||||
**Hinweis:** Die Domain-Checks laufen automatisch über den internen Scheduler (APScheduler), keine Cronjobs nötig!
|
||||
|
||||
## Wichtige Checks nach Deployment
|
||||
|
||||
1. ✅ Backend läuft: `curl https://pounce.ch/api/v1/health`
|
||||
2. ✅ Frontend läuft: Browser öffnen zu `https://pounce.ch`
|
||||
3. ✅ Datenbank funktioniert: Login/Register testen
|
||||
4. ✅ Email-Versand funktioniert: Password Reset testen
|
||||
5. ✅ Stripe funktioniert: Checkout Flow testen
|
||||
6. ✅ OAuth funktioniert: Google/GitHub Login testen
|
||||
|
||||
## Monitoring
|
||||
|
||||
```bash
|
||||
# PM2 Logs ansehen
|
||||
pm2 logs
|
||||
|
||||
# PM2 Status
|
||||
pm2 status
|
||||
|
||||
# PM2 Restart (bei Problemen)
|
||||
pm2 restart all
|
||||
```
|
||||
|
||||
## Backup
|
||||
|
||||
```bash
|
||||
# Datenbank Backup (SQLite)
|
||||
cp backend/domainwatch.db backend/domainwatch.db.backup.$(date +%Y%m%d)
|
||||
|
||||
# Oder mit PostgreSQL
|
||||
pg_dump pounce > pounce_backup_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
Bei Fragen oder Problemen:
|
||||
- Email: hello@pounce.ch
|
||||
- GitHub Issues: https://git.6bit.ch/yvg/pounce
|
||||
|
||||
---
|
||||
|
||||
**Neue Preise (aktualisiert):**
|
||||
- Scout: Free
|
||||
- Trader: $9/mo
|
||||
- Tycoon: $29/mo
|
||||
|
||||
**Währung:** USD (aktualisiert)
|
||||
|
||||
Reference in New Issue
Block a user