Ana içeriğe geç

Nextcloud

Bu makalede

Bilgi

Nextcloud, açık kaynaklı bir sunucu yazılımıdır. Veri depolama ve iş birliği için kendi bulut hizmetinizi oluşturmanıza olanak tanır. PHP programlama dili üzerine kuruludur ve MySQL, PostgreSQL ve SQLite gibi çeşitli veritabanlarını kullanma imkanı sağlar. Nextcloud, internet üzerinden veri aktarımı sırasında güvenliği sağlayan istemci düzeyinde veri şifrelemeyi destekler. Nextcloud yardımıyla farklı cihazlar arasında veri senkronizasyonu yapabilir, çevrimiçi ve çevrimdışı çalışabilirsiniz. Nextcloud; belge paylaşımı, görev yönetimi, takvimler ve kişiler gibi kapsamlı bir iş birliği araçları seti sunar. Ayrıca Google Drive, Dropbox ve Microsoft OneDrive gibi diğer hizmetlerle de entegre edilebilir.

Nextcloud. Temel Özellikler

Nextcloud, verileri depolamak ve işlemek için etkili bir araç olmasını sağlayan birçok özelliğe sahiptir:

  • Dosya depolama. Nextcloud, dosyaları bir sunucuda depolamanıza ve bunlara bir web arayüzü veya masaüstü bilgisayarlar ile mobil cihazlar için uygulamalar aracılığıyla erişmenize olanak tanır.
  • Dosya senkronizasyonu. Dosyaların farklı cihazlar arasında senkronize edilebilmesi, hizmeti çeşitli koşullarda çalışmak için kullanışlı bir araç haline getirir.
  • Versiyon kontrolü. Nextcloud, aynı dosyanın birden fazla versiyonunu kaydetmenize olanak tanır. Ayrıca ihtiyaç duyulursa önceki versiyonları geri yüklemenizi sağlar.
  • Web arayüzü üzerinden dosya erişimi. Nextcloud, bir tarayıcı aracılığıyla dosyalara erişmenizi sağlayan bir web arayüzüne sahiptir; bu da onu her cihazda çalışmak için kullanışlı bir araç yapar.
  • Takvim ve görev yönetimi. Nextcloud, takvimler ve görevler oluşturmanıza ve yönetmenize olanak tanıyarak organizasyon için yararlı bir araç sağlar.
  • Kişi yönetimi. Nextcloud, kişiler oluşturmanıza ve yönetmenize olanak tanıyarak iletişim yönetimi için kullanışlı bir araç haline gelir.
  • Uygulamalar aracılığıyla dosya erişimi. Nextcloud, dosyalarınıza uygulamalar üzerinden erişmenizi sağlayan masaüstü bilgisayarlar ve mobil cihazlar için uygulamalara sahiptir.
  • Genişletilebilirlik. Nextcloud, işlevselliği artırmak için kurulup kullanılabilecek birçok ek uygulamaya sahiptir. Bunlar çevrimiçi iş birliği, belge düzenleme, proje yönetimi vb. uygulamalarıdır.

Not

Nextcloud'u bir Managed App olarak çalıştırabilirsiniz. Bunu yapmak için Invapi sunucu kontrol panelinde Services > Managed Apps seçeneğini belirleyin.

Çalıştırma Özellikleri

ID Yazılım Adı Uyumlu OS VM BM VGPU GPU Min CPU (Çekirdekler) Min RAM (GB) Min HDD/SSD (GB) Özel Alan Adı Aktif
16 Nextcloud Ubuntu 22.04 + + + + 2 4 40 Evet SİPARİŞ VER

Bu yazılım için kurulum sırasında özel bir alan adı belirleme imkanı bulunmaktadır. [Talimatları] görün(https://hostkey.com/documentation/tr/faq/custom_domain/)

Bu yazılım için kurulum sırasında özel bir alan adı belirleyebilirsiniz. Talimatlara bakın.

  • Nextcloud çekirdeğe dahildir ve ek bir kurulum gerektirmez. Hizmetin kurulması ve yapılandırılması için bir web arayüzü sağlıyoruz.
  • Yapılandırma dosyaları şuradadır:
    • /opt/nextcloud - Nextcloud kurulumu ve yapılandırması;
    • /opt/nginx - Nginx hizmetinin kurulumu ve yapılandırması;
    • /opt/nextcloud/compose.yml - Bir dizi Nextcloud + Onlyoffice konteynerini başlatan docker compose'u çalıştırır.
  • SSL sertifikası oluşturma işlemi jonasal/nginx-certbot derlemesine dayanmaktadır.
  • Konteyner sürümlerini güncellemek ve yapılandırma dosyasını düzenlemek için aşağıdaki komutlar gerekebilir:

    • Konteynerleri durdurmak için şu komutu çalıştırın:
    cd /opt/nextcloud/
    

    Ardından:

    docker compose down
    
    • Konteynerleri etkinleştirmek için şu komutu çalıştırın:
    cd /opt/nextcloud/
    

    Ardından:

    docker compose up -d
    
  • Docker compose up -d komutu, aşağıdaki konteynerleri indiren ve başlatan compose.yml dosyasını çalıştırır:

    • db - PostgreSQL'in indirildiği ve aşağıdaki ayarların yapıldığı konteyner:
      • Nextcloud veritabanı (veya tabanı) oluşturulur;
      • Nextcloud kullanıcısı oluşturulur;
      • SSH şifresi (yazılım çalıştırıldıktan sonra sunucu hazır hale geldiğinde e-posta adresinize gönderilir);
      • Standart port 5432'dir.
    • redis - Nextcloud çağrılarını bellekte, yalnızca PostgreSQL veritabanındaki kayıtlardan sonra depolayan konteyner.
    • app - Nextcloud hizmetinin aşağıdaki parametrelere sahip olduğu konteyner:
      • Uygulamaya erişim, https://nextcloud(server_id).hostkey.in (örneğin, https://nextcloud16094.hostkey.in) bağlantısını kullanarak bir web tarayıcısı veya mobil uygulama üzerinden gerçekleştirilir;
      • giriş: admin;
      • şifre: ssh'dan gelen şifre;
    • onlyoffice-document-server - 80 portunda çalışan OnlyOffice hizmeti konteyneri.

    Dikkat

    Bu konteyner 6 dakika içinde başlar. Bu süre zarfında Nextcloud web arayüzüne gidebilir, dosya yükleyebilir ve indirebilirsiniz; ancak belge düzenleme özelliği yalnızca docker compose up -d çalıştırıldıktan 6 dakika sonra kullanılabilir hale gelecektir (bazı bileşenlerin başlaması biraz zaman alır).

    • nginx - 80 ve 443 portlarından gelen istekleri kabul eden ve istekleri Nextcloud konteynerine yönlendiren Nginx hizmeti konteyneri.

Not

Aksi belirtilmedikçe, varsayılan olarak yazılımın geliştiricisinin web sitesinden veya işletim sistemi depolarından en son sürümünü kuruyoruz.

Nextcloud'u Managed App Olarak Çalıştırdıktan Sonra Başlangıç

Nextcloud bir managed app olarak çalıştırıldıktan sonra, sunucu kontrol panelindeki My Apps sekmesinde şunları bulabilirsiniz:

  • uygulama bağlantısı;
  • erişim için kullanıcı adı ve şifre;
  • hizmet kullanımı ve yönetimi ile ilgili bilgiler.

Yönetilen uygulamalarla çalışma hakkında daha fazla ayrıntı için talimatlara bakın.

Nextcloud'u Marketplace'ten Çalıştırdıktan Sonra Başlangıç: Cloud-init Aracılığıyla Kurulum Parametrelerini Yapılandırma

Nextcloud içeren bir sunucu sipariş ederken, Automatization aşamasındaki sipariş sürecinde cloud-init yapılandırmasını kullanarak ana kurulum parametrelerini önceden yapılandırabilirsiniz. Bu, yönetici kimlik bilgilerini, e-postayı ve veri depolama yolunu otomatik olarak ayarlamanıza olanak tanır:

Yapılandırma Parametreleri

Cloud-init aracılığıyla Nextcloud'u yapılandırmak için aşağıdaki formatı kullanın:

write_files:
  - path: "/opt/main.yml"
    permissions: "0644"
    content: |
      nextcloud_admin_name: "root"
      nextcloud_admin_pwd: "YOUR_PASSWORD"
      nextcloud_admin_email: "admin@localhost"
      nextcloud_data_path: "/opt/nextcloud-data"

Parametre Açıklaması

  • nextcloud_admin_name - yönetici hesap adı (varsayılan: admin);
  • nextcloud_admin_pwd - yönetici şifresi (güçlü bir şifre belirtin);
  • nextcloud_admin_email - bildirimler için yönetici e-postası;
  • nextcloud_data_path - Nextcloud verilerini depolamak için yol (varsayılan: /opt/nextcloud-data).

Öneri

Önemli sistem bildirimlerini almak için nextcloud_admin_pwd için güçlü bir şifre ve nextcloud_admin_email için gerçek bir e-posta kullanın.

Önemli

Cloud-init yapılandırması uygulandıktan sonra, belirtilen parametreler varsayılan olanların yerine kullanılacaktır. Bu verileri güvenli bir yerde saklayın.

Nextcloud'u Çalıştırdıktan Sonra Başlangıç

Sipariş ödemesi yapıldıktan sonra sunucunun çalışmaya hazır olduğuna dair kayıt sırasında belirtilen e-postaya bir bildirim gönderilecektir. Bu bildirim, VPS'in IP adresinin yanı sıra bağlantı için kullanıcı adı ve şifreyi içerecektir. Şirketimizin müşterileri, donanımı sunucu ve API kontrol panelinden yönetirler — Invapi.

Yetkilendirme verilerini ya sunucu kontrol panelindeki Configuration >> Tags sekmesinde ya da gönderilen e-postada bulabilirsiniz.

  • Web arayüzü ile Nextcloud paneline erişim bağlantısı: webpanel etiketinde;
  • Kullanıcı adı (Login): admin;
  • Şifre: Yazılım kurulumu tamamlanıp sunucu kullanıma hazır hale geldikten sonra e-posta adresinize gönderilir.

Nextcloud kontrol paneline geçtikten sonra kullanıcı adınızı ve şifrenizi girmeniz gerekir:

Başarılı bir şekilde giriş yaptıktan sonra hizmeti kullanmaya başlayabilirsiniz.

Not

Nextcloud'un temel ayarları hakkında daha fazla bilgi için geliştiricilerin dokümantasyonuna bakın.

Dikkat

Nextcloud sunucusu sipariş etmek için, geliştiricilerin önerilerine uygun bir sunucu seçmelisiniz.

Alan Adı Değiştirme (Domain Name)

Alan adı değiştirme işlemine başlamadan önce, talimatlarda belirtilen tüm dosyaların yedeğini oluşturmanız önerilir. Ana dosyaların yedeklerini almak için aşağıdaki komutları çalıştırın:

  1. Yedekler için bir dizin oluşturun

    mkdir -p /root/nextcloud_backup
    
  2. Nginx yapılandırma dosyasını kopyalayın

    cp /opt/nginx/user_conf.d/nextcloud<server ID>.hostkey.in.conf /root/nextcloud_backup/
    
  3. Docker Compose dosyasını kopyalayın

    cp /opt/nextcloud/compose.yml /root/nextcloud_backup/
    
  4. Yapılandırma betiğini (script) kopyalayın

    cp /opt/nextcloud/set_configuration.sh /root/nextcloud_backup/
    
  5. Nextcloud yapılandırma dosyasını kopyalayın

    cp /var/lib/docker/volumes/app_data/_data/config/config.php /root/nextcloud_backup/
    

Bu komutlar, alan adı değiştirme işlemi sırasında değişecek olan tüm ana dosyaların yedeklerini oluşturacaktır. Sorun yaşanması durumunda orijinal yapılandırmayı bu yedeklerden geri yükleyebilirsiniz.

Yedeklerden Geri Yükleme ve Başarılı Göç Sonrası Silme

Alan adı değiştirme işlemi başarısız olursa ve orijinal yapılandırmayı geri yüklemeniz gerekirse, aşağıdaki komutları çalıştırın:

  1. Nginx yapılandırma dosyasını geri yükleyin

    cp /root/nextcloud_backup/nextcloud<server ID>.hostkey.in.conf /opt/nginx/user_conf.d/
    
  2. Docker Compose dosyasını geri yükleyin

    cp /root/nextcloud_backup/compose.yml /opt/nextcloud/
    
  3. Yapılandırma betiğini geri yükleyin

    cp /root/nextcloud_backup/set_configuration.sh /opt/nextcloud/
    
  4. Nextcloud yapılandırma dosyasını geri yükleyin

    cp /root/nextcloud_backup/config.php /var/lib/docker/volumes/app_data/_data/config/
    
  5. Konteynerları yeniden başlatın

    cd /opt/nextcloud
    docker compose down
    docker compose up -d
    
  6. Nginx'i yeniden başlatın

    docker restart nginx-certbot
    

Bu komutlar tüm yapılandırma dosyalarını orijinal durumuna döndürecek ve gerekli hizmetleri yeniden başlatacaktır.

Alan adı değişikliğinin başarılı olduğundan ve her şeyin doğru çalıştığından emin olduktan sonra (tam test için en az 24-48 saat beklenmesi önerilir), yedekleri güvenle silebilirsiniz:

  1. Yedek dizininin içeriğini kontrol edin

    ls -la /root/nextcloud_backup/
    
  2. Tüm yedek dizinini silin

    rm -rf /root/nextcloud_backup/
    

Silme işleminden önce, yalnızca gerekli dosyaları sildiğinizden emin olmak için dizin içeriğini kontrol etmeniz önerilir.

Dosyaların Yapılandırılması

  1. Sunucuya SSH ile bağlanın:

    ssh root@IP_ADDRESS
    
  2. Hostname'i değiştirin (isteğe bağlı):

    hostnamectl set-hostname nextcloud_server
    
  3. /etc/hosts dosyasını düzenleyin:

    nano /etc/hosts
    

    Yeni alan adını sunucunun IP adresine bağlayan bir satır ekleyin:

    IP_ADDRESS YOUR_DOMAIN_NAME
    

    (IP adresini ve alan adını kendi değerlerinizle değiştirin)

Nginx Yapılandırması

  1. Nginx yapılandırma dosyasını bulun ve düzenleyin:

    nano /opt/nginx/user_conf.d/nextcloud<server ID>.hostkey.in.conf
    

    Eski alan adının (nextcloud<server ID>.hostkey.in) tüm örneklerini yenisiyle (YOUR_DOMAIN_NAME) değiştirin:

    • Satır 4: server_name nextcloud<server ID>.hostkey.in; > server_name YOUR_DOMAIN_NAME;
    • Satır 15: server_name nextcloud<server ID>.hostkey.in; > server_name YOUR_DOMAIN_NAME;
    • Satır 17: ssl_certificate /etc/letsencrypt/live/nextcloud<server ID>.hostkey.in/fullchain.pem; > ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN_NAME/fullchain.pem;
    • Satır 18: ssl_certificate_key /etc/letsencrypt/live/nextcloud<server ID>.hostkey.in/privkey.pem; > ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN_NAME/privkey.pem;
    • Satır 19: ssl_trusted_certificate /etc/letsencrypt/live/nextcloud<server ID>.hostkey.in/chain.pem; > ssl_trusted_certificate /etc/letsencrypt/live/YOUR_DOMAIN_NAME/chain.pem;
  2. Yapılandırma dosyasının adını değiştirin:

    mv /opt/nginx/user_conf.d/nextcloud<server ID>.hostkey.in.conf /opt/nginx/user_conf.d/YOUR_DOMAIN_NAME.conf
    
  3. Nginx konteynerını yeniden başlatın:

    docker restart nginx-certbot
    

Nextcloud Yapılandırması

  1. Docker Compose dosyasını düzenleyin:

    nano /opt/nextcloud/compose.yml
    

    Eski alan adının tüm örneklerini yenisiyle (YOUR_DOMAIN_NAME) değiştirin. Şu satırlara dikkat edin:

    • Satır 40: - OVERWRITECLIURL=https://nextcloud<server ID>.hostkey.in/
    • Satır 41: - OVERWRITEHOST=nextcloud<server ID>.hostkey.in
  2. Nextcloud yapılandırma betiğini düzenleyin:

    nano /opt/nextcloud/set_configuration.sh
    

    Eski alan adının tüm örneklerini yenisiyle değiştirin. Özellikle şu satırlara dikkat edin:

    • Satır 11: if ! grep -q "nextcloud<server ID>.hostkey.in" trusted_domain.tmp; then
    • Satır 13: docker exec -u www-data app-server php occ --no-warnings config:system:set trusted_domains $TRUSTED_INDEX --value="nextcloud<server ID>.hostkey.in"
    • Satır 23: docker exec -u www-data app-server php occ --no-warnings config:system:set onlyoffice StorageUrl --value="https://nextcloud<server ID>.hostkey.in/

Değişiklikleri Uygulama

  1. Nextcloud dizinine gidin:

    cd /opt/nextcloud
    
  2. Mevcut konteynerları durdurun ve kaldırın:

    docker compose down
    

    Bu komut, compose.yml dosyasında tanımlı tüm konteynerları durdurup kaldıracaktır ancak volume içindeki tüm verileri koruyacaktır.

  3. Nextcloud konteynerlarını başlatın:

    docker compose up -d
    
  4. Yapılandırma betiğini çalıştırın:

    bash /opt/nextcloud/set_configuration.sh
    

    Eğer betik, "maintenance:install" komutunun tanımlanmadığına dair bir hata verirse bu normaldir; Nextcloud zaten kurulmuştur.

Kontrol Etme ve Hata Ayıklama (Debugging)

  1. Nextcloud'un yeni alan adı üzerinden erişilebilir olduğunu doğrulayın:

    Tarayıcınızda https://YOUR_DOMAIN_NAME adresini açın

  2. Sorun varsa günlükleri (logs) kontrol edin:

    docker logs nginx-certbot
    docker logs app-server
    
  3. Gerekirse trusted_domains ayarını manuel olarak yapılandırın:

    docker exec -u www-data app-server php occ --no-warnings config:system:set trusted_domains 1 --value="YOUR_DOMAIN_NAME"
    docker exec -u www-data app-server php occ --no-warnings config:system:set overwrite.cli.url --value="https://YOUR_DOMAIN_NAME/"
    
  4. OnlyOffice kullanılıyorsa, ayarlarını doğrulayın:

    docker exec -u www-data app-server php occ --no-warnings config:system:set onlyoffice StorageUrl --value="https://YOUR_DOMAIN_NAME/"
    

Önemli Notlar

  • Değişiklikler yapıldıktan sonra tarayıcı önbelleğini temizlemek çok önemlidir;
  • Tüm kullanıcı kimlik bilgileri alan adı değiştirilmeden öncekiyle aynı kalır;
  • DNS sağlayıcınızın kayıt güncellemeleri için süreye ihtiyacı varsa, yeni alan adının çalışmaya başlamasından önce bir gecikme yaşanabilir;
  • DNS'deki A kaydının sunucunuzun doğru IP adresini gösterdiğinden emin olun;
  • PTR kaydı (ters DNS) Nextcloud'un çalışması için kritik değildir ancak tam tutarlılık için kontrol paneli üzerinden güncellenebilir.

API Kullanarak Nextcloud Siparişi Verme

Bu yazılımı API kullanarak kurmak için bu talimatları izleyin.