How to Set Up a Server with Nextcloud on Debian: A Step-by-Step Guide

Nextcloud is a powerful open-source software for file hosting and collaboration. In this guide, you'll learn how to install and configure a Nextcloud server on Debian, along with additional features like SSL, custom logos, and external storage integration. By the end, you'll have a fully functional Nextcloud server tailored to your needs.

1. Installing Debian

Step 1: Download and Install Debian

  • Visit the official Debian website and download the ISO file.
  • Install Debian via the internet to include the graphical user interface (GUI).

Step 2: Enable Root Access

  • Edit the SSH configuration file:
    nano /etc/ssh/sshd_config
  • Add the following line:
    PermitRootLogin yes
  • Save the file and restart SSH:
    systemctl restart sshd

Step 3: Switch to Root User

To gain root access, use the following command:
 
Plain Text

Enter the root user password when prompted.

Step 4: Connect via SSH

From a Windows PC, open Command Prompt and connect using:
 
Plain Text

2. Installing and Configuring Nextcloud

Step 1: Install Required Dependencies

Run the following commands to set up PHP, Apache, and MariaDB:
 
Apache

Step 2: Configure MariaDB for Nextcloud

Log in to MariaDB and create a database:
 
SQL

Step 3: Download and Install Nextcloud

  • Download and extract Nextcloud:
    sudo apt install wget unzip wget https://download.nextcloud.com/server/releases/latest.zip unzip latest.zip sudo mv nextcloud/ /srv sudo chown -R www-data:www-data /srv/nextcloud/
  • Configure Apache for Nextcloud:
    sudo nano /etc/apache2/conf-enabled/nextcloud.conf
    Add the following configuration:
    <VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /srv/nextcloud/ ServerName example.com ServerAlias www.example.com ErrorLog /var/log/apache2/nextcloud-error.log CustomLog /var/log/apache2/nextcloud-access.log combined <Directory /srv/nextcloud/> Options +FollowSymlinks AllowOverride All Require all granted SetEnv HOME /srv/nextcloud SetEnv HTTP_HOME /srv/nextcloud <IfModule mod_dav.c> Dav off </IfModule> </Directory> </VirtualHost>
  • Enable Apache modules and restart:
    sudo a2enmod rewrite dir mime env headers sudo systemctl restart apache2

3. Enhancing Nextcloud Configuration

Add a Trusted Domain

Edit the Nextcloud configuration file:
 
Lua

Add your domain under the trusted_domains array:
 
Dart

Set Up SSL

  • Install Certbot:
    sudo apt install snapd fuse sudo snap install core; sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
  • Obtain an SSL certificate:
    sudo certbot --apache
  • Verify auto-renewal:
    sudo certbot renew --dry-run

Customize with a Logo

To add a custom logo, refer to this guide.

4. Optional Configurations

Integrate External Storage

  • Check available storage:
    lsblk
  • Add the storage to your system:
    sudo nano /etc/fstab
    Example entry:
    /dev/sda1 /media/username/Storage ext4 defaults 0 0
  • Reboot to apply changes:
    sudo reboot

Change Default Ports

To modify port 80 or 443:
  • Edit the Apache configuration files:
    sudo nano /etc/apache2/ports.conf sudo nano /etc/apache2/sites-enabled/000-default.conf
  • Restart Apache:
    sudo systemctl restart apache2

5. Testing and Validation

Test the installation by accessing the Nextcloud interface via your domain or IP address. Ensure all features, including file uploads, storage integration, and SSL, are working as expected.

Conclusion

Congratulations! You've successfully installed and configured Nextcloud on a Debian server. With features like SSL, trusted domains, and external storage, your Nextcloud server is ready to handle collaborative file hosting and management tasks. Enjoy the enhanced functionality and flexibility of your new setup!

 {fullWidth}

Please Select Embedded Mode To Show The Comment System.*

Previous Post Next Post

نموذج الاتصال