İçeriğe geç

EğitimlerAnalitik

Plausible Community Edition Docker Compose ile nasıl kurulur

Plausible Analytics Community Edition'ı Docker Compose, PostgreSQL ve ClickHouse ile Caddy HTTPS arkasında kurun, e-postayı ayarlayın ve yedekleyin.

  • Orta
  • 40 dk okuma
  • Güncellendi

Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13

Bu sayfada
  1. Ön koşullar
  2. Adım 1 — CPU'yu kontrol edin ve git kurun
  3. Adım 2 — Güncel sürümü klonlayın
  4. Adım 3 — .env dosyasını oluşturun
  5. Adım 4 — Plausible'ı loopback adresinde yayınlayın
  6. Adım 5 — Plausible'ı Caddy ile HTTPS üzerinden sunun
  7. Adım 6 — Hesabınızı oluşturun ve bir site ekleyin
  8. Adım 7 — E-postayı yapılandırın
  9. Yedekleme ve geri yükleme
  10. Plausible CE güncelleme
  11. Sorun giderme
  12. plausible_events_db sürekli yeniden başlıyor
  13. Bind for 127.0.0.1:8000 failed: port is already allocated
  14. Panelde hiç ziyaret görünmüyor
  15. Davet veya parola sıfırlama e-postaları hiç gelmiyor
  16. E-postalardaki bağlantılar yanlış adrese gidiyor
  17. Sonraki adımlar

Plausible Analytics; ziyaretçiler, sayfalar, kaynaklar, konumlar, cihazlar, hedefler ve özel olaylar için tek sayfalık bir panel sunan, hafif ve gizlilik odaklı bir web analitiği aracıdır. Plausible Community Edition (CE) bunun kendi sunucunuzda çalışan sürümüdür: Plausible uygulaması, hesaplar ve ayarlar için PostgreSQL ve olay verileri için ClickHouse olmak üzere üç konteynerle çalışır. Plausible CE açık kaynaklıdır.

Bu rehber Plausible'ın resmi community-edition deposunu ve wiki sayfalarını izler. Güncel sürümü klonlar, BASE_URL ve SECRET_KEY_BASE ile .env dosyasını oluşturur, Plausible'ı bir Compose override dosyasıyla 127.0.0.1:8000 üzerinde yayınlar ve Caddy ile HTTPS üzerinden sunarsınız. Ardından ilk hesabı oluşturur, kaydı davetle sınırlı tutar, bir SMTP relay bağlar ve iki veritabanını nasıl yedekleyeceğinizi, geri yükleyeceğinizi ve yükselteceğinizi öğrenirsiniz.

Ön koşullar

Plausible'ın README dosyası iki donanım gereksinimi listeler; proje disk için bir değer yayınlamaz, bu yüzden o satır resmi ya da ölçülmüş bir rakam değil, temkinli bir başlangıç noktasıdır:

KaynakEn düşük (resmi)Önerilen başlangıç
CPUSSE 4.2 destekli x86-64 veya NEON destekli ARM (ClickHouse için gerekli)2 vCPU
BellekEn az 2 GB RAM önerilir2 GB RAM, yoğun siteler için 4 GB
DiskYayınlanmıyor20 GB; ClickHouse verisi izlenen her olayla büyür

Adım 1 — CPU'yu kontrol edin ve git kurun

ClickHouse, SSE 4.2 (x86-64) veya NEON (ARM) desteği olmayan bir CPU'da başlamaz. Sunucunuzun bildirdiği özellikleri kontrol edin:

Bash
grep -m1 -o -w sse4_2 /proc/cpuinfo || echo "sse4_2 not reported"
uname -m
sudo apt update
sudo apt install git

x86_64 bir sunucuda ilk komut sse4_2 yazmalıdır. aarch64 bir sunucuda bunun yerine grep -m1 -o -w asimd /proc/cpuinfo ile asimd arayın; Linux NEON desteğini bu adla bildirir.

Adım 2 — Güncel sürümü klonlayın

community-edition deposunda her sürüm için bir dal (branch) bulunur. Bu rehber yazılırken güncel sürüm v3.2.1'dir; daha yeni bir sürüm için Plausible sürümlerine bakın ve aşağıdaki komutlarda onun adını kullanın:

Bash
sudo mkdir -p /opt/plausible-ce && sudo chown $USER:$USER /opt/plausible-ce
git clone -b v3.2.1 --single-branch https://github.com/plausible/community-edition /opt/plausible-ce
cd /opt/plausible-ce
ls

compose.yml dosyasını, ClickHouse yapılandırma dosyalarını içeren bir clickhouse klasörünü ve README dosyasını görmelisiniz. compose.yml, eşleşen imajı (burada ghcr.io/plausible/community-edition:v3.2.1) postgres:16-alpine ve bir ClickHouse sunucu imajıyla birlikte sabitler. compose.yml dosyasını düzenlemeyin; sonraki git pull yükseltmeleri sorunsuz kalsın diye değişikliklerinizi .env ve compose.override.yml dosyalarına yazın.

Adım 3 — .env dosyasını oluşturun

.env dosyasını oluşturun, yalnızca kendi kullanıcınızın okuyabileceği hale getirin ve iki zorunlu değeri ekleyin. BASE_URL kurulumunuzun herkese açık adresidir; SECRET_KEY_BASE ise Plausible belgelerindeki komutla üretilen, en az 64 baytlık bir gizli değerdir:

Bash
cd /opt/plausible-ce
touch .env
chmod 600 .env
echo "BASE_URL=https://plausible.example.com" >> .env
echo "SECRET_KEY_BASE=$(openssl rand -base64 48)" >> .env
echo "HTTP_PORT=8000" >> .env
echo "DISABLE_REGISTRATION=invite_only" >> .env
cat .env

HTTP_PORT=8000, wiki'deki reverse proxy sayfasında anlatıldığı gibi Plausible'ın konteyner içinde düz HTTP ile dinlemesini sağlar; HTTPS_PORT değerini eklememek de dahili TLS özelliğini kapalı tutar. DISABLE_REGISTRATION=invite_only zaten varsayılandır; değeri açıkça yazmak tercihi görünür kılar.

Adım 4 — Plausible'ı loopback adresinde yayınlayın

compose.yml dosyasının yanında compose.override.yml oluşturun:

Bash
nano /opt/plausible-ce/compose.override.yml

Konteyner portunu, Plausible'ın reverse proxy rehberindeki gibi 127.0.0.1:8000 adresine eşleyin:

YAML
services:
  plausible:
    ports:
      - 127.0.0.1:8000:${HTTP_PORT}

Yığını başlatın. İlk başlatma imajları çeker, PostgreSQL veritabanını oluşturur ve uygulama başlamadan önce geçişleri çalıştırır:

Bash
cd /opt/plausible-ce
docker compose up -d
docker compose ps
docker compose logs plausible --tail 30
curl --head http://127.0.0.1:8000

docker compose ps çıktısında plausible, plausible_db ve plausible_events_db listelenmeli, iki veritabanı da healthy görünmelidir. curl komutu HTTP/1.1 200 OK döndürmelidir.

Adım 5 — Plausible'ı Caddy ile HTTPS üzerinden sunun

/etc/caddy/Caddyfile dosyasına BASE_URL içindeki alan adı için bir site bloğu ekleyin:

Caddyfile
plausible.example.com {
    reverse_proxy 127.0.0.1:8000
}

Caddy'yi yeniden yükleyin, güvenlik duvarını yalnızca web trafiğine açın ve herkese açık adresi test edin:

Bash
sudo systemctl reload caddy
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
curl -I https://plausible.example.com

Caddy'deki alan adı BASE_URL ile tam olarak eşleşmelidir; çünkü Plausible bağlantı üretmek ve panel bağlantılarının kaynağını kontrol etmek için BASE_URL kullanır. Caddy ziyaretçinin adresini X-Forwarded-For başlığıyla iletir; Plausible tekil ziyaretçileri saymak için bunu kullanır. Wiki'de Nginx ve Apache örnekleri de vardır; Nginx tercih ediyorsanız Nginx ve Certbot rehberine bakın.

Adım 6 — Hesabınızı oluşturun ve bir site ekleyin

https://plausible.example.com adresini hemen açın ve ilk kullanıcıyı kaydedin: bu hesap oluşana kadar adrese ulaşan herkes onu oluşturabilir. Uzun ve benzersiz bir parola kullanın ve hesap ayarlarınızda iki aşamalı doğrulamayı açın.

Ardından ilk web sitenizi alan adıyla ekleyin ve Plausible'ın gösterdiği izleme kodunu kopyalayın. Kodu o sitenin her sayfasının head bölümüne yapıştırın. Plausible 3.1 yeni bir izleme betiği ve kod parçası getirdi; eski sürümlerle kurulan betikler çalışmaya devam eder. Sitenizi bir tarayıcıda açın ve paneli kontrol edin: ziyaret bir dakika içinde gerçek zamanlı görünümde belirmelidir.

DISABLE_REGISTRATION=invite_only ile diğer kişiler yalnızca Plausible'dan gönderdiğiniz bir davetle katılabilir. Yeni hesap hiç istemiyorsanız .env içinde DISABLE_REGISTRATION=true yapın ve docker compose up -d çalıştırın.

Adım 7 — E-postayı yapılandırın

Plausible davetler, parola sıfırlama, e-posta doğrulama ve zamanlanmış raporlar için e-posta gönderir. SMTP_HOST_ADDR olmadan e-postaları doğrudan alıcıların posta sunucularına teslim etmeye çalışır; bu yüzden bunun yerine bir transactional e-posta sağlayıcısının SMTP relay sunucusunu yapılandırın.

Relay ayarlarını .env dosyasına ekleyin ve konteyneri yeniden oluşturun:

Bash
cd /opt/plausible-ce
echo "[email protected]" >> .env
echo "MAILER_NAME=Plausible" >> .env
echo "SMTP_HOST_ADDR=smtp.example.com" >> .env
echo "SMTP_HOST_PORT=587" >> .env
echo "SMTP_USER_NAME=your-smtp-username" >> .env
echo "SMTP_USER_PWD=change-me" >> .env
docker compose up -d

MAILER_EMAIL gönderen adrestir ve sağlayıcınızın gönderime izin verdiği bir alan adına ait olmalıdır. Plausible'da SMTP_HOST_PORT için varsayılan değer de 587'dir; bu port için SMTP_HOST_SSL_ENABLED değerini varsayılan false olarak bırakın. Plausible'da ayrıca Postmark, Mailgun, Mandrill ve SendGrid için MAILER_ADAPTER ve ilgili API anahtarı değişkeniyle seçilen API bağdaştırıcıları vardır. Bir çalışma arkadaşınızı davet ederek veya parola sıfırlama isteyerek teslimatı test edin; hiçbir şey gelmezse docker compose logs plausible --tail 50 çıktısını kontrol edin.

Yedekleme ve geri yükleme

Plausible CE durumunu iki veritabanında tutar: PostgreSQL (plausible_db) kullanıcıları, siteleri, hedefleri ve ayarları; ClickHouse (plausible_events_db) ise her sayfa görüntülemeyi ve olayı saklar. İkisini de, ayrıca .env ve compose.override.yml dosyalarınızı yedekleyin. PostgreSQL dökümü Plausible çalışırken alınabilir. ClickHouse verisi, Docker'ın bir volume'u yedeklemek için belgelediği yöntemle, konteynerler durdurulmuşken bir volume arşivi olarak kopyalanır; bu birkaç dakika içinde gelen izleme istekleri kaybolur, bu yüzden işlemi sakin bir zamanda yapın.

Compose, volume adlarının başına proje klasörünün adını ekler; bu yüzden adları plausible-ce_db-data, plausible-ce_event-data gibidir. docker volume ls ile doğrulayın, ardından çalıştırın:

Bash
sudo mkdir -p /opt/backups && sudo chown $USER:$USER /opt/backups && chmod 700 /opt/backups
cd /opt/plausible-ce
docker compose exec -T plausible_db pg_dump -U postgres -Fc plausible_db > /opt/backups/plausible-db-$(date +%F).dump
docker compose stop plausible plausible_events_db
docker run --rm -v plausible-ce_event-data:/data -v /opt/backups:/backup alpine tar czf /backup/plausible-events-$(date +%F).tar.gz -C /data .
docker compose up -d
tar czf /opt/backups/plausible-config-$(date +%F).tar.gz -C /opt/plausible-ce .env compose.override.yml
ls -lh /opt/backups

Üç dosyayı sunucunun dışına kopyalayın. Geri yüklemek için Adım 2'deki aynı sürümü klonlayın, .env ve compose.override.yml dosyalarını /opt/plausible-ce içine geri koyun ve iki veritabanını yükleyin. ClickHouse verisini yalnızca geldiği ClickHouse sürümüne, yani aynı sürüm dalının sabitlediği sürüme geri yükleyin.

Bash
cd /opt/plausible-ce
docker compose down
docker volume rm plausible-ce_db-data plausible-ce_event-data
docker compose create
docker run --rm -v plausible-ce_event-data:/data -v /opt/backups:/backup alpine tar xzf /backup/plausible-events-2026-10-09.tar.gz -C /data
docker compose up -d --wait plausible_db
docker compose exec -T plausible_db createdb -U postgres plausible_db
docker compose exec -T plausible_db pg_restore -U postgres -d plausible_db < /opt/backups/plausible-db-2026-10-09.dump
docker compose up -d

Tarihleri kendi yedek dosyalarınızınkilerle değiştirin. docker compose create boş volume'ları ve konteynerleri başlatmadan yeniden oluşturur; böylece ClickHouse ilk başlangıcında geri yüklenen dosyaları bulur. Giriş yapın ve sitelerinizin ve geçmiş verilerinin geri geldiğini kontrol edin.

Plausible CE güncelleme

Mevcut sürümünüzle yeni sürüm arasındaki her sürümün sürüm notlarını okuyun ve önce yedek alın. Plausible wiki'si güvenlik yamalarının ve hata düzeltmelerinin eski sürümlere taşınmadığını belirtir; bu yüzden güncel kalın. Örneğin v3.2.1, v3.0.0-rc.0 ile v3.2.0 arasındaki sürümleri etkileyen uzaktan kod çalıştırma açığını kapattı. Wiki'deki yükseltme yöntemi yeni sürüm dalını klonunuza çeker ve konteynerleri yeniden oluşturur:

Bash
cd /opt/plausible-ce
git pull origin v3.2.1
docker compose up -d
docker compose ps
docker image prune

v3.2.1 yerine sürüm notlarında adı geçen sürüm dalını yazın. Ayarlarınız git'in izlemediği .env ve compose.override.yml dosyalarında durduğu için git pull yalnızca compose.yml dosyasını ve ClickHouse yapılandırmasını günceller. v3.2.0 gibi bazı sürümler tam olarak bu ClickHouse ayarlarını değiştirir; sürüm notlarının yalnızca imaj etiketini değiştirmek yerine dal değiştirmenizi istemesinin nedeni budur. Geçişler uygulama konteyneri başlarken kendiliğinden çalışır. PostgreSQL ana sürüm yükseltmeleri döküm ve geri yükleme gerektirir; bir sürüm bunu istediğinde wiki'deki Upgrade PostgreSQL sayfasını izleyin.

Sorun giderme

plausible_events_db sürekli yeniden başlıyor

ClickHouse başlayamıyor. docker compose logs plausible_events_db --tail 50 çıktısını okuyun. x86-64 üzerinde SSE 4.2 desteğinin olmaması kesin bir engeldir; Adım 1'i kontrol edin. Loglar bellekten söz ediyorsa sunucuya daha fazla RAM verin; depodaki clickhouse klasörü zaten düşük kaynak ayarlarını uygular.

Bind for 127.0.0.1:8000 failed: port is already allocated

Sunucudaki başka bir servis 8000 numaralı portu kullanıyor. Boş bir port seçin, .env içindeki HTTP_PORT değerini ve compose.override.yml içindeki eşlemenin sol tarafını (örneğin 127.0.0.1:8100:${HTTP_PORT}) değiştirin, Caddy site bloğunu buna göre güncelleyin ve docker compose up -d çalıştırın.

Panelde hiç ziyaret görünmüyor

Kodun sayfada olduğunu ve Plausible'a eklediğiniz alan adının sitenizin sunucu adıyla eşleştiğini kontrol edin. Sitenizde tarayıcının geliştirici araçlarını açın ve Plausible alan adınıza giden engellenmiş bir istek arayın; reklam engelleyiciler analitik betiklerini sık sık engeller. BASE_URL değerinin koddaki adresle eşleştiğini de doğrulayın.

Davet veya parola sıfırlama e-postaları hiç gelmiyor

docker compose logs plausible --tail 100 çalıştırın ve SMTP hatalarını arayın. Tipik nedenler yanlış sunucu adı veya port, 587 numaralı portla birlikte ayarlanmış SMTP_HOST_SSL_ENABLED=true, sağlayıcınızın izin vermediği bir MAILER_EMAIL adresi ya da .env düzenlendikten sonra unutulan docker compose up -d komutudur.

E-postalardaki bağlantılar yanlış adrese gidiyor

BASE_URL, kullanıcıların açtığı adresle eşleşmiyor. Değeri alt alan adı dahil tam HTTPS adresine ayarlayın, docker compose up -d çalıştırın ve Caddy site bloğunun aynı alan adını kullandığından emin olun.

Sonraki adımlar

Sık sorulan sorular

Plausible CE verilerini nerede saklar?

İki veritabanında: PostgreSQL kullanıcıları, siteleri, hedefleri ve ayarları; ClickHouse ise her sayfa görüntülemeyi ve olayı tutar. İkisi de compose.yml içinde tanımlı konteynerlerde çalışır; bu yüzden ikisini de .env ve compose.override.yml dosyalarıyla birlikte yedekleyin.

Plausible CE neden SSE 4.2 veya NEON destekli bir CPU ister?

Plausible olayları ClickHouse'ta saklar; ClickHouse da x86-64 üzerinde SSE 4.2, ARM üzerinde NEON komut setini gerektirir. Kurulumdan önce sunucunuzun CPU özelliklerini kontrol edin.

Plausible CE reverse proxy olmadan HTTPS sağlayabilir mi?

Evet. 2.1.2 sürümünden beri HTTP_PORT 80 ve HTTPS_PORT 443 olduğunda Let's Encrypt sertifikalarını kendisi alabilir. Bu rehber aynı sunucunun 80 ve 443 numaralı portlarda başka web uygulamaları da barındırabilmesi için Caddy kullanır.

Plausible kurulumuma herkes kaydolabilir mi?

Varsayılan olarak hayır. DISABLE_REGISTRATION varsayılan olarak invite_only değerindedir; ilk hesabı oluşturduktan sonra yeni kullanıcılar yalnızca davetle katılabilir. Kaydı tamamen kapatmak için değeri true yapın.

Plausible CE hangi HyperDC sunucularında çalışır?

Plausible CE; root erişiminiz, desteklenen bir Ubuntu veya Debian sürümünüz ve SSE 4.2 veya NEON bildiren bir CPU'su olan her HyperDC Linux VPS, VDS veya dedicated sunucuda Docker içinde çalışır.

Kaynaklar

Şifre Oluştur

Lütfen onaylayın