56 lines
1.8 KiB
YAML
56 lines
1.8 KiB
YAML
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
|
||
|