Nextcloud; dosya eşitleme ve paylaşım, takvim, kişiler, çevrim içi ofis ve görüntülü görüşme gibi özellikleri tek bir yerde toplayan, kendi sunucunuza kurabileceğiniz bir iş birliği platformudur. Dosyalarınızı üçüncü taraf bir bulut servisine emanet etmek yerine kendi VPS'inizde tutmak istiyorsanız en bilinen seçeneklerden biridir.
Bu rehberde Nextcloud'un resmî kurulum yöntemi olan All-in-One (AIO) ile Ubuntu 24.04 üzerine kurulum yapıyor, önüne Nginx ve Let's Encrypt sertifikası koyuyoruz. Ayrıca AIO dışında kurulum yapanlar için güvenilen alan adları, arka plan görevleri, yükleme sınırları ve bellek önbelleği ayarlarını Nextcloud yönetici kılavuzuna göre özetliyoruz.
Nextcloud Kimler İçin ve Lisansı Ne?
Nextcloud sunucu yazılımı GNU AGPL v3 lisanslıdır (Nextcloud Server COPYING (AGPL-3.0)). Aile veya küçük ofis için dosya bulutu kurmak isteyenler, verisini kendi altyapısında tutması gereken kurumlar ve Google Drive ya da OneDrive'a alternatif arayan ekipler için uygundur. AIO belgesi, AIO ile 100 kullanıcıya kadar ücretsiz kullanılabildiğini, daha fazlası için Nextcloud Enterprise gerektiğini belirtir.
Hangi Kurulum Yöntemi?

nextcloud.com/install sayfası birkaç yol sunar. Aralarındaki fark, bakımı kimin yaptığı ve ne kadar hazır geldiğidir:
| Yöntem | Bakımı yapan | Ne zaman seçilir? |
|---|---|---|
| All-in-One (AIO) | Nextcloud GmbH | Önerilen yol: veritabanı, Redis, yedekleme ve güncellemeler tek arayüzden |
| Topluluk Docker imajı | Topluluk gönüllüleri | Kendi Compose yığınınızı ayrıntılı kurmak istiyorsanız (<a href="https://github.com/nextcloud/docker" target="_blank" rel="noopener">nextcloud/docker (topluluk imajı)</a>) |
| Elle kurulum | Siz | Apache veya Nginx ile PHP-FPM yığınını kendiniz yönetmek istiyorsanız |
| Snap ve diğer paketler | Topluluk | Ev kullanımı ve hızlı deneme |
AIO tek bir "mastercontainer" çalıştırır; bu konteyner Docker soketi üzerinden Nextcloud, PostgreSQL, Redis, Apache ve isteğe bağlı Nextcloud Office, Talk, ClamAV gibi diğer konteynerleri oluşturur ve günceller. BorgBackup tabanlı yedekleme de arayüzde hazır gelir. Bu rehberde AIO'yu, mevcut bir Nginx'in arkasında çalıştırmak için Nextcloud AIO reverse-proxy.md belgesini izliyoruz.
Asgari Gereksinimler
- Yönetici kılavuzu 64 bit işlemci, işletim sistemi ve PHP'yi şiddetle önerir; Ubuntu 24.04 LTS desteklenen sistemler arasındadır.
- Bellek: Nextcloud işlem başına en az 128 MB RAM ister, işlem başına 512 MB önerir. AIO varsayılan olarak her PHP işlemine en fazla 512 MB ayırır.
- AIO belgesi KVM tabanlı sanallaştırmayı önerir ve SSD depolamayı tavsiye eder.
- Snap ile kurulmuş Docker AIO tarafından desteklenmez; Docker'ı resmî apt deposundan kurun.
- Desteklenen mimariler: x86_64 ve arm64.
Toplam RAM ihtiyacı kullanıcı sayısına, açtığınız uygulamalara ve dosya hareketine göre çok değişir; kılavuz da sabit bir sayı vermez. Office, Talk veya ClamAV gibi her ek konteyner ayrıca kaynak tüketir.
1. Docker'ı Kurun ve Snap Olmadığını Doğrulayın
Docker kurulumu için n8n rehberimizde de kullandığımız resmî apt deposu adımlarını izleyin (Docker Docs: Install Docker Engine on Ubuntu). Ardından AIO belgesindeki kontrolü çalıştırın; çıktıda /var/snap/docker/ görmüyorsanız devam edebilirsiniz.
sudo docker info | grep "Docker Root Dir" | grep "/var/snap/docker/"2. Nginx ve Let's Encrypt
Alan adınızın DNS panelinde cloud.example.com gibi bir alt alan adı için sunucu IP'nize A kaydı (IPv6 kullanıyorsanız AAAA kaydı) oluşturun. Aşağıdaki yapılandırma, AIO belgesindeki Nginx şablonunun sadeleştirilmiş hâlidir; AIO'nun Apache konteynerine 127.0.0.1:11000 üzerinden bağlanır.
# /etc/nginx/sites-available/cloud.example.com
map $http_upgrade $connection_upgrade {
default upgrade;
"" "";
}
server {
listen 80;
listen [::]:80;
server_name cloud.example.com;
proxy_buffering off;
proxy_request_buffering off;
client_max_body_size 0;
# AIO varsayılan NEXTCLOUD_MAX_TIME 3600 sn; Nginx biraz daha uzun beklesin
proxy_read_timeout 3610s;
location / {
proxy_pass http://127.0.0.1:11000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}sudo apt install nginx
sudo ln -s /etc/nginx/sites-available/cloud.example.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --nginx -d cloud.example.comclient_max_body_size 0 satırı Nginx'in istek gövdesi sınırını kaldırır; bu satır olmadan büyük yüklemeler 413 Request Entity Too Large hatasıyla kesilir. proxy_buffering off ise kılavuzun belirttiği, ön Nginx'in indirmeleri 1 GB ile sınırlaması sorununu önler. Server block yapısı için Nginx server block rehberimize, sertifika yenileme için Let's Encrypt rehberimize bakın.
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Yalnızca Talk konteynerini etkinleştirirseniz:
# sudo ufw allow 34783. AIO Mastercontainer'ı Başlatın
AIO belgesi üretim için docker run yerine Compose dosyası kullanmayı önerir. Aşağıdaki dosya, Nextcloud AIO compose.yaml örneğinin ters vekil senaryosuna göre düzenlenmiş hâlidir: 80 ve 8443 portları kaldırıldı, APACHE_PORT ve APACHE_IP_BINDING eklendi. 127.0.0.1 bağlaması, belgeye göre yalnızca ters vekil aynı sunucuda çalışıp localhost üzerinden bağlanıyorsa önerilir.
# /opt/nextcloud-aio/compose.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 # bu adı değiştirmeyin
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config # bu adı değiştirmeyin
- /var/run/docker.sock:/var/run/docker.sock:ro
network_mode: bridge
ports:
- "8080:8080" # AIO yönetim arayüzü (kendinden imzalı sertifika)
environment:
APACHE_PORT: 11000 # Nginx'in bağlanacağı port
APACHE_IP_BINDING: 127.0.0.1
# NEXTCLOUD_UPLOAD_LIMIT: 1G
# NEXTCLOUD_MEMORY_LIMIT: 512M
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer # bu adı değiştirmeyinsudo mkdir -p /opt/nextcloud-aio && cd /opt/nextcloud-aio
sudo nano compose.yaml
sudo docker compose up -d
sudo docker logs nextcloud-aio-mastercontainer4. AIO Arayüzünde Kurulum

https://SUNUCU_IP:8080adresini açın. Belge, bu porta her zaman alan adıyla değil IP adresiyle girmenizi ister; aksi hâlde HSTS ileride erişimi engelleyebilir. Kendinden imzalı sertifika uyarısı beklenen bir durumdur.- Arayüz size bir AIO parolası (passphrase) gösterir. Bunu bir parola yöneticisine kaydedin; panele girişin tek anahtarıdır.
- Alan adınızı (
cloud.example.com) girin ve doğrulayın. AIO, alan adının sunucuya ulaştığını kontrol eder. - İsteğe bağlı konteynerleri (Office, Talk, ClamAV, Imaginary vb.) seçin. Her biri ek bellek ister; ihtiyacınız olmayanları açmayın.
- Konteynerleri başlatın. Hazır olduğunda arayüzdeki "initial Nextcloud credentials" bölümünde ilk yönetici kullanıcı adını (
admin) ve parolasını görürsünüz.
Nextcloud çalışırken AIO paneline doğrudan parola ile giriş engellenir. Panele girmek için Nextcloud'a yönetici olarak giriş yapıp https://cloud.example.com/settings/admin/overview sayfasındaki düğmeyi kullanırsınız. Bu, panelin parola denemelerine karşı korunmasına yardımcı olur.
5. İlk Giriş Sonrası Sertleştirme
- İlk yönetici parolasını hemen değiştirin ve yönetici hesabı için iki adımlı doğrulama uygulamalarından birini etkinleştirin.
- Yönetim ayarlarındaki Genel bakış sayfasında güvenlik ve kurulum uyarılarını okuyun.
- Telefon bölgesi uyarısını aşağıdaki
occkomutuyla giderin. - Kullanmayacağınız uygulamaları kapatın; her açık uygulama saldırı yüzeyini ve bellek tüketimini artırır.
- SSH ve sunucu katmanı için VPS güvenlik sertleştirme rehberimizi uygulayın.
# occ komutlarını AIO içinde çalıştırma kalıbı
sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ status
# "missing default phone region" uyarısı için
sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value="TR"
# Güvenilen alan adlarını görmek için
sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:system:get trusted_domains
# Kaba kuvvet korumasına takılan bir IP'yi açmak için
sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ security:bruteforce:reset IP_ADRESIAIO Dışında Kuruyorsanız: Kılavuzdaki Temel Ayarlar

AIO bu ayarların çoğunu kendi yönetir. Topluluk Docker imajı veya elle kurulum yapıyorsanız aşağıdaki dört konuyu kendiniz ele almanız gerekir.
Güvenilen alan adları (trusted_domains)
Nextcloud'a erişmek için kullanılan her adres config.php dosyasındaki trusted_domains listesinde olmalıdır; listede olmayan bir adresle girenler hata sayfası görür (Nextcloud Admin Manual: Trusted domains). IP adresi, alan adı ve *.example.com gibi joker desenler kullanılabilir. localhost, 127.0.0.1 ve [::1] her zaman güvenilir sayılır.
Arka plan görevleri (cron)
Nextcloud varsayılan olarak AJAX yöntemini kullanır; her sayfa ziyaretinde bir görev çalışır ve kılavuz bunu en az güvenilir yöntem olarak tanımlar. Önerilen yöntem sistem cron'udur. Web sunucusu kullanıcısı adına beş dakikada bir cron.php çalıştırılır; isterseniz kılavuzdaki systemd timer örneğini de kullanabilirsiniz (Nextcloud Admin Manual: Background jobs). Cron sözdizimi için cron job rehberimize bakın.
# Web sunucusu kullanıcısının crontab'ını açın
sudo crontab -u www-data -e
# Şu satırı ekleyin (yolu kendi kurulumunuza göre düzeltin)
*/5 * * * * php -f /var/www/nextcloud/cron.phpYükleme sınırları
Kılavuza göre varsayılan yükleme sınırı 512 MB'tır. Masaüstü ve mobil istemciler dosyaları parçalara bölerek yüklediği için bu sınırdan etkilenmez. Web arayüzü için PHP tarafında upload_max_filesize, post_max_size, max_input_time ve max_execution_time; Nginx tarafında client_max_body_size ve fastcgi_read_timeout değerlerini birlikte ayarlayın (Nextcloud Admin Manual: Uploading big files). AIO'da ise sınır NEXTCLOUD_UPLOAD_LIMIT (varsayılan 1G, parçasız yüklemeler için) ve süre NEXTCLOUD_MAX_TIME (varsayılan 3600 sn) değişkenleriyle değiştirilir.
Bellek önbelleği
Kılavuz, küçük veya kişisel sunucular için yalnızca APCu'yu; tek sunuculu kurumsal kurulumlar için yerel önbellekte APCu, dağıtık önbellek ve dosya kilitleme için Redis'i önerir (Nextcloud Admin Manual: Memory caching). Belleğiniz azsa Redis'i her ikisi için kullanmanızı söyler. AIO, APCu ve Redis'i hazır getirir. Redis hakkında ayrıntı için Redis rehberimize bakın.
// config/config.php içinden ilgili bölümler
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'cloud.example.com',
),
// Tek sunuculu kurulum için önerilen önbellek ayarı
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',Güncelleme
AIO arayüzünde yeni konteyner sürümü bulunduğunda bildirim görürsünüz. Önce Stop containers, ardından Start and update containers düğmesine basarsınız. Mastercontainer'ın kendi güncellemesi de konteynerler durdurulduğunda aynı panelde çıkar. AIO, yeni bir ana Nextcloud sürümünü en az ilk yama sürümü çıkana ve önemli uygulamalar uyumlu hâle gelene kadar bekletir. Belge, her güncellemeden önce yerleşik yedeklemeyle yedek almanızı önerir.
Yedekleme
AIO'nun yedekleme özelliği BorgBackup tabanlıdır: yedekler artımlı, sıkıştırılmış ve şifrelidir. İlk yedekten sonra günlük yedeklemeyi ve isteğe bağlı otomatik güncellemeyi açabilirsiniz. Yedekleme hedefi olarak sunucuya bağlı ayrı bir disk veya uzak bir Borg deposu verebilirsiniz.
- Arayüzün gösterdiği yedek şifreleme anahtarını güvenli bir yere kaydedin. Anahtar olmadan yedekten geri yükleme yapılamaz.
- Yedekleri Nextcloud verisinin bulunduğu diskte tutmayın; uzak bir Borg deposu veya ayrı bir disk kullanın.
- Harici depolama uygulamasıyla bağlanan klasörler AIO yedeğine dahil edilmez; bunları ayrıca yedekleyin.
- Elle kurulumda kılavuz beş şeyin yedeklenmesini ister:
config,datavethemeklasörleri, varsa özel uygulamalar klasörü ve veritabanı. Tutarlılık için önceocc maintenance:mode --onile bakım moduna alın (Nextcloud Admin Manual: Backup).
Genel yedekleme yaklaşımı için rsync ile yedekleme ve veritabanı yedekleme stratejileri yazılarımıza bakabilirsiniz.
Sık Karşılaşılan Sorunlar
| Belirti | Olası neden | Çözüm |
|---|---|---|
| Alan adı doğrulaması başarısız | DNS yanlış, 443 kapalı veya Nginx 11000'e yönlendirmiyor | A kaydını, UFW'yi ve Nginx yapılandırmasını kontrol edin |
| 502 Bad Gateway | APACHE_PORT ile Nginx portu uyuşmuyor ya da konteynerler başlamadı | Portları eşleyin; docker logs nextcloud-aio-mastercontainer çıktısına bakın |
| 413 Request Entity Too Large | Nginx gövde sınırı | client_max_body_size 0 ekleyin |
| "Güvenilmeyen alan adı" hatası | Adres trusted_domains listesinde değil | Doğru alan adıyla girin; AIO'da alan adı değişikliği belgedeki yöntemle yapılır |
| Giriş birden reddediliyor | Kaba kuvvet koruması IP'yi engelledi | occ security:bruteforce:reset komutunu çalıştırın |
| Panel 8080 tarayıcıda açılmıyor | Alan adıyla girildi, HSTS engelliyor | Panele IP adresiyle girin |
Sık Sorulan Sorular
AIO mu, topluluk Docker imajı mı?
Nextcloud GmbH'nin bakımını yaptığı ve resmî yöntem olarak sunduğu AIO, yedekleme ve güncellemeyi hazır getirdiği için çoğu VPS kullanıcısına daha uygundur. Topluluk imajı daha esnektir ancak veritabanı, Redis, cron ve yedeklemeyi sizin kurmanız gerekir.
AIO Docker soketine neden erişiyor, riskli mi?
Mastercontainer diğer konteynerleri oluşturmak ve güncellemek için Docker soketini salt okunur bağlar. Docker soketine erişen bir süreç pratikte sunucu üzerinde geniş yetkiye sahiptir. Bu yüzden 8080 panelini dışarıya kapatmanız önemlidir. Soket erişimi istemeyenler için AIO'nun ayrı bir "manual-install" yöntemi vardır.
Nextcloud'u alt klasörde (example.com/nextcloud) çalıştırabilir miyim?
AIO ile hayır. AIO SSS bölümü bunun desteklenmediğini ve eklenmeyeceğini açıkça yazar; cloud.example.com gibi ayrı bir alt alan adı kullanmanızı ister. Elle kurulumda kılavuzda Nginx alt klasör örneği bulunur, ancak ayrı alt alan adı yine de en sorunsuz yoldur.
Ne kadar disk ayırmalıyım?
Disk ihtiyacı tamamen saklayacağınız dosyalara bağlıdır. Sürüm geçmişi, çöp kutusu ve önizlemeler de yer kaplar; yedekler için ayrıca alan planlayın. Disk dolduğunda neler yapılacağı için disk doldu hatası rehberimize bakın.
Nextcloud'un erişilebilir olduğunu nasıl izlerim?
Dış bir sunucudan HTTPS kontrolü yapan bir izleme aracı kullanın. Uptime Kuma rehberimiz bunun için uygundur; şifreleriniz için ise Vaultwarden kurabilirsiniz.
Yazılım ve hizmet adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen projeler veya şirketlerle ortaklık ilişkisi bulunduğu anlamına gelmez.
İlgili içerikler: Vaultwarden kurulumu · Uptime Kuma ile site izleme · n8n kurulumu · Portainer ile Docker yönetimi · Reverse proxy nedir? · Let's Encrypt SSL kurulumu · rsync ile sunucu yedekleme