3.6 KiB
3.6 KiB
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)
- Environment dosyası oluştur (opsiyonel):
cp backend/.env.example backend/.env
# backend/.env dosyasını düzenle
- Docker Compose ile başlat:
docker-compose up -d
- Logları izle:
docker-compose logs -f
- Durdur:
docker-compose down
Docker ile (Manuel)
- Image'ı build et:
docker build -t oltalama:latest .
- Container'ı çalıştır:
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:
# Container içine gir
docker exec -it oltalama sh
# Admin kullanıcı oluştur
node scripts/create-admin.js
Veya container dışından:
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:
docker ps
# HEALTHY durumunu göreceksiniz
Loglar
Logları görüntülemek için:
# Docker Compose
docker-compose logs -f
# Docker
docker logs -f oltalama
Database Backup
Database'i yedeklemek için:
# Container içindeki database'i kopyala
docker cp oltalama:/app/database/oltalama.db ./backup-$(date +%Y%m%d).db
Troubleshooting
Container başlamıyor
- Logları kontrol edin:
docker logs oltalama
- Port'un kullanılabilir olduğundan emin olun:
netstat -tuln | grep 3000
Database hatası
- Database volume'ünün yazılabilir olduğundan emin olun:
chmod -R 777 ./data/database
- Container'ı yeniden başlatın:
docker-compose restart
Frontend görünmüyor
- Frontend build'inin doğru yapıldığından emin olun:
docker exec oltalama ls -la /app/src/public/dist
- Container'ı yeniden build edin:
docker-compose build --no-cache
docker-compose up -d
Production Deployment
Production için:
- Güvenli SESSION_SECRET kullanın:
export SESSION_SECRET=$(openssl rand -hex 64)
-
HTTPS için reverse proxy kullanın (Nginx, Traefik, vb.)
-
Resource limitleri ayarlayın:
# docker-compose.yml'e ekleyin
deploy:
resources:
limits:
cpus: '1'
memory: 512M
- Düzenli backup alın
Güncelleme
Uygulamayı güncellemek için:
# 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.