# Dokploy, Docker Swarm, Traefik ve HTTPS ile nasıl kurulur

> Dokploy'u resmi betiğiyle kurun, yönetici hesabını oluşturun, paneli alan adınızda HTTPS'e taşıyın, 3000 portunu kapatın; yedekleme ve güncellemeyi ayarlayın.

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

Dokploy, açık kaynaklı ve kendi sunucunuzda barındırabileceğiniz bir dağıtım platformudur. Uygulamaları Git depolarından, Dockerfile'lardan ve Docker Compose dosyalarından derleyip çalıştırır, veritabanları hazırlar ve alan adlarınızı otomatik Let's Encrypt sertifikalarıyla Traefik üzerinden yönlendirir. Arka planda sunucunuzu bir Docker Swarm yöneticisine dönüştürür; bu da ileride başka sunucuları yönetmesini mümkün kılar.

Bu rehber Dokploy'u, siz indirip okuduktan sonra **resmi kurulum betiğiyle** kurar, yöneticiyi oluşturur, paneli HTTPS ile kendi alan adınıza taşır, genel 3000 portunu kaldırır ve instance, veritabanları ve volume'lar için Dokploy'un S3 yedeklerini ayarlar. Son olarak güncelleme yöntemini ve sık görülen sorunların çözümlerini ele alır.

## Ön koşullar

- **Ubuntu 24.04 LTS** veya **Debian 12** çalıştıran **temiz** bir sunucu. Dokploy'un test listesinde daha eski sürümler (Ubuntu 22.04, 20.04, Debian 11 ve diğerleri), Fedora 40 ile CentOS 9 ve 8 de bulunur. **Ubuntu 26.04 ve Debian 13, Ekim 2026 itibarıyla test listesinde yer almıyor**; bu yüzden bu rehber onları kapsamaz.
- `sudo` üzerinden root erişimi; [Yeni bir Linux sunucusunu güvenli hale getirin](/guides/secure-a-new-linux-server) ve [SSH anahtarlarını ayarlayın](/guides/ssh-keys) rehberlerindeki gibi root olmayan bir yönetici kullanıcı ve SSH anahtarıyla giriş. Kurulum betiğinin kendisi root olarak çalışmalıdır.
- Boş 80, 443 ve 3000 portları. Bu portlarda bir şey dinliyorsa kurulum betiği durur; bu yüzden önceden Caddy, Nginx veya Apache kurmayın.
- Docker isteğe bağlıdır: yoksa kurulum betiği kurar. Sunucuyu mevcut bir Swarm'a katmayın.
- Panelin HTTPS adresi için sunucuyu gösteren bir A kaydına sahip `dokploy.example.com` gibi bir alan adı.

| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| CPU | Yayınlanmamış | 2 vCPU; imajları burada derleyecekseniz 4 vCPU |
| Bellek | 2 GB | 4 GB |
| Disk | 30 GB | 60 GB SSD |

Bellek ve disk alt sınırları Dokploy'un kurulum sayfasından alınmıştır; Dokploy en düşük CPU değeri yayınlamaz. Sağ sütun temkinli bir başlangıç noktasıdır; resmi veya ölçülmüş bir değer değildir. Derlemeler, veritabanları ve loglar hızla büyür; pay bırakın.

## Adım 1 — Güvenlik duvarını hazırlayın

SSH, HTTP, HTTPS'e ve yalnızca ilk kurulum için panel portu 3000'e izin verin:

```bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3000/tcp
sudo ufw enable
sudo ufw status verbose
```

İki noktaya dikkat edin. Birincisi, Dokploy 3000 portunu, Traefik ise 80 ve 443 portlarını Docker üzerinden yayınlar; Docker belgeleri yayınlanan portlara gelen paketlerin ufw kuralları uygulanmadan önce yönlendirildiğini açıklar. Bu nedenle ufw 3000 portunu kapatamaz; onu Adım 6 kaldırır, sağlayıcının ağ güvenlik duvarı da ikinci bir katman ekler. İkincisi, kurulum betiği 2377/tcp, 7946/tcp ve udp ile 4789/udp portlarında dinleyen bir Docker Swarm oluşturur. Bunları internete kapalı tutun: Docker'ın Swarm belgeleri VXLAN portu 4789'un güvenilmeyen ağlara asla açılmaması gerektiğini söyler. ufw'nin varsayılan reddetme politikası bunları zaten engeller; ileride sunucu eklerseniz yalnızca kendi düğümleriniz arasında açın.

## Adım 2 — Kurulum betiğini indirin ve inceleyin

Resmi betiği indirin ve root olarak çalıştırmadan önce okuyun:

```bash
curl -sSL https://dokploy.com/install.sh -o dokploy-install.sh
less dokploy-install.sh
```

Ekim 2026 itibarıyla betik şunları yapar:

- GitHub'dan en son kararlı Dokploy sürümünü seçer (ayarlıysa `DOKPLOY_VERSION` değerini kullanır);
- root olarak çalışmıyorsa, macOS'ta veya bir konteyner içindeyse sonlanır; 80, 443 veya 3000 portları kullanımdaysa da sonlanır;
- Docker yoksa Docker'ın 28.5.0 sürümüne sabitlenmiş kolaylık betiğiyle kurar ve apt tabanlı sistemlerde `docker-ce`, `docker-ce-cli` ve `docker-ce-rootless-extras` paketlerini bekletmeye (hold) alır;
- `docker swarm leave --force` çalıştırır, ardından bir duyuru adresiyle `docker swarm init` yapar: ilk özel IPv4 adresini, yoksa ifconfig.io veya icanhazip.com üzerinden öğrendiği genel IP'yi kullanır;
- bağlanılabilir `dokploy-network` overlay ağını ve `/etc/dokploy` klasörünü oluşturur;
- PostgreSQL parolasını ve bir kimlik doğrulama sırrını üretip Docker secret olarak saklar; bu değerler hiçbir zaman ekrana yazılmaz;
- `dokploy-postgres` (PostgreSQL 16) ve `dokploy` (3000 portunda yayınlanan panel) Swarm servislerini ve `dokploy-traefik` konteynerini (80 ve 443 portlarında Traefik v3) başlatır.

Dokploy, 0.29.9 sürümünden beri kendi sunucunuzdaki kurulumlarda Redis kullanmaz.

> **Uyarı**
>
> Betik `docker swarm leave --force` çalıştırdığı için onu zaten bir Docker Swarm'ın parçası olan bir sunucuda asla çalıştırmayın. Temiz bir sunucu kullanın.

## Adım 3 — Kurulum betiğini çalıştırın

İncelediğiniz betiği root olarak çalıştırın:

```bash
sudo sh dokploy-install.sh
```

Sunucunun birden fazla adresi varsa veya betik bir adres belirleyemezse, Swarm'ın duyuracağı adresi kendiniz ayarlayın:

```bash
sudo ADVERTISE_ADDR=203.0.113.10 sh dokploy-install.sh
```

> **İpucu**
>
> Root olarak çalıştırılan resmi tek satırlık karşılığı `curl -sSL https://dokploy.com/install.sh | sh` komutudur.

Betik sonunda `http://sunucu-ip-adresiniz:3000` adresini yazdırır ve yaklaşık 15 saniye beklemenizi ister. Servisleri ve Traefik konteynerini kontrol edin:

```bash
sudo docker service ls
sudo docker ps
```

`dokploy` ve `dokploy-postgres` servisleri `1/1` replika göstermeli, `dokploy-traefik` ise `Up` durumunda olmalıdır.

## Adım 4 — Yönetici hesabını oluşturun

`http://sunucu-ip-adresiniz:3000` adresini hemen açın. İlk ziyarette yönetici hesabını oluşturduğunuz kurulum sayfası görünür: adınızı, e-posta adresinizi ve uzun, benzersiz bir parolayı girin. Bu sayfaya sizden önce ulaşan herkes instance'ı sahiplenebilir; bu yüzden sayfayı bekletmeyin.

Giriş yaptıktan sonra:

1. Profilinizde iki adımlı doğrulamayı açın.
2. Diğer kişileri yönetici girişini paylaşmak yerine **Settings**, **Users** altından davet edin ve onlara yalnızca ihtiyaç duydukları rolleri verin.

## Adım 5 — Paneli alan adınızda HTTPS ile sunun

Dokploy belgeleri, alan adını eklemeden **önce** DNS'in sunucuyu göstermesi gerektiğini vurgular; aksi hâlde sertifika oluşturulmaz. `dokploy.example.com` adının sunucunuza çözümlendiğini doğrulayın, ardından:

1. **Settings** ve ardından panelin kendi alan adı, sertifika ve bakım ayarlarını içeren **Web Server** bölümünü açın.
2. Host olarak `dokploy.example.com` girin, HTTPS'i açın, sertifika türü olarak **Let's Encrypt** seçin ve Let's Encrypt bildirimleri için bir e-posta adresi girin.
3. Kaydedin. Traefik sertifikayı ister.

Bilgisayarınızdan kontrol edin:

```bash
curl -I https://dokploy.example.com
```

Geçerli bir sertifikayla HTTPS üzerinden bir yanıt almalısınız. Devam etmeden önce yeni adres üzerinden giriş yapın.

## Adım 6 — 3000 portunu kapatın

Panel HTTPS üzerinde çalıştığında, Dokploy belgelerindeki komutla yayınlanan 3000 portunu kaldırın ve geçici ufw kuralını silin:

```bash
sudo docker service update --publish-rm "published=3000,target=3000,mode=host" dokploy
sudo ufw delete allow 3000/tcp
```

Başka bir makineden `nc -vz sunucu-ip-adresiniz 3000` artık reddedilmeli veya zaman aşımına uğramalı, `https://dokploy.example.com` ise açılmaya devam etmelidir. Doğrudan erişime yeniden ihtiyaç duyarsanız portu aynı tanımla `--publish-add` kullanarak geçici olarak yayınlayın.

## Yedekleme ve geri yükleme

Dokploy'un tüm yedekleri S3 uyumlu depolamaya gider; bu yüzden işe bir hedef ekleyerek başlayın: **Settings** ve ardından **S3 Destinations** bölümünü açın, depolama sağlayıcınızın erişim anahtarını, gizli anahtarını, bucket adını, bölgesini ve uç noktasını girin.

**Instance yedeği.** **Web Server** altında **Backups** bölümünü açın, **Create Backup** seçin, hedefi ve isteğe bağlı olarak `0 3 * * *` gibi bir cron zamanlamasını belirleyin. Her çalıştırma `dokploy-postgres` veritabanını ve `/etc/dokploy` klasörünü (Traefik yapılandırması dahil) tek bir sıkıştırılmış `.zip` dosyasında toplar ve yükler.

**Veritabanı yedekleri.** Dokploy'da oluşturduğunuz her veritabanı için **Backup** sekmesini açın, hedefi seçin; **Database Name**, **Schedule Cron** ve **Prefix** alanlarını doldurun. **Enabled** seçeneğini açık bırakın ve bucket'a ilk yedeği göndermek için **Test** seçin.

**Volume yedekleri.** Uygulamaların ve Compose servislerinin adlandırılmış Docker volume'ları için **Volume Backups** bölümünü kullanın: işe bir ad verin, servisi ve volume'u seçin, bir zamanlama belirleyin ve dosyaların tutarlı olması için **Turn off Container** seçeneğini seçili tutun. Bind mount'lar desteklenmez; önce adlandırılmış volume'lara geçin.

Yapılandırma klasörünün yerel bir kopyası, örneğin Traefik ayarlarını değiştirmeden önce, faydalı bir ektir:

```bash
sudo mkdir -p /opt/backups
sudo tar czf /opt/backups/dokploy-etc-$(date +%F).tar.gz /etc/dokploy
```

**Geri yükleme.** Instance'ı geri yüklemek için **Web Server**, ardından **Backups** bölümünü açın, **Restore Backup** seçin, hedefi ve dosyayı seçip özeti inceleyin. Geri yükleme `/etc/dokploy` içeriğini değiştirir, `dokploy-postgres` veritabanını silip yeniden kurar ve mevcut oturumları keser; ardından yeniden giriş yapın, yönlendirmeler hatalı çalışırsa Traefik'i yeniden başlatın. Yeni bir sunucuda önce Dokploy'u kurun, aynı S3 hedefini ekleyin, geri yükleyin; ardından sunucu ayarlarındaki **Update IP** ile IP'yi güncelleyin, DNS kayıtlarınızı değiştirin ve IP adresi kullanan Git sağlayıcılarını yeniden yapılandırın. Veritabanları kendi **Backup** sekmesindeki **Restore** ile; volume'lar ise henüz var olmayan bir volume adına, konteynerleri durdurulmuşken **Restore Volume** ile geri yüklenir.

## Dokploy güncelleme

Dokploy'un GitHub sürümler sayfasındaki sürüm notlarını okuyun (Ekim 2026 başında en son sürüm 0.30.8 idi) ve önce bir instance yedeği alın. Ardından betiği yeniden indirip `update` komutunu çalıştırın:

```bash
curl -sSL https://dokploy.com/install.sh -o dokploy-install.sh
sudo sh dokploy-install.sh update
sudo docker service ls
```

Resmi tek satırlık biçimi `curl -sSL https://dokploy.com/install.sh | sh -s update` komutudur. `update` komutu yeni `dokploy/dokploy` imajını çeker ve yalnızca `dokploy` servisini günceller; Dokploy'un elle kurulum sayfasında ayrıca ele alınan PostgreSQL'e ve Traefik'e dokunmaz. Docker'ı sizin için kurulum betiği kurduysa Docker paketleri sabitlenen sürümde bekletmededir; bu yüzden `apt upgrade` Docker'ı güncellemez. Bu bekletmeyi `apt-mark unhold` ile kaldırmadan önce Dokploy belgelerini kontrol edin.

## Sorun giderme

### Kurulum betiği 80, 443 veya 3000 portu kullanımda olduğu için duruyor

Dokploy'un portlarından birinde zaten bir şey dinliyor. `sudo ss -tulnp | grep -E ':(80|443|3000) '` ile bulun, o servisi (genellikle Apache, Nginx veya Caddy) durdurup devre dışı bırakın ve kurulum betiğini yeniden çalıştırın.

### Swarm başlatma başarısız oluyor veya panel yanlış IP adresi gösteriyor

Betik kullanılabilir bir adres bulamadı ya da istemediğiniz özel bir adresi seçti. Adım 3'teki gibi `ADVERTISE_ADDR` değerini sunucunun genel IP adresine ayarlayarak yeniden çalıştırın.

### Yeniden başlatmadan sonra panel açılmıyor

Konteynerler yanlış sırayla başlamış ve Dokploy, PostgreSQL hazır olmadan ayağa kalkmış olabilir. Logları okuyun, ardından panel servisini yeniden başlatın:

```bash
sudo docker service logs dokploy --tail 50
sudo docker service logs dokploy-postgres --tail 50
sudo docker logs dokploy-traefik --tail 50
sudo docker service scale dokploy=0
sudo docker service scale dokploy=1
```

Dolu bir disk de Dokploy veritabanını kurtarma moduna sokabilir; boş alanı `df -h` ile kontrol edin.

### Let's Encrypt sertifika vermiyor

Alan adı büyük olasılıkla DNS kaydı sunucuyu göstermeden önce eklendi. Kaydı düzeltin, ardından alan adını Dokploy'da yeniden oluşturun veya Traefik'i `sudo docker restart dokploy-traefik` ile yeniden başlatın. 80 ve 443 portlarının sağlayıcınızın güvenlik duvarında da açık olduğundan emin olun.

### Disk imajlar ve derleme önbelleğiyle doluyor

Dokploy'un sorun giderme sayfası Docker'ın prune komutlarını kullanır; örneğin derleme önbelleği için `sudo docker builder prune -a`, kullanılmayan imajlar için `sudo docker image prune -a`. Önce alanı neyin kullandığını `sudo docker system df` ile görün; `prune -a` şu anda hiçbir konteynerin kullanmadığı tüm imajları siler.

### Yönetici parolasını unuttunuz

`dokploy` servisinin konteynerini bulun (imajı `dokploy/dokploy` olandır) ve Dokploy'un sıfırlama komutunu içinde çalıştırın:

```bash
sudo docker ps --filter name=dokploy
sudo docker exec -it CONTAINER_ID bash -c "pnpm run reset-password"
```

`CONTAINER_ID` yerine ilk komuttaki kimliği yazın. İki adımlı doğrulama için `pnpm run reset-2fa` aynı şekilde çalışır.

## Sonraki adımlar

- Kendi sunucunuzda barındırılan başka bir platformla karşılaştırmak için [Coolify kurulumu](/guides/install-coolify) rehberine bakın.
- Traefik'in alan adlarını nasıl yönlendirdiğini [Traefik reverse proxy](/guides/traefik-reverse-proxy) rehberinde öğrenin.
- Derleme iş yükleri için boyutlandırılmış sunuculara [Dokploy hosting](/dokploy-hosting) sayfasında göz atın.
- Uygulamalar, Compose dağıtımları ve uzak sunucular için resmi [Dokploy belgelerini](https://docs.dokploy.com/docs/core) okuyun.

## Sık sorulan sorular

### Dokploy hangi işletim sistemlerini destekler?

Dokploy test edilmiş sistemler olarak Ubuntu 24.04, 23.10, 22.04, 20.04 ve 18.04, Debian 12, 11 ve 10, Fedora 40 ile CentOS 9 ve 8'i listeler. Ekim 2026 itibarıyla Ubuntu 26.04 ve Debian 13 bu listede yer almadığı için bu rehber Ubuntu 24.04 veya Debian 12 kullanır.

### Dokploy neden Docker Swarm kullanır?

Kurulum betiği sunucuyu tek düğümlü bir Docker Swarm yöneticisine dönüştürür. Dokploy panelini ve PostgreSQL veritabanını dokploy-network adlı bir overlay ağ üzerinde Swarm servisleri olarak çalıştırır; Traefik de alan adlarınızı dağıttığınız uygulamalara yönlendirir.

### 3000 portunu açık tutmam gerekir mi?

Hayır. 3000 portu yalnızca panel kendi alan adınızda HTTPS ile çalışana kadar gereklidir. Ardından Dokploy belgeleri, yayınlanan portu kaldıran bir docker service update komutu verir.

### Dokploy'u aynı sunucuda kendi Caddy veya Nginx'imin arkasında çalıştırabilir miyim?

Kurulumu değiştirmeden hayır. 80, 443 veya 3000 portları kullanımdaysa kurulum betiği çalışmayı reddeder; çünkü Dokploy'un kendi Traefik konteyneri 80 ve 443 üzerinden tüm alan adlarına hizmet verir ve sertifikaları ister.

### Dokploy uygulamalarımı kendiliğinden yedekler mi?

Hayır. Önce S3 uyumlu bir hedef eklersiniz, ardından Dokploy instance'ı, her veritabanı ve adlandırılmış volume'lar için yedek zamanlarsınız. Instance yedeği yalnızca Dokploy'un kendi veritabanını ve /etc/dokploy klasörünü kapsar.

---

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