İçeriğe geç

EğitimlerKendi sunucunuzdaki uygulamalar

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.

  • 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 — Docker'ı ve güvenlik duvarını kontrol edin
  3. Adım 2 — mastercontainer'ı başlatın
  4. Adım 3 — AIO arayüzünü açın ve parolayı kaydedin
  5. Adım 4 — Alan adınızı girin
  6. Adım 5 — İsteğe bağlı konteynerleri seçin ve Nextcloud'u başlatın
  7. Adım 6 — Hesapları güvenli hale getirin
  8. AIO'yu Caddy arkasında çalıştırma
  9. Yedekleme ve geri yükleme
  10. Nextcloud AIO güncelleme
  11. Sorun giderme
  12. Alan adı doğrulaması başarısız oluyor
  13. Arayüz IP adresinizin dahili veya ayrılmış olduğunu söylüyor
  14. AIO arayüzüne giriş yapamıyorsunuz
  15. 80 veya 443 numaralı port zaten kullanımda
  16. Snap-based Docker installations are not supported
  17. Sonraki adımlar

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.

Ö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 ve SSH anahtarlarını ayarlayın rehberlerine bakın.
  • Docker'ın deposundan kurulmuş Docker Engine ve Compose eklentisi: Ubuntu veya 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.

KaynakEn düşük (resmi)Önerilen başlangıç
RAMHerhangi bir isteğe bağlı konteynerle 2 GB; ClamAV, Talk Recording veya tam metin arama ile 3 GB; her şey açıkken 5 GBAIO'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 vCPU2 ile 4 vCPU
Disk40 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.

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.

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.

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

Sunucuda 80 ve 443 numaralı portlarda zaten Caddy (bkz. Caddy reverse proxy olarak nasıl kurulur) 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

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.

Kaynaklar

Şifre Oluştur

Lütfen onaylayın