# Nextcloud All-in-One (AIO) Docker Compose ile nasıl kurulur

> Nextcloud All-in-One'ı Docker Compose ile kurun: resmi mastercontainer, otomatik HTTPS, Office ve Talk seçenekleri, BorgBackup yedekleri ve güncellemeler.

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

Nextcloud All-in-One (AIO), Nextcloud'u Docker ile çalıştırmanın resmi yoludur. Tek bir **mastercontainer** yığının diğer tüm parçalarını sizin için oluşturur, yapılandırır ve günceller: Nextcloud'un kendisi, veritabanı, Redis, TLS sertifikasını kendiliğinden alan bir web sunucusu ve Nextcloud Office, Talk, ClamAV ile tam metin arama gibi isteğe bağlı eklentiler. AIO ayrıca BorgBackup tabanlı şifreli bir yedekleme çözümüyle gelir.

Bu rehber mastercontainer'ı yeni bir sunucuda Docker Compose ile başlatır, alan adı doğrulamasını ve AIO arayüzünü adım adım anlatır, yerel ve sunucu dışı yedekleri kurar ve güncellemelerin nasıl işlediğini gösterir. Sunucunuzda 80 ve 443 numaralı portlarda zaten Caddy çalışıyorsa ayrı bir bölüm bunun yerine resmi reverse proxy kurulumunu gösterir.

> **Not**
>
> Apache, PHP ve veritabanını kendiniz mi yönetmek istiyorsunuz? [Nextcloud Server elle nasıl kurulur](/guides/install-nextcloud-manual) rehberini izleyin. Güncellemelerin ve yedeklerin sizin yerinize yönetilmesini istiyorsanız AIO daha iyi bir seçimdir.

## Ön koşullar

- **Ubuntu 24.04 veya 26.04 LTS** ya da **Debian 12 veya 13** çalıştıran 64 bit (x86_64 veya arm64) bir sunucu.
- `sudo` yetkisi olan, 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.
- Docker'ın deposundan kurulmuş Docker Engine ve Compose eklentisi: [Ubuntu](/guides/install-docker-ubuntu) veya [Debian](/guides/install-docker-debian). AIO, Snap tabanlı Docker kurulumlarını desteklemez.
- A kaydı (IPv6 kullanıyorsanız AAAA kaydı da) sunucuyu gösteren `cloud.example.com` gibi bir alan adı. Alan adı Cloudflare kullanıyorsa proxy seçeneğini kapatın; AIO, proxy arkasında alan adı doğrulamasının ve büyük yüklemelerin başarısız olabileceğini belirtir.
- Sunucuda boş olan ve 8443 numaralı portla birlikte internetten erişilebilen 80 ve 443 numaralı portlar. 3478 TCP ve UDP portu yalnızca Talk'u açarsanız gerekir.

AIO donanım gereksinimlerini arayüzde gösterir; bunlar açtığınız isteğe bağlı konteynerlere bağlıdır. SSD depolama önerilir.

| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| RAM | Herhangi bir isteğe bağlı konteynerle 2 GB; ClamAV, Talk Recording veya tam metin arama ile 3 GB; her şey açıkken 5 GB | AIO'nun önerdiği gibi en düşük değerin 1 GB üzeri (örneğin 4 GB) |
| CPU | Çift çekirdek; her şey açıkken dört çekirdek; Talk Recording için 2 ek vCPU | 2 ile 4 vCPU |
| Disk | 40 GB sistem depolaması | 40 GB SSD ve dosyalarınız ile yedekleriniz için gereken alan |

## Adım 1 — Docker'ı ve güvenlik duvarını kontrol edin

AIO, Snap'ten kurulan Docker ile çalışmaz. Desteklenen bir kurulumda bu komut hiçbir şey yazdırmaz:

```bash
sudo docker info | grep "Docker Root Dir" | grep "/var/snap/docker/"
```

Bir satır yazdırırsa önce Snap paketini kaldırın ve Docker'ı Docker'ın deposundan kurun.

Sunucunun kendi servisleri için ufw'yi açın. AIO'nun yayınladığı portları Docker kendisi açar ve bunları ufw kuralları devreye girmeden önce işler; bu yüzden neyin erişilebilir olduğunu bir sonraki adımdaki yayınlanan port listesi belirler:

```bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443
sudo ufw allow 8443/tcp
sudo ufw enable
```

## Adım 2 — mastercontainer'ı başlatın

AIO üretim için bir Compose dosyası önerir. Bir proje klasörü ve dosyayı oluşturun:

```bash
sudo mkdir -p /opt/nextcloud-aio
sudo chown $USER:$USER /opt/nextcloud-aio
cd /opt/nextcloud-aio
nano compose.yaml
```

Resmi yapılandırmayı yapıştırın. mastercontainer bunlara dayandığı için konteyner adı, volume adı ve Docker soketi bağlantısı tam olarak gösterildiği gibi kalmalıdır:

```yaml
name: nextcloud-aio
services:
  nextcloud-aio-mastercontainer:
    image: ghcr.io/nextcloud-releases/all-in-one:latest
    init: true
    restart: always
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    network_mode: bridge
    ports:
      - "80:80"
      - "8080:8080"
      - "8443:8443"
volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer
```

80 numaralı port sertifika için ACME doğrulamasını, 8080 kendinden imzalı sertifikayla AIO arayüzünü, 8443 ise alan adınız ayarlandıktan sonra aynı arayüzü geçerli bir sertifikayla sunar. AIO'nun daha sonra oluşturduğu Apache konteyneri Nextcloud için 443 numaralı portu yayınlar.

Başlatın ve logu izleyin:

```bash
docker compose up -d
docker compose ps
docker logs -f nextcloud-aio-mastercontainer
```

`docker compose ps`, mastercontainer'ı `running` olarak göstermelidir. Logdan çıkmak için Ctrl+C'ye basın.

> **İpucu**
>
> Dosyalarınızı ayrı bir diskte tutmak için ilk başlatmadan önce servise `NEXTCLOUD_DATADIR: /mnt/ncdata` içeren bir `environment:` bölümü ekleyin. AIO, Nextcloud'un veri klasörü için bu ana makine klasörünü kullanır. Bunu Nextcloud'u kurmadan önce kararlaştırın; sonradan değiştirmek bir taşıma işlemidir.

## Adım 3 — AIO arayüzünü açın ve parolayı kaydedin

Tarayıcıda alan adı yerine sunucunuzun IP adresiyle `https://203.0.113.10:8080` adresine gidin. AIO bunu önerir; çünkü Nextcloud'un daha sonra gönderdiği HSTS başlığı aksi hâlde kendinden imzalı portu engelleyebilir. Sertifika uyarısını kabul edin.

İlk sayfa **AIO parolasını** (passphrase) gösterir. Onu bir parola yöneticisine kaydedin, ardından bu parolayla giriş yapın. AIO arayüzüne sonraki her girişinizde ona ihtiyacınız olacak.

## Adım 4 — Alan adınızı girin

AIO alan adınızı sorduğunda `cloud.example.com` girin. AIO ardından alan adının bu sunucuyu gösterdiğini ve onun üzerinden bu AIO kurulumuna ulaşabildiğini kontrol eder; bu nedenle 80 ve 443 numaralı portlar internetten erişilebilir olmalıdır. Bu tek kontrolden sonra mastercontainer alan adınıza bir daha bağlanmaz.

Kontrol başarısız olursa onu atlamak yerine DNS'i veya güvenlik duvarını düzeltin. Kaydı kendi bilgisayarınızdan `dig +short cloud.example.com` ile doğrulayın; sunucunuzun adresini döndürmelidir. Sık görülen hatalar sorun giderme bölümündedir.

## Adım 5 — İsteğe bağlı konteynerleri seçin ve Nextcloud'u başlatın

Arayüz şimdi isteğe bağlı konteynerleri listeler. Her biri RAM gerektirdiği için yalnızca kullanacaklarınızı açın:

- tarayıcıda belge düzenlemek için **Nextcloud Office** veya **EuroOffice**,
- **Talk** (yüksek performanslı arka ucu ve TURN sunucusuyla) ve **Talk Recording**,
- **ClamAV** antivirüs, görsel önizlemeleri için **Imaginary**, **tam metin arama** ve **Whiteboard**,
- App API kullanan Nextcloud uygulamaları için gerekli olan **Docker Socket Proxy**.

Talk'u açarsanız Docker, TURN sunucusu için 3478 TCP ve UDP portunu yayınlar. Konteynerleri arayüzdeki başlatma düğmesiyle başlatın. AIO imajları çeker ve konteynerleri sırayla başlatır; ilk çalıştırmada bu birkaç dakika sürer. Tüm konteynerler çalıştığında arayüz ilk Nextcloud yönetici kullanıcı adını ve parolasını ve Nextcloud'unuza giden bağlantıyı gösterir.

`https://cloud.example.com` adresini açın ve giriş yapın. HTTPS'in çalıştığını kendi bilgisayarınızdan kontrol edin:

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

Geçerli bir sertifikayla sunulan bir HTTP `200` yanıtı veya giriş sayfasına `302` yönlendirmesi görmelisiniz.

## Adım 6 — Hesapları güvenli hale getirin

İlk yönetici parolasını **Kişisel ayarlar → Güvenlik** altında değiştirin ve iki aşamalı doğrulamayı da orada açın (örneğin **Uygulamalar** bölümündeki TOTP uygulamasıyla). Günlük kullanım için yönetici hesabıyla çalışmak yerine normal kullanıcı hesapları oluşturun.

AIO arayüzü kendini korur: Nextcloud çalışırken parolayla doğrudan giriş engellenir. Arayüzü açmak için Nextcloud'a yönetici olarak giriş yapın ve `https://cloud.example.com/settings/admin/overview` adresini ziyaret edin; üstteki bir düğme AIO arayüzünü tarayıcı oturumunuz için açar. Standart kurulumda arayüze geçerli bir sertifikayla `https://cloud.example.com:8443` adresinden de ulaşabilirsiniz.

> **Uyarı**
>
> Docker 8080 ve 8443 numaralı portları ufw'den bağımsız olarak tüm adreslerde yayınlar. AIO'yu yalnızca tek bir yerden yönetiyorsanız `compose.yaml` içinde `"8080:8080"` değerini `"127.0.0.1:8080:8080"` olarak değiştirin, `docker compose up -d` komutunu yeniden çalıştırın ve arayüze bir SSH tüneli üzerinden ulaşın (`ssh -L 8080:127.0.0.1:8080 admin@203.0.113.10`, ardından `https://localhost:8080`).

Nextcloud parola sıfırlama e-postalarını ve paylaşımlar ile dosya değişiklikleri hakkındaki bildirimleri gönderir; posta sunucusunu **Yönetim ayarları → Temel ayarlar** altındaki **E-posta sunucusu** bölümünde `smtp.example.com` sunucusu, `587` numaralı port ve **None/STARTTLS** şifreleme seçeneğiyle ayarlayın, ardından aynı sayfadan bir deneme e-postası gönderin.

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

## AIO'yu Caddy arkasında çalıştırma

Sunucuda 80 ve 443 numaralı portlarda zaten Caddy (bkz. [Caddy reverse proxy olarak nasıl kurulur](/guides/caddy-reverse-proxy)) veya başka bir reverse proxy çalışıyorsa Adım 2 yerine bu kurulumu kullanın. Kararı ilk başlatmadan önce verin. Reverse proxy modunda Apache konteyneri seçtiğiniz bir portta TLS olmadan dinler ve HTTPS'i Caddy üstlenir.

`compose.yaml` içindeki `ports:` bölümünü değiştirin ve AIO'nun reverse proxy belgesindeki ortam değişkenlerini ekleyin:

```yaml
    ports:
      - "8080:8080"
    environment:
      APACHE_PORT: 11000
      APACHE_IP_BINDING: 127.0.0.1
```

`APACHE_PORT`, Caddy'nin bağlandığı ana makine portudur; `APACHE_IP_BINDING: 127.0.0.1` ise Apache'yi localhost'ta tutar, böylece hiçbir şey Caddy'yi atlayamaz. Ardından `/etc/caddy/Caddyfile` dosyasına bir site bloğu ekleyin:

```caddyfile
cloud.example.com {
    reverse_proxy 127.0.0.1:11000
}
```

Caddy'yi yeniden yükleyin, AIO'yu başlatın ve Adım 3 ile devam edin:

```bash
sudo systemctl reload caddy
docker compose up -d
```

Alan adı doğrulaması bu modda da çalışır ve Caddy üzerinden geçer. `SKIP_DOMAIN_VALIDATION=true` değişkeni vardır; ancak AIO bunu, Caddy DNS doğrulaması veya Cloudflare Tunnel gibi doğrulamanın çalışamadığı kurulumlar için son çare olarak tanımlar; bu değişkenle bozuk bir proxy yapılandırması fark edilmeden kalabilir. Proxy'niz başka bir makinede çalışıyor ve 127.0.0.1 dışında bir IP'den bağlanıyorsa `APACHE_IP_BINDING` değerini `0.0.0.0` yapın, 11000 numaralı portu güvenlik duvarıyla koruyun ve reverse proxy belgesinde gösterildiği gibi proxy adresini Nextcloud'un `trusted_proxies` ayarına ekleyin.

## Yedekleme ve geri yükleme

AIO'nun yedekleme çözümü BorgBackup kullanır: yedekler artımlı, sıkıştırılmış ve şifrelidir. Yedek klasörü ideal olarak ayrı bir disk veya volume üzerindedir; AIO belgeleri `/mnt/backup` kullanır:

```bash
sudo mkdir -p /mnt/backup
```

AIO arayüzünde yedek konumu olarak `/mnt/backup` girin ve **Create Backup** seçeneğini seçin. AIO konteynerleri durdurur, Borg deposunu `/mnt/backup/borg` içine yazar ve konteynerleri yeniden başlatır. Arayüz ardından yedeklerin **şifreleme parolasını** gösterir. Onu AIO parolanızla birlikte saklayın: o olmadan geri yükleme mümkün değildir.

İlk yedekten sonra arayüzde **günlük yedeklemeyi** açabilirsiniz. Bir yedeği veya bütünlük kontrolünü kabuktan da başlatabilirsiniz:

```bash
sudo docker exec -it --env DAILY_BACKUP=1 nextcloud-aio-mastercontainer /daily-backup.sh
sudo docker exec --env DAILY_BACKUP=0 --env CHECK_BACKUP=1 --env STOP_CONTAINERS=0 nextcloud-aio-mastercontainer /daily-backup.sh
```

Kontrol sonucunu `nextcloud-aio-borgbackup` konteynerinin loglarına yazar. AIO varsayılan olarak son 7 günün yedeklerini, 4 haftalık ve 6 aylık yedeği saklar.

**Sunucu dışı kopyalar.** Aynı sunucudaki bir yedek, sunucuyu kaybetmenize karşı koruma sağlamaz. AIO doğrudan uzak bir Borg deposuna yazabilir: yerel yolu boş bırakın, depo adresini girin ve ilk denemeden sonra AIO'nun gösterdiği SSH genel anahtarını uzak hesaba ekleyin. Alternatif olarak `/mnt/backup/borg` klasörünü yedekleme zamanı dışında rsync veya rclone ile başka bir makineye kopyalayın; AIO README dosyası kopyalama sırasında deponun nasıl kilitleneceğini açıklar.

**Aynı sunucuda geri yükleme.** AIO arayüzünde listeden bir yedek seçin ve **Restore selected backup** seçeneğini seçin.

**Yeni bir sunucuda geri yükleme.** `borg` klasörünü yeni sunucuda `/mnt/backup` içine kopyalayın, Docker'ı kurun ve aynı `compose.yaml` dosyasını oluşturun, ardından yalnızca mastercontainer'ı `docker compose up -d` ile başlatın. Yeni AIO arayüzünde önceki bir AIO kurulumunu yedekten geri yükleme seçeneğini seçin, şifreleme parolasını ve `/mnt/backup` yolunu girin ve en son yedeği seçin. AIO bu süreçte yeni bir parola üretir; onu kaydedin.

## Nextcloud AIO güncelleme

AIO güncellemeleri her gün kontrol eder ve yöneticilere bildirir. Önce yedek alın, ardından:

1. AIO arayüzünü açın ve **Stop containers** seçeneğini seçin.
2. Bir mastercontainer güncellemesi varsa düğmenin altında değişiklik günlüğü bağlantısı içeren bir not ve ardından mastercontainer'ı güncelleme düğmesi görünür. Değişiklik günlüğünü okuyun ve güncellemeyi çalıştırın.
3. **Start and update containers** seçeneğini seçin. AIO yeni imajları çeker, Nextcloud'u ve uygulamalarını günceller ve her şeyi yeniden başlatır.

Günlük yedekleme açıkken arayüz, her başarılı yedekten sonra tüm konteynerleri kendiliğinden güncellemeyi de önerir. Bu mantıklı bir varsayılandır; çünkü her otomatik güncelleme taze bir yedeğin ardından gelir. Docker Engine'in kendisini apt ile güncel tutun.

## Sorun giderme

### Alan adı doğrulaması başarısız oluyor

AIO bu kuruluma alan adınız üzerinden ulaşamadı. `dig +short cloud.example.com` komutunun sunucunun adresini döndürdüğünü, 80 ve 443 numaralı portların başka bir web sunucusu tarafından kullanılmadığını (`sudo ss -tlnp | grep -E ":80 |:443 "`) ve kayıt için Cloudflare proxy'sinin kapalı olduğunu kontrol edin. Caddy arkasında site bloğunun `APACHE_PORT` ile aynı portu gösterdiğini kontrol edin.

### Arayüz IP adresinizin dahili veya ayrılmış olduğunu söylüyor

Bu durum, alan adı sunucunun içinden özel bir adrese çözümlendiğinde ortaya çıkar. AIO'nun SSS bölümü, alan adını mastercontainer için genel IP'ye eşlemeyi önerir: `compose.yaml` içindeki servise `"cloud.example.com:203.0.113.10"` girdisiyle `extra_hosts:` ekleyin (`docker run` içindeki `--add-host` karşılığı) ve `docker compose up -d` çalıştırın.

### AIO arayüzüne giriş yapamıyorsunuz

Nextcloud çalışırken ve beş yanlış paroladan sonra bir süre doğrudan giriş engellenir. `https://cloud.example.com/settings/admin/overview` üzerinden dolaylı girişi kullanın ya da önce konteynerleri durdurun; konteynerler durmuşken doğrudan giriş hiçbir zaman engellenmez.

### 80 veya 443 numaralı port zaten kullanımda

Başka bir web sunucusu, çoğunlukla ana makineye kurulmuş Apache, Nginx veya Caddy portu tutuyor ve Apache konteyneri başlayamıyor. Onu `sudo ss -tlnp | grep -E ":80 |:443 "` ile bulun. Ya o servisi durdurup devre dışı bırakın ya da yukarıda anlatılan reverse proxy kurulumuna geçin.

### Snap-based Docker installations are not supported

Adım 1'deki kontrol Snap'ten kurulmuş Docker buldu. Mevcut konteynerlerin verilerini yedekleyin, Snap paketini `sudo snap remove docker` ile kaldırın, Docker'ı Docker'ın deposundan kurun ve Adım 2'den yeniden başlayın.

## Sonraki adımlar

- AIO'yu elle kurulmuş bir sunucuyla [Nextcloud Server elle nasıl kurulur](/guides/install-nextcloud-manual) rehberinde karşılaştırın.
- Site bloklarının ve sertifikaların nasıl çalıştığını [Caddy reverse proxy olarak nasıl kurulur](/guides/caddy-reverse-proxy) rehberinde öğrenin.
- Yönetim arayüzlerine [WireGuard VPN sunucusu](/guides/wireguard-vpn-server) ile gizli yoldan erişin.
- Dosya eşitleme ve iş birliği için sunucuları [Nextcloud hosting](/nextcloud-hosting) sayfasında karşılaştırın.
- Gelişmiş seçenekler için [Nextcloud AIO belgelerinin](https://github.com/nextcloud/all-in-one) tamamını okuyun.

## Sık sorulan sorular

### Nextcloud AIO ile elle Nextcloud kurulumu arasındaki fark nedir?

AIO, Docker tabanlı resmi kurulum yöntemidir. Tek bir mastercontainer sizin için Nextcloud, veritabanı, Redis ve web sunucusu konteynerlerini oluşturur, günceller ve HTTPS ile yedeklemeyi ekler. Elle kurulum Apache, PHP ve veritabanı üzerinde tam denetim sağlar; ancak her parçanın bakımını kendiniz yaparsınız.

### AIO parolasını (passphrase) nerede bulurum?

AIO arayüzü parolayı yalnızca bir kez, 8080 numaralı porta ilk girişinizde gösterir. Onu bir parola yöneticisine kaydedin. Nextcloud çalışırken AIO arayüzünü, yönetici olarak oturum açmışken Nextcloud yönetici genel bakış sayfasından da açabilirsiniz.

### Nextcloud AIO'yu Caddy veya başka bir reverse proxy arkasında çalıştırabilir miyim?

Evet. mastercontainer'ı APACHE_PORT değeri 11000 gibi boş bir port ve APACHE_IP_BINDING değeri 127.0.0.1 olacak şekilde başlatın, yalnızca 8080 numaralı portu yayınlayın ve reverse proxy'nizi 127.0.0.1:11000 adresine yönlendirin. Ayrıntılar AIO'nun reverse proxy belgesindedir.

### Nextcloud AIO ne kadar RAM gerektirir?

AIO arayüzüne göre herhangi bir isteğe bağlı konteyner açıkken en az 2 GB RAM, çift çekirdekli CPU ve 40 GB sistem depolaması gerekir; ClamAV, Talk Recording veya tam metin arama ile 3 GB, her şey açıkken dört çekirdekli CPU ile 5 GB gerekir. AIO en düşük değerin en az 1 GB üzerini önerir.

### Nextcloud AIO hangi HyperDC sunucularında çalışır?

AIO 64 bit bir Linux sisteminde Docker Engine gerektirir; bu nedenle root erişimi olan bir HyperDC Linux VPS, VDS veya dedicated sunucuda çalışır. RAM'i açacağınız isteğe bağlı konteynerlere, diski ise dosyalarınıza göre boyutlandırın.

---

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