204 lines
3.6 KiB
Markdown
204 lines
3.6 KiB
Markdown
# 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.
|
||
|