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

3.6 KiB
Raw Permalink Blame History

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):
cp backend/.env.example backend/.env
# backend/.env dosyasını düzenle
  1. Docker Compose ile başlat:
docker-compose up -d
  1. Logları izle:
docker-compose logs -f
  1. Durdur:
docker-compose down

Docker ile (Manuel)

  1. Image'ı build et:
docker build -t oltalama:latest .
  1. 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

  1. Logları kontrol edin:
docker logs oltalama
  1. Port'un kullanılabilir olduğundan emin olun:
netstat -tuln | grep 3000

Database hatası

  1. Database volume'ünün yazılabilir olduğundan emin olun:
chmod -R 777 ./data/database
  1. Container'ı yeniden başlatın:
docker-compose restart

Frontend görünmüyor

  1. Frontend build'inin doğru yapıldığından emin olun:
docker exec oltalama ls -la /app/src/public/dist
  1. Container'ı yeniden build edin:
docker-compose build --no-cache
docker-compose up -d

Production Deployment

Production için:

  1. Güvenli SESSION_SECRET kullanın:
export SESSION_SECRET=$(openssl rand -hex 64)
  1. HTTPS için reverse proxy kullanın (Nginx, Traefik, vb.)

  2. Resource limitleri ayarlayın:

# docker-compose.yml'e ekleyin
deploy:
  resources:
    limits:
      cpus: '1'
      memory: 512M
  1. 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.