# 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.

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

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](https://github.com/plausible/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.

> **Not**
>
> Plausible CE TLS'i kendisi de sonlandırabilir: `.env` içinde `HTTP_PORT=80` ve `HTTPS_PORT=443`, `compose.override.yml` içinde de `80:80` ve `443:443` port eşlemeleriyle Let's Encrypt sertifikalarını kendisi ister. Bu yalnızca sunucuda 80 ve 443 numaralı portları başka hiçbir şey kullanmıyorsa çalışır; bu yüzden bu rehber Plausible wiki'sindeki reverse proxy kurulumunu kullanır.

## Ön koşullar

- **Ubuntu 24.04 LTS**, **Ubuntu 26.04 LTS**, **Debian 12** veya **Debian 13** çalıştıran bir sunucu.
- `sudo` yetkisine sahip, root olmayan bir kullanıcı. [Yeni bir Linux sunucusunu güvenli hale getirin](/guides/secure-a-new-linux-server) ve [SSH anahtarlarını ayarlayın](/guides/ssh-keys) rehberlerine bakın.
- Compose eklentisiyle birlikte Docker Engine: [Ubuntu'ya Docker kurulumu](/guides/install-docker-ubuntu) veya [Debian'a Docker kurulumu](/guides/install-docker-debian). Ayrıca `git` gerekir.
- [Caddy ile reverse proxy](/guides/caddy-reverse-proxy) rehberinde anlatıldığı gibi sunucuya kurulmuş Caddy.
- Sunucunuza yönlenen bir A kaydına (IPv6 kullanıyorsanız AAAA kaydına da) sahip `plausible.example.com` gibi bir alan adı.

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:

| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| CPU | SSE 4.2 destekli x86-64 veya NEON destekli ARM (ClickHouse için gerekli) | 2 vCPU |
| Bellek | En az 2 GB RAM önerilir | 2 GB RAM, yoğun siteler için 4 GB |
| Disk | Yayınlanmıyor | 20 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](https://github.com/plausible/analytics/releases) 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.

> **Uyarı**
>
> `SECRET_KEY_BASE` değerini sabit ve gizli tutun. Plausible bunu panel oturumları için kullanır ve iki aşamalı doğrulama sırlarını şifreleyen varsayılan anahtar dahil başka gizli değerleri bundan türetir. Sonradan değiştirmek herkesin oturumunu kapatır ve mevcut 2FA ayarlarını bozabilir.

## 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](/guides/nginx-reverse-proxy-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.

> **İpucu**
>
> Plausible CE ülke düzeyinde bir DB-IP coğrafi konum veritabanıyla gelir. Şehir düzeyinde konum için bir MaxMind hesabı açın, hesabın anahtarını `.env` dosyasına `MAXMIND_LICENSE_KEY` olarak ekleyin ve `docker compose up -d` çalıştırın; Plausible GeoLite2 City veritabanını kendisi indirir.

## 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.

> **Not**
>
> HyperDC VPS'lerde giden 25 numaralı port varsayılan olarak kapalıdır. 3 ay veya daha uzun süreyle satın alınan hizmetlerde talep üzerine açılır: [destek talebi açın](/guides/support-tickets). O zamana kadar e-postaları 587 numaralı port üzerinden bir SMTP relay ile gönderin.

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

```bash
cd /opt/plausible-ce
echo "MAILER_EMAIL=plausible@example.com" >> .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.

> **Tehlike**
>
> Aşağıdaki ilk iki komut bu sunucudaki PostgreSQL ve ClickHouse verilerini siler. Yalnızca bu verileri yedeğinizle değiştirmek istediğinizde çalıştırın.

```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ı](https://github.com/plausible/analytics/releases) 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

- Başka bir hafif araçla karşılaştırın: [Umami nasıl kurulur](/guides/install-umami).
- E-ticaret raporları ve klasik bir PHP yığını mı gerekiyor? [Matomo nasıl kurulur](/guides/install-matomo) rehberine bakın.
- Override dosyaları hakkında daha fazlasını [Docker Compose temelleri](/guides/docker-compose-basics) rehberinde öğrenin.
- Kendi sunucunuzda analitik için sunucuları [web analitiği hosting](/web-analytics-hosting) sayfasında inceleyin.
- Tüm yapılandırma seçenekleri için [Plausible CE wiki](https://github.com/plausible/community-edition/wiki) sayfasını okuyun.

## 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.

---

Kaynak: <https://hyperdc.com/tr/guides/tutorials/install-plausible-ce>\
Son güncelleme: 2026-10-09
