# Bekci + Caddy: otomatik HTTPS ile kurulum (Let's Encrypt). # Adım adım rehber: https://bekci.app/docs/kurulum/caddy/ # # Bu dosyayı değiştirmeniz gerekmez: alan adı, e-posta ve sürüm .env # dosyasından okunur. Üç dosya aynı klasörde durur (ör. /opt/bekci): # docker-compose.yml bu dosya # Caddyfile Caddy ayarı # .env alan adınız ve e-postanız # # Başlatma: docker compose up -d # Günlükler: docker compose logs -f bekci (Caddy için: caddy) # Güncelleme: docker compose pull && docker compose up -d # Yedek, sürüm sabitleme, geri dönüş: https://bekci.app/docs/guncelleme-yedek/ name: bekci services: bekci: # UPTIME_TAG: latest (SQLite, önerilen) | postgres (gömülü PostgreSQL) # ya da sabit bir sürüm: 1.0.0 / 1.0.0-postgres. İki türün verisi # birbirine taşınmaz: baştan birini seçin. image: kadirsungurlu/bekci:${UPTIME_TAG:-latest} restart: unless-stopped # Kapanışta uygulama (ve gömülü PostgreSQL) düzgünce kapansın. stop_grace_period: 30s environment: BASE_URL: https://${UPTIME_DOMAIN:?UPTIME_DOMAIN .env dosyasında tanımlı olmalı} TZ: ${TZ:-Europe/Istanbul} LOG_LEVEL: ${LOG_LEVEL:-info} MAX_CONCURRENT_CHECKS: ${MAX_CONCURRENT_CHECKS:-50} volumes: - bekci-data:/data # Dışarıya doğrudan açılmaz; yalnızca Caddy üzerinden erişilir. expose: - "8080" logging: driver: json-file options: max-size: 10m max-file: "3" caddy: # caddy:2-alpine (digest ile sabit) image: caddy:2-alpine@sha256:6aeddd44c3078b0f9a35206472a11420648a79c184603ef95957d0a20044cb2b restart: unless-stopped depends_on: bekci: condition: service_healthy ports: - "80:80" - "443:443" - "443:443/udp" # HTTP/3 environment: UPTIME_DOMAIN: ${UPTIME_DOMAIN} ACME_EMAIL: ${ACME_EMAIL:?ACME_EMAIL .env dosyasında tanımlı olmalı} STATUS_DOMAIN: ${STATUS_DOMAIN:-} volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy-data:/data - caddy-config:/config logging: driver: json-file options: max-size: 10m max-file: "3" volumes: bekci-data: caddy-data: caddy-config: