Aşağıdaki komutlar, Debian tabanlı sistemlerde Docker Engine, CLI ve Docker Compose eklentisinin kurulumu için gereklidir.
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc >/dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-pluginmkdir -p /home/dietpi/nextcloud
cd /home/dietpi/nextcloud
nano docker-compose.ymldocker-compose.yml dosyasına aşağıdaki içeriği yapıştırın:
version: '3'
services:
nextcloud:
image: nextcloud:apache
restart: unless-stopped
ports:
- 8080:80
volumes:
- nextcloud_data:/var/www/html
environment:
- NEXTCLOUD_ADMIN_USER=admin # 👤 Nextcloud admin kullanıcı adı
- NEXTCLOUD_ADMIN_PASSWORD=StrongPass123 # 🔒 Güçlü bir parola belirleyin
- SQLITE_DATABASE=nextcloud.db # 💾 SQLite veritabanı dosyası
volumes:
nextcloud_data:Kaydedip çıkın (CTRL + O, ENTER, CTRL + X).
sudo docker compose up -dBu komut Nextcloud servisini arka planda çalıştırır. 🐳
sudo mkdir -p /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt-get update
sudo apt-get install -y cloudflaredCloudflare'ın resmi paket deposunu ekleyip
cloudflaredaracını kurarız. ✅
cloudflared tunnel loginTarayıcıda açılan sayfadan hesabınıza giriş yaparak bağlantıyı yetkilendirirsiniz. 🔑
cloudflared tunnel create nextcloud-tunnelTünelinize bir isim verilir ve UUID ile kimlik bilgileri oluşturulur. UUID'yi not edin. 📝
🏠 Ev dizinine config (lokal test için):
Dosya yolu: /home/dietpi/.cloudflared/config.yml
mkdir -p /home/dietpi/.cloudflared
nano /home/dietpi/.cloudflared/config.ymltunnel: <TUNNEL_UUID> # Not ettiğiniz UUID ile değiştirin
credentials-file: /home/dietpi/.cloudflared/<TUNNEL_UUID>.json
url: http://localhost:8080 # Nextcloud'un çalıştığı yerel adres
Kaydedip çıkın (CTRL + O, ENTER, CTRL + X).
📡 Global yapılandırma (hostname yönlendirmesi için):
Dosya yolu: /etc/cloudflared/config.yml
mkdir -p /etc/cloudflared
nano /etc/cloudflared/config.ymltunnel: <TUNNEL_UUID>
credentials-file: /root/.cloudflared/<TUNNEL_UUID>.json
ingress:
- hostname: nextcloud.orneksite.com
service: http://localhost:8080
- service: http_status:404Kaydedip çıkın (CTRL + O, ENTER, CTRL + X).
Bu dosya, tünelin hangi alan adına ve servise yönlendirme yapacağını belirler. 🔄
cloudflared tunnel route dns nextcloud-tunnel nextcloud.orneksite.comTünelinizi alan adınıza bağlar. 🧭
cloudflared tunnel run nextcloud-tunnelTerminal kapatılsa da tünel çalışır, ancak güvenilir değildir.
⚠️
cloudflared service install
sudo systemctl start cloudflaredBu sayede sistem yeniden başlasa bile tünel otomatik çalışır. 🔄
-
Cloudflare Tunnel ile gelen trafik Cloudflare sertifikaları ile HTTPS olarak korunur. 🔒
-
Cloudflare panelinden:
- SSL/TLS Ayarları > Edge Certificates kısmından
Always Use HTTPS seçeneğini aktif edin.
Böylece HTTP istekler otomatik olarak HTTPS'ye yönlendirilir. 🔁
- SSL/TLS Ayarları > Edge Certificates kısmından
Bu, dış erişimde güvenliği artırır ve SSL problemlerini önler. ✔️
docker psdocker exec -it nextcloud-app bashcd /var/www/html/config
apt update
apt install nano
ls -l
nano config.phpconfig.php dosyasında trusted_domains kısmını aşağıdaki gibi güncelleyin:
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'nextcloud.orneksite.com', // Cloudflare tunnel ile erişilen domain
),docker compose restart- 📦 Nextcloud Docker ile kuruldu
- ☁️ Cloudflare Tunnel ile güvenli dış erişim sağlandı
- 🌐 DNS ile alan adı tünele bağlandı
- 🔄 Cloudflared sistem servisi yapıldı, otomatik başlatıldı
- 🔒 Cloudflare panelinden HTTPS zorlandı
- 🛡️ Nextcloud'da trusted_domains ayarlandı
Her adımı doğru uygularsan, güvenli ve sürekli erişilebilir Nextcloud ortamın hazır! 🚀
Teşekkürler hocam 🎉👍🏼