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
- Ön koşullar
- Adım 1 — Docker'ı ve güvenlik duvarını kontrol edin
- Adım 2 — mastercontainer'ı başlatın
- Adım 3 — AIO arayüzünü açın ve parolayı kaydedin
- Adım 4 — Alan adınızı girin
- Adım 5 — İsteğe bağlı konteynerleri seçin ve Nextcloud'u başlatın
- Adım 6 — Hesapları güvenli hale getirin
- AIO'yu Caddy arkasında çalıştırma
- Yedekleme ve geri yükleme
- Nextcloud AIO güncelleme
- Sorun giderme
- Alan adı doğrulaması başarısız oluyor
- Arayüz IP adresinizin dahili veya ayrılmış olduğunu söylüyor
- AIO arayüzüne giriş yapamıyorsunuz
- 80 veya 443 numaralı port zaten kullanımda
- Snap-based Docker installations are not supported
- 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.
sudoyetkisi 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.comgibi 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:
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:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443
sudo ufw allow 8443/tcp
sudo ufw enableAdım 2 — mastercontainer'ı başlatın
AIO üretim için bir Compose dosyası önerir. Bir proje klasörü ve dosyayı oluşturun:
sudo mkdir -p /opt/nextcloud-aio
sudo chown $USER:$USER /opt/nextcloud-aio
cd /opt/nextcloud-aio
nano compose.yamlResmi 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:
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_mastercontainer80 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:
docker compose up -d
docker compose ps
docker logs -f nextcloud-aio-mastercontainerdocker 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:
curl -I https://cloud.example.comGeç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:
ports:
- "8080:8080"
environment:
APACHE_PORT: 11000
APACHE_IP_BINDING: 127.0.0.1APACHE_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:
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:
sudo systemctl reload caddy
docker compose up -dAlan 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:
sudo mkdir -p /mnt/backupAIO 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:
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.shKontrol 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:
- AIO arayüzünü açın ve Stop containers seçeneğini seçin.
- 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.
- 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 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 rehberinde öğrenin.
- Yönetim arayüzlerine WireGuard VPN sunucusu ile gizli yoldan erişin.
- Dosya eşitleme ve iş birliği için sunucuları Nextcloud hosting sayfasında karşılaştırın.
- Gelişmiş seçenekler için Nextcloud AIO belgelerinin 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.