Files
balikci/DOCKER.md
salvacybersec 9062a8d7e0 docker again
2025-11-11 07:31:43 +03:00

204 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Docker Deployment Guide
Bu dokümantasyon, Oltalama uygulamasını Docker ile tek container'da çalıştırma rehberidir.
## Gereksinimler
- Docker 20.10+
- Docker Compose 2.0+ (opsiyonel)
## Hızlı Başlangıç
### Docker Compose ile (Önerilen)
1. **Environment dosyası oluştur** (opsiyonel):
```bash
cp backend/.env.example backend/.env
# backend/.env dosyasını düzenle
```
2. **Docker Compose ile başlat**:
```bash
docker-compose up -d
```
3. **Logları izle**:
```bash
docker-compose logs -f
```
4. **Durdur**:
```bash
docker-compose down
```
### Docker ile (Manuel)
1. **Image'ı build et**:
```bash
docker build -t oltalama:latest .
```
2. **Container'ı çalıştır**:
```bash
docker run -d \
--name oltalama \
-p 3000:3000 \
-v $(pwd)/data/database:/app/database \
-v $(pwd)/data/logs:/app/logs \
-e NODE_ENV=production \
-e SESSION_SECRET=$(openssl rand -hex 32) \
-e FRONTEND_URL=http://localhost:3000 \
oltalama:latest
```
## Environment Variables
Aşağıdaki environment variable'ları ayarlayabilirsiniz:
- `NODE_ENV`: Ortam (production/development)
- `PORT`: Server portu (varsayılan: 3000)
- `DB_PATH`: Database dosya yolu (varsayılan: /app/database/oltalama.db)
- `SESSION_SECRET`: Session secret key (üretmek için: `openssl rand -hex 32`)
- `FRONTEND_URL`: Frontend URL'i (CORS için)
Daha fazla environment variable için `backend/.env.example` dosyasına bakın.
## Veri Kalıcılığı
Database ve log dosyaları volume'lerde saklanır:
- `./data/database`: SQLite database dosyaları
- `./data/logs`: Uygulama logları
İlk çalıştırmada bu dizinler otomatik oluşturulur.
## Admin Kullanıcı Oluşturma
İlk kurulumda admin kullanıcı oluşturmak için:
```bash
# Container içine gir
docker exec -it oltalama sh
# Admin kullanıcı oluştur
node scripts/create-admin.js
```
Veya container dışından:
```bash
docker exec -it oltalama node scripts/create-admin.js
```
## Health Check
Container health check endpoint'i: `http://localhost:3000/health`
Health check durumunu kontrol etmek için:
```bash
docker ps
# HEALTHY durumunu göreceksiniz
```
## Loglar
Logları görüntülemek için:
```bash
# Docker Compose
docker-compose logs -f
# Docker
docker logs -f oltalama
```
## Database Backup
Database'i yedeklemek için:
```bash
# Container içindeki database'i kopyala
docker cp oltalama:/app/database/oltalama.db ./backup-$(date +%Y%m%d).db
```
## Troubleshooting
### Container başlamıyor
1. Logları kontrol edin:
```bash
docker logs oltalama
```
2. Port'un kullanılabilir olduğundan emin olun:
```bash
netstat -tuln | grep 3000
```
### Database hatası
1. Database volume'ünün yazılabilir olduğundan emin olun:
```bash
chmod -R 777 ./data/database
```
2. Container'ı yeniden başlatın:
```bash
docker-compose restart
```
### Frontend görünmüyor
1. Frontend build'inin doğru yapıldığından emin olun:
```bash
docker exec oltalama ls -la /app/src/public/dist
```
2. Container'ı yeniden build edin:
```bash
docker-compose build --no-cache
docker-compose up -d
```
## Production Deployment
Production için:
1. **Güvenli SESSION_SECRET kullanın**:
```bash
export SESSION_SECRET=$(openssl rand -hex 64)
```
2. **HTTPS için reverse proxy kullanın** (Nginx, Traefik, vb.)
3. **Resource limitleri ayarlayın**:
```yaml
# docker-compose.yml'e ekleyin
deploy:
resources:
limits:
cpus: '1'
memory: 512M
```
4. **Düzenli backup alın**
## Güncelleme
Uygulamayı güncellemek için:
```bash
# Yeni image'ı build et
docker-compose build
# Container'ı yeniden başlat
docker-compose up -d
```
## Sorun Bildirimi
Sorun yaşarsanız, lütfen GitHub Issues'da bildirin.