Raspberry Pi Nextcloud Sunucusu Nasıl Kurulur

Bu yazı, PiMyLifeUp - How to Setup a Raspberry Pi Nextcloud Server kaynağından Türkçe'ye çevrilerek hazırlanmıştır.

Bu proje için, bir Raspberry Pi NextCloud Sunucusunu nasıl kurup yapılandıracağınızı göstereceğiz. Bu sunucu, kendi kişisel "cloud" depolama sisteminiz olarak görev yapabilir.

Raspberry Pi Nextcloud Sunucusu

Zaman geçtikçe, 3. taraf şirketlere karşı kendi gizliliğinizi korumak giderek zorlaşıyor. Nextcloud gibi yazılımlar tam da burada devreye giriyor, çünkü hiçbir 3. taraf kontrolörü olmadan dosyalarınız üzerinde tam kontrol sahibi olmanızı sağlıyor.

Veriniz yerel ağınızda saklanacağından, yerel ağınız dışından dosya yüklerken ve indirirken çok fazla bant genişliği kullanacağınızı hatırlamak önemlidir. İnternet bağlantınız harika değilse, onu yerel ağınız dışında kullanmayı planlıyorsanız en iyi deneyimi alamayabilirsiniz.

Bu tanıdık geliyorsa, muhtemelen öyledir çünkü Nextcloud, daha önce ele aldığım owncloud yazılımının aktif olarak sürdürülen bir fork'udur. Geliştirme süresi uzadıkça bu iki yazılım paketi muhtemelen daha da farklılaşacak, ikisine de bakıp hangisiyle devam edeceğinize karar vermenizi öneririm.

Nextcloud hakkında daha fazla bilgi edinmek isterseniz, Nextcloud web sitesine göz atabilirsiniz.

Not: Bir Raspberry Pi'deki USB portları genellikle harici bir sabit diski güçlendiremez. Bunun durumunuz olduğunu ve sabit diskinizin harici bir güç kaynağı kullanmadığını fark ederseniz, Pi için güçlendirilmiş bir USB hub satın almayı düşünmenizi öneririm.

Apache ve PHP Kurma

Raspberry Pi'de Nextcloud'u çalıştırmak için, önce Apache ve PHP'yi kurup ayarlamamız gerekecek.

Bunları kurmaya çok derinlemesine girmeyeceğiz çünkü bu eğitimde ufak bileşenlerdir.

Bir Web Sunucusu kurma hakkında daha fazla bilgi edinmek isterseniz, bunu nasıl yapacağınızı gösteren eğitimimizi takip ettiğinizden emin olun.

En iyi performans için Raspbian lite kullanmanızı öneririm ancak normal Raspbian da aynı şekilde iyi çalışacaktır.

Bunların hepsini nasıl ayarlayacağınız hakkında bilgiye ihtiyacınız varsa Pi işletim sistemleri bölümündeki rehbere göz atın.

Bu eğitim için, PHP 8'in en son mevcut sürümünü kullanacağız.

1. Başlamak için, önce aşağıdaki komutla paket depolarımızı güncelleyelim:

sudo apt update
sudo apt upgrade

2. Bu yapıldıktan sonra, şimdi aşağıdaki komutla apache'yi kuralım:

sudo apt install apache2

Apache2'nin başarıyla çalıştığından emin olmak için Pi'nizin IP adresine giderek kontrol edebilirsiniz, bu varsayılan bir Apache Sayfası yüklemelidir.

Raspberry Pi'nizin yerel IP adresinin ne olduğundan emin değilseniz terminale hostname -I yazın.

3. Bu eğitim için, yazıldığı sırada Nextcloud için önerilen sürüm olduğundan PHP 8.4 kullanacağız.

PHP'nin bu sürümüne erişim kazanmak için, rehberimizi takip ederek üçüncü taraf bir PHP deposu eklemeniz gerekecek.

4. Apache2 artık Raspberry Pi'ye kurulduğuna göre, sadece PHP'yi ve birkaç paketini kurmamız gerekiyor.

PHP'yi ve ihtiyacımız olan paketleri kurmak için, aşağıdaki komutu çalıştırın.

sudo apt install -y php8.4 php8.4-gd php8.4-sqlite3 php8.4-curl php8.4-zip php8.4-xml php8.4-mbstring php8.4-mysql php8.4-bz2 php8.4-intl php8.4-smbclient php8.4-gmp php8.4-bcmath libapache2-mod-php8.4

5. Apache ve PHP artık kurulduğuna göre, yapmamız gereken bir son şey daha var, o da Apache'yi yeniden başlatmak.

Bunu şimdi aşağıdaki komutu kullanarak yapabilirsiniz:

sudo service apache2 restart

Nextcloud için Bir MySQL Veritabanı ve Kullanıcısı Kurma

Bu bölümde, Nextcloud'un verilerini saklamak için kullanacağı bir kullanıcı ve veritabanını nasıl kuracağınızı göstereceğiz.

1. Raspberry Pi'mizde Nextcloud'u kurmaya devam edebilmemiz için, tüm verilerini saklaması için bir veritabanı sunucusu kurmamız gerekecek.

Bu rehber için, MariaDB'ye (MySQL'e bir alternatif) güveneceğiz. Devam etmeden önce Raspberry Pi'nizde MariaDB kurma rehberimizi takip edin.

https://pimylifeup.com/raspberry-pi-mysql/

2. MySQL sunucusu artık Raspberry Pi'mize kurulduğuna göre, şimdi aşağıdaki komutu çalıştırarak komut satırı arayüzünü başlatmak isteyeceğiz.

Nextcloud'un verilerini saklaması için bir kullanıcı ve veritabanı oluşturmak üzere bu komut satırı aracını kullanacağız.

sudo mysql -u root

3. Araca giriş yaptıktan sonra, bir veritabanı oluşturarak başlayabiliriz.

Aşağıdaki komutu çalıştırarak "nextclouddb" adlı bu veritabanını oluşturacağız.

CREATE DATABASE nextclouddb;

4. Bir sonraki adımımız, yeni veritabanımızla etkileşim kurmak için kullanacağımız bir kullanıcı oluşturmaktır.

Aşağıdaki komutu çalıştırarak "nextclouduser" adlı bir kullanıcı oluşturacağız. "<PAROLA>" kısmını güvenli bir parolayla değiştirdiğinizden emin olun ve daha sonra kullanmak üzere not edin.

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY '<PAROLA>';

Örneğin, bu kullanıcıyı "pimylifeup" parolasıyla oluşturuyor olsaydınız, komut aşağıda gösterdiğimiz gibi görünürdü.

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'pimylifeup';

5. Kullanıcımız oluşturulduğuna göre, şimdi ona veritabanımızla etkileşim kurma izinleri vermemiz gerekiyor.

Bunu aşağıdaki komutu çalıştırarak yapabiliriz.

GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextclouduser'@'localhost';

Bu komut, "nextclouduser" kullanıcısına "nextclouddb" veritabanı ve tüm tabloları üzerinde tüm ayrıcalıkları verir.

6. Son görevimiz, ayrıcalık tablosunu temizlemektir (flush).

Ayrıcalıkları temizlemek için yapmamız gereken tek şey aşağıdaki komutu çalıştırmaktır.

FLUSH PRIVILEGES;

7. Bu yapıldıktan sonra, artık Raspberry Pi'mize Nextcloud kurmaya devam edebiliriz.

Terminalde aşağıdaki komutu kullanarak MySQL komut satırı arayüzünden çıkın.

exit

Raspberry Pi'nize Nextcloud İndirme

Nextcloud'u Raspberry Pi'ye almak oldukça basittir, esas olarak zip dosyasını web sitelerinden indirmeyi, çıkarmayı ve ardından bazı şeyler yapmayı içerir.

1. Başlamak için, önce aşağıdaki dizin değiştirme komutuyla html dizinimize geçelim.

cd /var/www/

2. Şimdi Nextcloud'un en son sürümünü cihazımıza indirebiliriz.

Bunu yapmak için, en son sürümü mevcut klasöre indirmek üzere wget kullanacağız.

sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2

3. Nextcloud artık Raspberry Pi'mize indirildiğine göre, arşivi çıkaralım.

Arşivi "tar" kullanarak çıkarmak için aşağıdaki komutu kullanmamız gerekiyor.

sudo tar -xvf latest.tar.bz2

4. Şimdi Nextcloud'un içinde çalışması için bir veri dizini oluşturmamız gerekiyor, Nextcloud'un ilk kurulumu için bu klasörü "/var/www/" dizinimizde oluşturmalıyız.

Aşağıda gösterildiği gibi mkdir komutunu kullanarak dizini oluşturun:

sudo mkdir -p /var/www/nextcloud/data

5. Şimdi aşağıdaki chown komutunu çalıştırarak tüm Nextcloud klasörü ve içindeki her şey üzerinde doğru kullanıcı ve gruba kontrol verelim.

sudo chown -R www-data:www-data /var/www/nextcloud/

6. Son olarak ona doğru izinleri vermemiz gerekiyor, tekrar aşağıdaki chmod komutunu çalıştırın.

sudo chmod 750 /var/www/nextcloud/data

Nextcloud için Apache'yi Yapılandırma

Ardından, Nextcloud için ".htaccess" dosyasıyla ilgilenmemiz gerekiyor.

Nextcloud'u varsayılan Apache2 dizini "/var/www/"e kurduğumuzdan, ".htaccess" dosyasının ayarları geçersiz kılmasına izin vermek için Apache2'de bazı ayarları değiştirmemiz gerekecek.

Bunu yalnızca Nextcloud dizini için yönetmek üzere, Apache için yeni bir yapılandırma dosyası oluşturacağız.

1. Başlamak için, Nextcloud için yapılandırma değişikliklerimizi saklayacak bir dosya oluşturalım.

Terminalde aşağıdaki komutu kullanarak bu yapılandırma dosyasını yazmaya başlayabilirsiniz. Burada Nano kullanıyoruz çünkü kullanımı en kolay olanlardan biri.

sudo nano /etc/apache2/sites-available/nextcloud.conf

2. Şimdi daha ileri gitmeden önce, Nextcloud'un "/nextcloud" dizini altında mı yoksa kendi alan adında veya alt alan adında mı çalışmasını istediğinize karar vermeniz gerekecek.

Bir Dizin Altında Çalıştırma

NextCloud'un birisi "/nextcloud"a her gittiğinde erişilebilir olmasını istiyorsanız, yapmanız gereken tek şey aşağıdaki satırları dosyaya yazmaktır.

Bu yapılandırma basittir ve birisi Pi'nizin IP adresine, ardından "/nextcloud"a her gittiğinde arayüzüyle karşılaşacağı anlamına gelir.

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews

  <IfModule mod_dav.c>
    Dav off
  </IfModule>

</Directory>

NextCloud'u Kendi Alan Adında Çalıştırma

Nextcloud'un ayrı bir alan adı veya alt alan adı altında çalışmasını tercih ederseniz, aşağıda gösterildiği gibi bir sanal host oluşturmanız gerekir.

Bu yapılandırma satırlarını yazarken "<ALANADI>" kısmını kullanmayı planladığınız alan adıyla değiştirdiğinizden emin olun. Örneğin, bunu "nextcloud.pimylifeup.com" ile değiştirirdik.

<VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  <ALANADI>

  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

3. Bu satırlar temel olarak Apache2'ye "/var/www/nextcloud/" klasörü içinde kendini nasıl yöneteceğini söyler.

Bu değişiklikler, Apache2'nin Nextcloud dizini içindeki ".htaccess" dosyalarını okumasına ve kullanmasına izin verecektir.

4. Şimdi CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedip çıkabiliriz.

5. Dosya oluşturulduğuna göre, şimdi Apache'ye onu kullanmasını söylememiz gerekiyor.

Bunu, a2ensite komutunu ve ardından "nextcloud.conf"u kullanarak yapabiliriz.

sudo a2ensite nextcloud.conf

6. Şimdi güncellenmiş yapılandırma dosyasını okumaya zorlamak için Apache2'yi yeniden başlatmamız gerekiyor. Bunu aşağıdaki komutla kolayca yapabiliriz:

sudo systemctl reload apache2

Bu yapıldıktan sonra, artık Nextcloud yazılımını kendi web arayüzü içinde kurmaya geçebilirsiniz.

Nextcloud İlk Kurulum

1. Bunu bitirdiğimize göre, artık sonunda Nextcloud'un kendisine gidip kurulum sürecini başlatabiliriz.

Başlamak için Raspberry Pi'nizin IP adresine, ardından "/nextcloud" yoluna gidin. Pi'nizin IP adresini bilmiyorsanız, hostname komutu onu almak için harika bir yoldur.

"<IPADRESI>" kısmını Raspberry Pi'nizinkiyle değiştirmeyi unutmayın.

http://<IPADRESI>/nextcloud

Lütfen bunu bir alan adı altında çalıştırıyorsanız, yukarıda gösterdiğimiz yerine oraya gitmeniz gerektiğini unutmayın.

2. Artık aşağıdaki ekranla karşılaşacaksınız.

Burada admin hesabınız için kullanmayı planladığınız Kullanıcı Adı ve Parolayı (1.) yazmanız gerekecek.

Nextcloud dosya hizmetinize ağınız dışından erişime izin vermeyi planlıyorsanız, uzun ve güvenli bir parola kullandığınızdan emin olun.

Ardından, veritabanı sunucumuz için detayları belirtmemiz gerekiyor. Bu seçeneklere ulaşmak için "Storage & Database" seçeneğine tıklamanız gerekecek (2.).

Şimdi kullanmak istediğimiz veritabanı türünü seçmeniz gerekiyor. Bir SQL sunucusu kullandığımızdan "MySQL/MariaDB" (3.) seçeneğine tıklayın.

Son olarak veritabanı sunucumuz için detayları girmemiz gerekiyor. Girmemiz gereken üç bilgi parçası var.

  1. Veritabanı sunucumuzla etkileşim kuracak kullanıcının kullanıcı adı. (A.) Kullandığımız aynı bilgiyi kullanıyorsanız, bu ayar nextclouduser olarak ayarlanmalıdır.
  2. Yukarıdaki kullanıcı için ayarladığınız parola. (B.)
  3. Ayarlamanız gereken son seçenek veritabanı adıdır. (C.) Rehberimizi takip ettiyseniz bu nextclouddb olacaktır.

Bundan memnun olduğunuzda, "Finish Setup" butonuna basın (4.), lütfen kurulumunuzu sonlandırdığından bunun tamamlanması biraz zaman alabileceğini unutmayın.

Raspberry Pi Nextcloud Kurulum Ekranı

3. Bundan sonra artık aşağıdaki karşılama ekranıyla karşılaşacaksınız, bu sadece Nextcloud kurulumunuza bağlanmak için kullanabileceğiniz çeşitli programları düzenler.

Devam etmek için sağ üst köşedeki X butonuna tıklayın.

Nextcloud Karşılama Ekranı

4. Artık sonunda Raspberry Pi Nextcloud arayüzünü görebilirsiniz, Nextcloud arayüzünün tüm işlevselliğine aşina olmak için biraz zaman ayırmalısınız.

Nextcloud arayüzünün nasıl kullanılacağı hakkında çok derinlemesine gitmeyeceğiz, daha fazla bilgiye ihtiyacınız varsa nextcloud'daki destek bölümüne göz atmanızı öneririm.

Ancak aşağıdaki ekran görüntüsünde göz atılacak bazı önemli alanları vurguladık.

Nextcloud Dosyalar Ekranı

Nextcloud'un Veri Klasörünü Taşıma

Nextcloud artık güvenli bir şekilde kurulduğuna göre, kurulumu hem daha güvenli hem de biraz daha kullanışlı olacak şekilde ayarlayabiliriz. Yapmamız gereken ilk şeylerden biri, veri dizinini web erişilebilir dizinimizde oturmayacak şekilde taşımaktır.

Bu ayrıca, Raspberry Pi'nin SD Kartına artan bir yük koymak yerine, Nextcloud veri dizininizi daha büyük harici bir sabit diske taşıyacağınız aynı yoldur.

1. Başlamak için, veri dosyalarımızı nerede saklayacağımız için yeni dizinimizi oluşturalım.

Kolaylaştırmak için "/var/nextcloud"da yeni bir klasör oluşturacağız ve veri klasörümüzü oraya taşıyacağız.

Aşağıdaki komutu çalıştırarak klasörü oluşturun:

sudo mkdir -p /var/nextcloud

2. Oluşturduğumuz yeni klasörle, şimdi veri dizinimizi ona taşıyacağız, bu mv komutu sayesinde yapılması kolaydır.

Dosyayı taşırken ve ardından yapılandırma dosyasını ayarlarken Nextcloud sisteminizin devre dışı kalacağını lütfen unutmayın.

Taşımayı başlatmak için aşağıdaki komutu yazın:

sudo mv -v /var/www/nextcloud/data /var/nextcloud/data

3. Şimdi dosyalar taşındığına göre, "datadirectory" yapılandırmasını yeni dizinimize işaret edecek şekilde değiştirebiliriz.

Önce, aşağıdaki komutla Nextcloud için yapılandırma dizinine geçelim.

cd /var/www/nextcloud/config

4. Artık dosyanın bir yedeğini oluşturmak için yapılandırma dosyasını kopyalayabiliriz, bunu aşağıdaki komutla yapabiliriz:

sudo cp -p config.php config.php.bk

5. Son olarak, "config.php" dosyasını nano kullanarak düzenlemek için açalım.

sudo nano config.php

6. Bu dosyanın içinde aşağıdaki satırı değiştirmemiz gerekiyor:

'datadirectory' => '/var/www/nextcloud/data',

Şuna

'datadirectory' => '/var/nextcloud/data',

7. Şimdi CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedip çıkabiliriz.

8. Son bir önlem olarak, "www-data" kullanıcısının hala yeni klasörümüz üzerinde sahiplik sahibi olduğundan emin olmalıyız.

sudo chown -R www-data:www-data /var/nextcloud/data

Artık web tarayıcınızı yenileyebilmeniz ve tüm dosyalarınızın tam olarak öncekiyle aynı şekilde görünmesi gerekiyor.

Nextcloud'un Maksimum Yükleme Boyutunu Artırma

Varsayılan olarak, PHP çok düşük bir yükleme limitine sahiptir, o kadar düşük ki sadece 2 MB. Bunu değiştirmek için, "php.ini" dosyasını değiştirmemiz ve limiti artırmamız gerekiyor. Yalnızca 2mb dosyalar yükleyebilseydiniz bir bulut depolama sistemi pek işe yaramazdı.

1. Başlamak için, aşağıdaki komutla yapılandırma dosyasını düzenlemeye başlamamız gerekiyor:

sudo nano /etc/php/8.4/apache2/php.ini

2. Şimdi aşağıdaki iki satırı bulup değiştirmemiz gerekiyor.

post_max_size = 8M
upload_max_filesize = 2M

Şuna

post_max_size = 1024M
upload_max_filesize = 1024M

Tabii ki, dosya boyutu limitlerini 20M'den çok daha yüksek bir şeye ayarlayabilirsiniz, bu yüzden o sayıyı Nextcloud'unuza yükleyeceğinizi düşündüğünüz maksimum dosya boyutuna değiştirmekten çekinmeyin.

3. Şimdi CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedip çıkabiliriz.

Şimdi güncellenmiş yapılandırma dosyasını okumaya zorlamak için Apache2'yi yeniden başlatmamız gerekiyor. Bunu aşağıdaki komutla kolayca yapabiliriz:

sudo service apache2 restart

4. Artık web tarayıcınızı yeniden başlatabilmeniz ve maksimum yükleme boyutunun başarıyla artırıldığını görmek için yeni bir yükleme başlatabilmeniz gerekiyor.

Nextcloud için SSL Ayarlama

Şimdi Raspberry Pi Nextcloud sunucunuzu düz HTTP yerine HTTPS üzerinden çalışacak şekilde ayarlamak üzerinde gerçekten çalışmalıyız.

Bu eğitim için, bir alan adınız olmadığını varsayacağız, bu yüzden Letsencrypt gibi ücretsiz bir hizmetten birini kullanmak yerine kendi kendinden imzalı sertifikamızı oluşturacağız.

1. Apache2 yapılandırmamızı değiştirmeye gitmeden önce, önce kendinden imzalı sertifikayı oluşturacağız, neyse ki, OpenSSL sayesinde bunun hepsini tek bir komutta yapabiliriz.

Kendinden imzalı bir sertifikanın web tarayıcınızda hatalar fırlatacağını ve düzgün imzalanmış bir sertifika kadar güvenli olmadığını unutmayın ancak hiç olmamasından iyidir. Ayrıca bir alan adı kullanmıyorsanız tek seçenek de budur.

Sertifikayı oluşturmadan önce, önce onu saklamak için bir dizin oluşturalım.

sudo mkdir -p /etc/apache2/ssl

2. Şimdi terminalde aşağıdaki komutu çalıştırarak sertifikanın kendisini oluşturalım:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Bu komut argümanlarının tam olarak ne yaptığını bilmek isterseniz, aşağıdaki küçük açıklamamızı okuyun.

req: Bu, X.509 sertifika imzalama isteği (CSR) yönetimi için bir alt komut belirtir.

-x509: Bu seçenek, bir sertifika isteği oluşturmak yerine kendinden imzalı bir sertifika dosyası oluşturmak istediğimizi belirtir.

-nodes: Bu, OpenSSL uygulamasına bir passphrase belirtmek istemediğimizi söyler, bir passphrase, Apache her yeniden başlatıldığında onu girmemizi gerektirir ki bu uğraşması zahmetlidir.

-days 365: Bu, sertifikanın geçerli kalmasını istediğimiz gün sayısını belirtir, bu gün sayısından sonra yeni bir sertifika oluşturmanız gerekecek.

-newkey rsa:4096: Bu, sertifika isteğini ve yeni bir özel anahtarı aynı anda oluşturacaktır. Önceden bir özel anahtar oluşturmadığımızdan bunu yapmanız gerekecek. rsa:4096, OpenSSL'e 2048 bit uzunluğunda bir RSA anahtarı oluşturmasını söyler.

-keyout: Bu parametre, oluşturulan özel anahtar dosyası için çıktı dosyasını adlandırır.

-out: Bu seçenek, oluşturduğumuz sertifika için çıktı dosyasını adlandırır.

Enter'a bastıktan sonra, doldurmanız için aşağıdaki seçeneklerle karşılaşacaksınız.

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

3. Tüm bu bilgiyi doldurduktan sonra, Apache2'yi SSL çalıştıracak ve ayrıca yeni oluşturduğumuz sertifikayı kullanacak şekilde ayarlamaya devam edebiliriz. Bu basit ama önemli bir süreçtir.

Önce aşağıdaki komutla Apache için SSL modülünü etkinleştirelim:

sudo a2enmod ssl

4. Şimdi "default-ssl.conf" dosyasını, kurulumda OpenSSL tarafından oluşturulan varsayılan sertifikalar yerine yeni sertifikalarımızı kullanacak şekilde değiştirmemiz gerekiyor.

Bu dosyayı değiştirmeye başlamak için aşağıdaki komutu çalıştırın:

sudo nano /etc/apache2/sites-available/default-ssl.conf

5. Bu dosyanın içinde, "/etc/apache2/ssl" klasörümüze oluşturduğumuz yeni sertifikalarımıza işaret etmesi için aşağıdaki iki satırı değiştirmemiz gerekiyor.

Değiştir

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Şuna

SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

6. Şimdi CTRL + X, ardından Y, sonra Enter tuşuna basarak dosyayı kaydedip çıkabiliriz.

7. Şimdi default-ssl yapılandırmasını etkinleştirebilir ve yeni yapılandırmamızı yüklemesi için Apache'yi yeniden başlatabiliriz. Bunu aşağıdaki iki komutla yapabiliriz.

sudo a2ensite default-ssl.conf
sudo service apache2 restart

8. Bunun çalıştığından emin olmak için, Raspberry Pi'nizin IP adresine önünde "https://" ile giderek test edebilirsiniz. Potansiyel olarak geçersiz bir sertifika olduğu konusunda size bir uyarı verecektir. Bu normaldir çünkü imzasız bir sertifikadır.

Örneğin, kendi Nextcloud kopyamın artık SSL arkasında çalıştığından emin olmak için aşağıdakine giderdim.

https://192.168.1.105/nextcloud

9, 10, 11 ve 12. Adımlar tamamen isteğe bağlıdır ve tamamlanması gerekmez.

9. Nextcloud kurulumunuz için en iyi güvenliğe sahip olduğunuzdan emin olmak için isteğe bağlı bir ekstra adım, hiçbir bağlantının HTTP üzerinden yapılamaması için SSL'i zorunlu kılmaktır, bir bağlantı yapılırsa sizi HTTPS'e yönlendirecektir.

Bunu apache yapılandırmamızda bazı değişiklikler yaparak yapabiliriz, başlamak için varsayılan dosyayı aşağıdaki komutla düzenleyelim:

sudo nano /etc/apache2/sites-available/000-default.conf

10. Bu dosyadaki tüm metni aşağıdaki kodla değiştirin. Bu temel olarak tüm HTTP trafiğini HTTPs eşdeğerine yönlendirecektir.

"<EPOSTA>" kısmını iletişime geçilebileceğiniz bir e-posta adresiyle değiştirdiğinizden emin olun. Bu, bir hata oluştuğunda görüntülenecektir.

<VirtualHost *:80>
   ServerAdmin <EPOSTA>

   RewriteEngine On
   RewriteCond %{HTTPS} off
   RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

11. Şimdi CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedip çıkabiliriz.

12. Şimdi bunun çalışması için yönlendirme modülünü etkinleştirmemiz ve apache'yi yeniden başlatmamız gerekiyor. Bunu aşağıdaki iki komutu çalıştırarak kolayca başarabiliriz:

sudo a2enmod rewrite
sudo service apache2 restart

Artık Raspberry Pi'nize HTTP üzerinden gitmek otomatik olarak HTTPS sürümüne yönlendirmelidir. Örneğin, "http://192.168.1.105"e gidersem, "https://192.168.1.105"e yönlendirecektir.

Nextcloud için Port Yönlendirme

Son olarak, Nextcloud için port yönlendirme bölümüne geliyoruz. Router'ınız için port yönlendirmenin ayrıntılarına çok fazla girmeyeceğiz ama hangi portların yönlendirilmesi gerektiğini söyleyeceğiz. Ayrıca bunun çalışması için Nextcloud'da hangi değişikliklerin yapılması gerektiğinden de bahsedeceğiz.

Bu bölüme başlamadan önce, Nextcloud'un yalnızca belirli olarak belirtilen güvenilir alanlar altında çalışacağını bilmeniz gerekiyor. Bu, bağlantınız için kullanmak istediğiniz bir alan adı belirtmeniz veya herkese açık IP adresinizi kullanmanız gerekeceği anlamına gelir.

Çoğu ev herkese açık IP adresi dinamik olduğundan, dinamik bir DNS hizmeti kurmaya bakmanız gerekecek, Raspberry Pi'niz için dinamik bir DNS hizmeti nasıl kurulur eğitimimizi oldukça kullanışlı bulacaksınız.

1. Alan adınızı/IP'nizi eklemek için NextCloud'un yapılandırma dosyasını değiştirmemiz gerekiyor, bunu aşağıdaki komutu çalıştırarak yapabiliriz:

sudo nano /var/www/nextcloud/config/config.php

2. Bu dosyanın içinde, aşağıdaki gibi bir metin bloğu göreceksiniz. Bu, Nextcloud'un üzerinden çalışmasına izin verdiğiniz tüm güvenilir alanların bir dizisidir.

Şimdilik, yalnızca Raspberry Pi'nizin yerel IP adresini içermelidir. Yeni alan adımızı/IP'mizi bu dizinin sonuna ekleyeceğiz.

'trusted_domains' =>
array (
    0 => '192.168.1.105',
),

Örneğimiz için, diziye "nextcloud.pimylifeup.com" ekleyeceğiz. Bu, dizi ID'sini artırmamız ve alan adını eklememiz gerektiği anlamına gelir. Yeni bir tane ekledikten sonra aşağıdaki gibi görünmelidir. Nextcloud'un üzerinden çalışmasını istediğiniz herhangi bir yeni IP veya alan adı için bu prosedürü tekrarlayın.

'trusted_domains' =>
array (
    0 => '192.168.1.105',
    1 => 'nextcloud.pimylifeup.com',
),

3. Şimdi CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedip çıkabiliriz.

4. Son olarak, sonunda Nextcloud'u çalışır hale getirmek için iki portu port yönlendirmeniz gerekecek. Bu iki port Port 80 ve Port 443'tür. Bunlar için gerekli protokol TCP'dir.

Sonuç

Umarız, bu noktada, tamamen çalışan bir Raspberry Pi Nextcloud Sunucunuz vardır.

Herhangi bir sorunla karşılaşırsanız veya bu eğitimle ilgili bir geri bildiriminiz varsa, lütfen aşağıya yorum bırakmaktan çekinmeyin.

Bu rehberi beğendiyseniz, başka birçok Raspberry Pi projemizi keşfetmek için biraz zaman ayırmanızı şiddetle öneririz.