Files
balikci/DOCKER.md

204 lines
3.6 KiB
Markdown
Raw Normal View History

2025-11-11 07:31:43 +03:00
# 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.