NextCloud adalah file hosting dan  file sharing server yang free dan open-source yang diambil dari proyek ownCloud. NextCloud  sangat mirip dengan layanan berbagi file lainnya seperti Google Drive, Dropbox dan iCloud.

NextCloud memungkinkan Anda untuk menyimpan file, dokumen, gambar, Film, dan Video dari lokasi terpusat. Dengan NextCloud, Anda dapat berbagi file, kontak, dan media lainnya dengan teman dan klien Anda. NextCloud terintegrasi dengan surat, kalender, kontak, dan fitur lain yang akan membantu tim Anda menyelesaikan pekerjaan mereka lebih cepat dan mudah.

Anda dapat menginstal NextCloud client pada mesin desktop untuk menyinkronkan file dengan server Nextcloud Anda. Desktop clients tersedia untuk sebagian besar sistem operasi termasuk, Windows, macOS, FreeBSD, dan Linux.

Dalam tutorial ini, kami akan menjelaskan cara menginstal NextCloud dan mengamankannya dengan Let’s Encrypt SSL pada Debian 10.

Prasyarat Tutorial

  • Server yang menjalankan Debian 10.
  • Nama domain yang valid yang menunjuk ke IP server Anda. dalam tutorial ini, kita akan menggunakan domain nextcloud.example.com.
  • Masuk sebagai root atau user dengan hak sudo.

Instal Apache, MariaDB dan PHP

NextCloud berjalan di web server , ditulis dalam bahasa PHP dan menggunakan MariaDB untuk menyimpan data mereka. Jadi Anda perlu menginstal Apache, MariaDB, PHP dan paket lain yang diperlukan pada sistem. Anda dapat menginstal semuanya dengan menjalankan perintah berikut:

apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip -y

Setelah semua paket diinstal, buka file php.ini dan atur beberapa pengaturan yang disarankan:

nano /etc/php/7.3/apache2/php.ini

Ubah pengaturan berikut:

memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300
date.timezone = Asia/Jakarta

Simpan dan tutup file setelah Anda selesai. Kemudian, mulai layanan Apache dan MariaDB dan memungkinkan mereka untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start apache2
 systemctl start mariadb
 systemctl enable apache2
 systemctl enable mariadb

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasi Database untuk NextCloud

Selanjutnya, Anda perlu membuat basis data dan pengguna basis data untuk NextCloud. Untuk melakukannya, masuk ke shell MariaDB dengan perintah berikut:

mysql -u root -p

Berikan kata sandi root Anda saat diminta lalu buat database dan buat user untuk database dengan perintah berikut:

CREATE DATABASE nextclouddb;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'GantiDenganPassword';

jangan lupa ganti kata “GantiDenganPassword” dengan kata sandi yang kuat.

Selanjutnya, berikan semua hak istimewa ke nextclouddb dengan perintah berikut:

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

Selanjutnya, flush privilege dan keluar dari shell MariaDB dengan perintah berikut:

FLUSH PRIVILEGES;
EXIT;

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Download NextCloud

Pertama, kunjungi halaman download NextCloud dan download versi terbaru dari NextCloud. Pada saat menulis artikel ini, versi terbaru dari NextCloud adalah 17.0.1. Anda dapat mengunduhnya dengan perintah wget berikut:

wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip

Setelah unduhan selesai, unzip file yang diunduh dengan perintah berikut:

unzip nextcloud-17.0.1.zip

Selanjutnya, pindahkan direktori yang diekstrak ke direktori root web Apache:

mv nextcloud /var/www/html/

Selanjutnya, berikan izin dan kepemilikan yang tepat ke direktori nextcloud dengan perintah berikut:

chown -R www-data:www-data /var/www/html/nextcloud/
 chmod -R 755 /var/www/html/nextcloud/

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasi Apache untuk NextCloud

Selanjutnya, Anda harus membuat file konfigurasi host virtual Apache untuk melayani NextCloud. Anda dapat membuatnya dengan perintah berikut:

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

Tambahkan baris berikut:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/nextcloud/
     ServerName nextcloud.example.com

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

     <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Simpan dan tutup file setelah Anda selesai. Kemudian, aktifkan file virtual host Apache dan modul lain yang diperlukan menggunakan perintah berikut:

a2ensite nextcloud.conf
 a2enmod rewrite
 a2enmod headers
 a2enmod env
 a2enmod dir
 a2enmod mime

Terakhir, restart Apache untuk menerapkan konfigurasi baru:

systemctl restart apache2

Amankan NextCloud dengan SSL Let’s Encrypt

NextCloud sekarang diinstal dan dikonfigurasi. Selanjutnya, disarankan untuk mengamankannya dengan SSL gratis Let’s Encrypt. Untuk melakukannya, instal klien Certbot terlebih dahulu dengan perintah berikut:

apt-get install python-certbot-apache -y

Setelah terinstal, Anda dapat menjalankan perintah berikut untuk menginstal Let’s Encrypt Certificate untuk domain Anda nextcloud.example.com.

certbot --apache -d nextcloud.example.com

Selama instalasi, Anda akan diminta untuk memberikan alamat email Anda dan menerima ketentuan layanan seperti yang ditunjukkan di bawah ini:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for nextcloud.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/nextcloud-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/nextcloud-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/nextcloud-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Selanjutnya, ketik 2 dan tekan Enter untuk mengunduh dan menginstal sertifikat SSL gratis untuk domain Anda. Setelah instalasi selesai dengan sukses. Anda harus mendapatkan output berikut:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/nextcloud.conf to ssl vhost in /etc/apache2/sites-available/
nextcloud-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://nextcloud.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=nextcloud.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
 /etc/letsencrypt/live/example.com/fullchain.pem
 Your key file has been saved at:
 /etc/letsencrypt/live/example.com/privkey.pem
 Your cert will expire on 2019-10-22. To obtain a new or tweaked
 version of this certificate in the future, simply run certbot again
 with the "certonly" option. To non-interactively renew *all* of
 your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
 configuration directory at /etc/letsencrypt. You should make a
 secure backup of this folder now. This configuration directory will
 also contain certificates and private keys obtained by Certbot so
 making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:
 Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
 Donating to EFF: https://eff.org/donate-le

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Akses Web Interface NextCloud

NextCloud Anda sekarang dikonfigurasikan dan diamankan dengan SSL Let’s Encrypt. Selanjutnya, buka browser web Anda dan ketik URL https://nextcloud.example.com. Anda akan diarahkan ke halaman berikut:

Page 1 - NextCloud Login

Page 2 - Configure the database

Sekarang, berikan nama pengguna dan kata sandi admin, folder Data, kredensial database yang benar dan klik tombol Finish setup. Anda akan dialihkan ke dasbor NextCloud di halaman berikut:

Page 3 - NextCloud Dashboard

Pada poin ini, NextCloud sudah terinstall dan sudah dapat Anda gunakan.

Kesimpulan

Selamat! Anda telah berhasil menginstal dan mengamankan NextCloud dengan Let’s Encrypt Free SSL di Debian 10. Sekarang Anda dapat dengan mudah berbagi file, dokumen, dan media dengan pengguna lain menggunakan antarmuka web NextCloud.