KurulumDocker Compose

Docker Compose ile kurulum

Bekci'yi /opt/bekci klasöründe bir docker-compose.yml dosyasıyla kurun. SQLite ya da harici PostgreSQL; güncelleme tek komut.

Bu sayfada

Docker Compose ile tüm ayarlar tek bir dosyada (docker-compose.yml) durur. Başlatmak, durdurmak ve güncellemek tek komuttur; ayarı değiştirmek için dosyayı düzenleyip yeniden başlatmanız yeterlidir. Toplam süre: yaklaşık 5 dakika.

Bu rehberdeki kurulum paneli http://SUNUCU-IP:8080 adresinde açar. Alan adınızla HTTPS istiyorsanız doğrudan HTTPS'li kurulum (Caddy) rehberine geçin; o rehber de Compose kullanır.

1. Docker ve Compose'u doğrulayın#

terminal
docker compose version

2. Bir klasör oluşturun#

Bekci'nin dosyaları için /opt/bekci klasörünü kullanacağız. Başka bir yer de seçebilirsiniz; önemli olan, sonraki tüm docker compose komutlarını bu klasörün içindeyken çalıştırmanızdır.

terminal
mkdir -p /opt/bekci
cd /opt/bekci

3. docker-compose.yml dosyasını oluşturun#

Veritabanı seçiminizi yapın. Kararsızsanız SQLite seçin: ek servis gerektirmez ve en hafif seçenektir (hangi veritabanı?).

Dosyayı nano metin düzenleyicisiyle oluşturun:

terminal
nano docker-compose.yml

Aşağıdaki içeriği kopyalayıp nano penceresine yapıştırın (çoğu terminalde sağ tık ya da Ctrl+Shift+V):

SQLite (önerilen)

/opt/bekci/docker-compose.ymlİndir
# Bekci — Docker Compose ile kurulum (SQLite)
# Rehber: https://bekci.app/docs/kurulum/docker-compose/
name: bekci
services:
  bekci:
    # Sürümü sabitlemek için "latest" yerine ör. 1.0.0 yazın.
    # Gömülü PostgreSQL için: kadirsungurlu/bekci:postgres
    image: kadirsungurlu/bekci:latest
    restart: unless-stopped
    stop_grace_period: 30s
    ports:
      - "8080:8080"
    environment:
      BASE_URL: http://203.0.113.10:8080   # panelin dışarıdan açıldığı adres
      TZ: Europe/Istanbul
    volumes:
      - bekci-data:/data
volumes:
  bekci-data:

Değiştirmeniz gereken tek yer vurgulu olan: 203.0.113.10 yerine sunucunuzun IP adresini yazın.

Harici PostgreSQL

Bu dosya Bekci'nin yanında bir PostgreSQL 18 konteyneri de başlatır. Kendi PostgreSQL sunucunuzu kullanacaksanız db servisini silin ve DATABASE_URL'i o sunucunun adresiyle yazın.

/opt/bekci/docker-compose.ymlİndir
# Bekci — Docker Compose ile kurulum (harici PostgreSQL)
# Rehber: https://bekci.app/docs/kurulum/docker-compose/
# Parolayı İKİ yerde de aynı şekilde değiştirin (DATABASE_URL ve POSTGRES_PASSWORD).
name: bekci
services:
  bekci:
    image: kadirsungurlu/bekci:latest
    restart: unless-stopped
    stop_grace_period: 30s
    ports:
      - "8080:8080"
    environment:
      BASE_URL: http://203.0.113.10:8080   # panelin dışarıdan açıldığı adres
      TZ: Europe/Istanbul
      DATABASE_URL: postgres://bekci:GUCLU-BIR-PAROLA@db:5432/bekci?sslmode=disable
    volumes:
      - bekci-data:/data   # yedekler ve geçici dosyalar
    depends_on:
      db:
        condition: service_healthy
  db:
    image: postgres:18-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: bekci
      POSTGRES_PASSWORD: GUCLU-BIR-PAROLA
      POSTGRES_DB: bekci
    volumes:
      - db-data:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U bekci -d bekci"]
      interval: 5s
      retries: 10
volumes:
  bekci-data:
  db-data:

Vurgulu yerleri değiştirin: sunucunuzun IP adresi ve iki yerde aynı güçlü bir parola. Parolada yalnızca harf ve rakam kullanın (ör. 24 karakterlik rastgele bir dizi); @, :, /, ?, # gibi karakterler bağlantı adresini bozar.

Kaydedip çıkın: Ctrl+O, ardından Enter (kaydet), sonra Ctrl+X (çık).

4. Başlatın#

terminal
docker compose up -d

İlk seferde imaj Docker Hub'dan indirilir (birkaç saniye ile bir dakika arası).

5. Paneli açın#

Tarayıcıda http://SUNUCU-IP:8080 adresini açın, Hoş geldiniz ekranında yönetici hesabınızı oluşturun (ayrıntılar). Açılmıyorsa sağlayıcınızın güvenlik duvarında 8080/TCP portuna izin verin (güvenlik duvarı notu).

Günlükler#

terminal
cd /opt/bekci
docker compose logs -f bekci      # canlı izle, çıkmak için Ctrl+C
docker compose logs --tail 50 bekci

Güncelleme#

terminal
cd /opt/bekci
docker compose pull
docker compose up -d

pull yeni imajı indirir, up -d konteyneri yeni imajla yeniden oluşturur; verileriniz birimde kalır. Güncellemeden önce yedek alın ve sürüm sabitlemeyi öğrenin: Güncelleme, yedek ve geri dönüş.

Ayarı değiştirmek#

docker-compose.yml dosyasında bir şeyi (ör. BASE_URL) değiştirdikten sonra:

terminal
docker compose up -d

Compose değişikliği fark eder ve konteyneri yeni ayarla yeniden oluşturur.

Durdurma ve kaldırma#

terminal
docker compose stop     # durdur (konteyner kalır)
docker compose start    # yeniden başlat
docker compose down     # konteyneri kaldır; veriler birimde kalır

Verileriniz bekci_bekci-data adlı birimde durur (Compose, birim adının başına proje adını ekler). Birimleri docker volume ls ile görebilirsiniz.