Güncelleme, yedek ve geri dönüş
Bekci'yi güvenle güncelleyin, sürümünü sabitleyin, otomatik yedekleri bulun, yedekleri sunucu dışına kopyalayın, geri yükleyin ve gerekirse eski sürüme dönün.
Bu sayfada
Sürüm etiketleri#
Bekci imajları Docker Hub'da kadirsungurlu/bekci adıyla (aynısı ghcr.io/kadirsungurlu/bekci adıyla GitHub Container Registry'de) amd64 ve arm64 için yayınlanır:
| Etiket | İçerik | Ne zaman |
|---|---|---|
latest | En yeni derleme (ana daldaki son hâl), SQLite | Her zaman en yenisini istiyorsanız |
postgres | En yeni derleme, gömülü PostgreSQL 18 | Gömülü PostgreSQL ile en yenisi |
1.0.0, 1.0 | Belirli bir sürüm, SQLite | Sürümü sabitlemek ve geri dönmek için (önerilen) |
1.0.0-postgres, 1.0-postgres | Belirli bir sürüm, gömülü PostgreSQL | Aynısı, PostgreSQL için |
2718268, postgres-2718268 | Belirli bir derleme (commit kısa kodu) | Günlükte gördüğünüz bir derlemeye dönmek için |
1.0 gibi iki parçalı etiketler o serinin en son yamasını izler (ör. 1.0.1 çıkınca 1.0 onu gösterir).
Güncellemeden önce#
- Yedek alın. Aşağıdaki tam yedek en güvenlisidir. SQLite kullanıyorsanız Bekci veritabanı yapısını değiştiren güncellemelerden önce kendisi de yedek alır (otomatik yedekler).
- Sürüm notlarına bakın: GitHub'daki sürümler.
Güncelleme#
Docker Compose
cd /opt/bekci
docker compose pull
docker compose up -dCaddy'li kurulumda da komutlar aynıdır.
docker run
docker pull kadirsungurlu/bekci:latest
docker stop bekci && docker rm bekciArdından konteyneri ilk kurulumdaki docker run komutuyla (aynı -v bekci-data:/data ve -e değerleriyle) yeniden başlatın (Docker rehberi).
Coolify
Uygulamanın sayfasında Redeploy (ya da Deploy) düğmesine basın. Sabit bir sürüm kullanıyorsanız önce etiketi yeni sürümle değiştirin (Coolify rehberi).
Sürümü sabitleme#
latest etiketi her pull komutunda en yeni sürümü getirir. Güncellemenin ne zaman yapılacağına siz karar vermek istiyorsanız belirli bir sürüm etiketi kullanın:
- Docker Compose:
docker-compose.ymldosyasındaimage: kadirsungurlu/bekci:latestsatırınıimage: kadirsungurlu/bekci:1.0.0yapın. - Caddy'li kurulum:
/opt/bekci/.envdosyasındaUPTIME_TAG=1.0.0yazın (gömülü PostgreSQL için1.0.0-postgres). - Coolify: Tag alanına
1.0.0yazın.
Yeni sürüme geçmek için etiketi değiştirip docker compose up -d çalıştırın (Coolify'da yeniden dağıtın).
Otomatik yedekler#
Bekci iki tür yedeği kendisi alır. İkisi de veri biriminin içinde, /data/backups/ klasöründedir.
| Yedek | Dosya adı | Ne zaman |
|---|---|---|
| Gece yedeği (SQLite) | uptime-2026-09-28.db | Günde bir kez, saat 03:00'ten (TZ saat dilimine göre) sonra; varsayılan olarak son 7 tanesi tutulur. Bekci 03:00'ten sonra başlatıldıysa o günün yedeği birkaç dakika içinde alınır |
| Gece yedeği (gömülü PostgreSQL) | uptime-2026-09-28.dump | Aynı şekilde, pg_dump biçiminde |
| Güncelleme öncesi yedek (SQLite) | pre-migrate-v16-to-v17-20260928-030000.db | Yeni sürüm veritabanı yapısını değiştirecekse, değiştirmeden hemen önce |
- Kaç gece yedeği tutulacağını Ayarlar → Genel → Gece yedeği sayısı ile değiştirebilirsiniz (0 gece yedeğini kapatır).
- Güncelleme öncesi yedek alınamazsa (ör. disk dolu) güncelleme uygulanmaz ve Bekci açılmaz; yer açınca açılır. Bu dosyalar kendiliğinden silinmez; eski olanları elle silebilirsiniz.
- Harici PostgreSQL (
DATABASE_URL) kullanıyorsanız Bekci yedek almaz; yedeği veritabanı tarafında alın (aşağıda).
Yedekleri listelemek için:
docker exec bekci ls -la /data/backupsKonteynerin adı Compose kurulumunda bekci-bekci-1'dir; ya da /opt/bekci içindeyken docker compose exec bekci ls -la /data/backups.
Yedekleri sunucu dışına kopyalama#
Yedek klasörünü konteynerden sunucuya kopyalayın:
cd /opt/bekci
docker compose cp bekci:/data/backups ./bekci-yedekler(docker run kurulumunda: docker cp bekci:/data/backups ./bekci-yedekler.)
Sonra kendi bilgisayarınızdan sunucudan indirin:
scp -r root@SUNUCU-IP:/opt/bekci/bekci-yedekler ./Bu adımları bir cron işiyle ya da yedekleme aracınızla (restic, rsync, sağlayıcınızın yedekleme hizmeti…) otomatikleştirmenizi öneririz.
Tam yedek (tüm veri birimi)#
Veritabanıyla birlikte tüm veri birimini tek bir dosyaya almak için Bekci'yi kısa süreliğine durdurun (veritabanı açıkken kopyalanan dosya tutarsız olabilir):
cd /opt/bekci
docker compose stop bekci
docker run --rm -v bekci_bekci-data:/data -v "$PWD":/yedek alpine \
tar czf /yedek/bekci-data-$(date +%F).tgz -C /data .
docker compose start bekciBirim adı Compose kurulumunda bekci_bekci-data, docker run kurulumunda bekci-data'dır (docker volume ls ile görebilirsiniz). Komut /opt/bekci/bekci-data-2026-09-28.tgz gibi bir dosya oluşturur.
Geri yükleme#
SQLite yedeğinden
Bir gece yedeğini ya da güncelleme öncesi yedeği geri yüklemek için:
cd /opt/bekci
docker compose exec bekci ls /data/backups # dosya adını seçin
docker compose stop bekci
docker run --rm -v bekci_bekci-data:/data alpine sh -c \
'cd /data && cp backups/uptime-2026-09-28.db uptime.db && rm -f uptime.db-wal uptime.db-shm && chown 1000:1000 uptime.db'
docker compose start bekciuptime.db-wal ve uptime.db-shm dosyaları eski veritabanına aittir; silinmeleri gerekir. docker run kurulumunda birim adı bekci-data, durdurma ve başlatma komutları docker stop bekci ve docker start bekci'dir.
Tam yedekten (.tgz)
cd /opt/bekci
docker compose stop bekci
docker run --rm -v bekci_bekci-data:/data -v "$PWD":/yedek alpine sh -c \
'find /data -mindepth 1 -delete && tar xzf /yedek/bekci-data-2026-09-28.tgz -C /data'
docker compose start bekciBu, birimin mevcut içeriğini tamamen siler ve yedektekiyle değiştirir.
Gömülü PostgreSQL
postgres imajında gece yedekleri uptime-…dump dosyalarıdır. Konteyner çalışırken:
docker exec bekci pg_restore -h /run/postgresql -U postgres --clean --if-exists --no-owner -d uptime /data/backups/uptime-2026-09-28.dump
docker restart bekciHarici PostgreSQL
Bekci harici veritabanında yedek almaz; yedeği pg_dump ile siz alırsınız. Docker Compose rehberindeki PostgreSQL kurulumu için yedek:
cd /opt/bekci
docker compose exec -T db pg_dump -U bekci --format=custom bekci > bekci-$(date +%F).dumpGeri yükleme:
cd /opt/bekci
docker compose stop bekci
docker compose exec -T db pg_restore -U bekci --clean --if-exists --no-owner -d bekci < bekci-2026-09-28.dump
docker compose start bekciAyarların JSON yedeği#
Ayarlar → Yedekle / Geri yükle → Yedeği indir, monitörleri, bildirim kanallarını, etiketleri, durum sayfalarını ve ayarları tek bir JSON dosyasına aktarır. Kullanıcılar, kontrol geçmişi ve işlem kaydı dahil değildir. Bu dosyayı başka bir Bekci kurulumuna (SQLite ya da PostgreSQL fark etmez) aynı bölümdeki Geri yükle ile aktarabilirsiniz. Dosya şifreleri ve token'ları açık hâlde içerir; güvenli bir yerde saklayın.
Eski sürüme dönme#
Yeni sürümde bir sorun çıkarsa eski sürümün etiketine dönebilirsiniz:
- Döneceğiniz etiketi bulun: yayınlanan sürümler (ör.
1.0.0) Docker Hub'da listelenir. Günlükteki eskisürüm=değeri de (ör.0ae7b6d) bir etiket olarak kullanılabilir:kadirsungurlu/bekci:0ae7b6d. - Yeni sürüm veritabanını yükselttiyse (günlükte
migration uygulandısatırı varsa) eski sürüm yeni veritabanını açamayabilir. Önce güncelleme öncesi yedeği (pre-migrate-…db) geri yükleyin. Bu yedekten sonraki değişiklikler kaybolur. - Etiketi eski sürüme çevirip başlatın, ör.
image: kadirsungurlu/bekci:1.0.0vedocker compose up -d.
PostgreSQL ana sürüm yükseltmesi#
Bu bölüm yalnızca gömülü PostgreSQL'li postgres imajı içindir. Bekci'nin ileride PostgreSQL'in yeni bir ana sürümüne (ör. 18'den 19'a) geçmesi durumunda veri klasörü doğrudan açılamaz. Bu durumda konteyner başlamaz ve günlüğüne HATA: PostgreSQL ana sürümü uyuşmuyor. başlıklı, adım adım bir açıklama yazar. Özetle:
Konteyneri durdurun ve eski imaja (eski PostgreSQL sürümünü içeren etikete) dönün.
Eski imaj çalışırken yedek alın ve dosyayı sunucu dışına da kopyalayın:
terminaldocker exec bekci pg_dump -h /run/postgresql -U postgres --format=custom --file=/data/backups/tasima.dump uptimeKonteyneri durdurun ve
/data/postgresklasörünü silmek yerine yeniden adlandırın (ör./data/postgres-18-eski).Yeni imajı başlatın; boş bir veritabanı oluşur.
Yedeği geri yükleyip konteyneri yeniden başlatın:
terminaldocker exec bekci pg_restore -h /run/postgresql -U postgres --clean --if-exists --no-owner -d uptime /data/backups/tasima.dump docker restart bekciHer şey yolundaysa eski klasörü silin.
Başka bir sunucuya taşıma#
- Eski sunucuda tam yedek alın ve dosyayı yeni sunucuya kopyalayın.
- Yeni sunucuya Bekci'yi aynı yolla kurun, başlatmadan önce ya da durdurup yedeği geri yükleyin.
- Alan adının DNS kaydını yeni sunucuya çevirin.
Adres aynı kaldığı için sunucu ajanları yeniden kurulmadan bağlanır: IP kilidi panelin değil, ajanın IP adresine bakar.
Bu sayfada eksik ya da hatalı bir şey mi var? GitHub’da bildirin ya da yazın: [email protected]