Files
balikci/docker-compose.single.yml

56 lines
1.8 KiB
YAML
Raw Normal View History

services:
oltalama:
build:
context: .
dockerfile: Dockerfile
container_name: oltalama
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- PORT=3000
- SESSION_SECRET=${SESSION_SECRET:-} # Boşsa otomatik oluşturulur
- AUTO_SEED=${AUTO_SEED:-false} # true yaparsanız örnek data eklenir
# Gmail ayarları (ZORUNLU - .env'den veya buradan)
- GMAIL_USER=${GMAIL_USER:-}
- GMAIL_APP_PASSWORD=${GMAIL_APP_PASSWORD:-}
# Telegram ayarları (ZORUNLU - .env'den veya buradan)
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-}
# Ollama ayarları (Opsiyonel)
- OLLAMA_SERVER_URL=${OLLAMA_SERVER_URL:-http://host.docker.internal:11434}
- OLLAMA_MODEL=${OLLAMA_MODEL:-llama3.2:latest}
# Domain ayarları (Opsiyonel)
- DOMAIN_URL=${DOMAIN_URL:-}
- FRONTEND_URL=${FRONTEND_URL:-}
volumes:
# Database persistence
- oltalama-db:/app/backend/database
# Logs persistence
- oltalama-logs:/app/backend/logs
# .env file (optional bind mount - host'tan container'a)
# Eğer host'ta .env yoksa, entrypoint script container içinde oluşturur
# NOT: Host'ta .env dosyası yoksa, Docker onu dizin olarak oluşturabilir
# Entrypoint script bunu otomatik düzeltir
- ./backend/.env:/app/backend/.env:rw
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
interval: 30s
timeout: 3s
retries: 3
start_period: 40s
networks:
- oltalama-network
volumes:
oltalama-db:
driver: local
oltalama-logs:
driver: local
networks:
oltalama-network:
driver: bridge