Nextcloud is a popular self-hosted productivity platform that provides a secure and private way to store, share, and collaborate on files and documents. It is a great alternative to cloud-based services like Dropbox and Google Drive.
Server Gigabit is a fantastic option for hosting Nextcloud, a highly popular open-source productivity platform. This comprehensive tutorial covers every step required to install Nextcloud on your Server Gigabit, equipped with Debian 11 as the operating system and Apache2 serving as a reverse-proxy for the web server.
Installations
What’s Required to Install Nextcloud?
To install Nextcloud, you’ll need a Linux server with root access. For this tutorial, I’m going to deploy Nextcloud on a Server Gigabit with Debian 11 as the operating system.
And for the web server, I’m using Apache2 (it’ll be used as a reverse-proxy). Moreover, it’s required to have a domain already connected to your server.
Firstly, ensure your Server Gigabit is up to date by logging in as root and executing the following command:
apt update && apt upgrade –y
Step 1: Installing Necessary Programs
Begin by installing essential programs like Apache2, PHP, and database software with this command:
apt install apache2 unzip wget curl mariadb-client mariadb-server nano
Step 2: PHP8.0 Installation
PHP8.0 installation requires adding the repository and installing the necessary modules. Follow these sub-steps:
2A: Adding PHP8.0 Repository
Execute these commands in sequence:
apt-get install ca-certificates apt-transport-https software-properties-common -y
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
apt install gnupg gnupg2 gnupg1 -y
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
apt update && apt upgrade -y
2B: Installing PHP8.0 & Modules
Install PHP8.0 and its required modules using:
apt install php8.0 -y
apt install libapache2-mod-php8.0 php8.0-{zip,xml,mbstring,gd,curl,imagick,intl,bcmath,gmp,cli,mysql,apcu,redis}
2C: Adjusting php.ini
Configure the PHP settings by editing the php.ini file:
nano /etc/php/8.0/apache2/php.ini
Modify parameters like memory_limit
, upload_max_filesize
, post_max_size
, and date.timezone
as needed.
Step 3: Database Setup
Create a MariaDB database for Nextcloud:
mysql –u root –p
CREATE DATABASE nextcloud;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
exit;
Step 4: Download Nextcloud Files
Download and set up Nextcloud’s files:
cd /tmp && wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
rm latest.zip
mv nextcloud /var/www
Step 5: Apache2 Configuration
Configure Apache2 by activating necessary modules and setting up a reverse-proxy:
5A: Activate Modules
a2enmod rewrite headers env dir mime
5B: Reverse-Proxy Setup
Create a configuration file for Nextcloud:
nano /etc/apache2/sites-available/nextcloud.conf
Paste the provided VirtualHost configuration into the file and replace placeholders with your details. Save and exit.
Activate the configuration and restart Apache2:
a2ensite nextcloud.conf
systemctl restart apache2
Step 6: Optional Data Folder Creation
If desired, create a separate location for uploaded data:
mkdir /home/data
Step 7: Permission Adjustments
Ensure proper permissions for Nextcloud files and, if applicable, the uploaded data folder:
chown -R www-data:www-data /var/www/nextcloud
chmod -R 755 /var/www/nextcloud
chown –R www-data:www-data /home/data # Adjust if using a different location
Step 8: SSL Certificate Installation
For enhanced security, install an SSL certificate using Certbot:
apt install certbot python3-certbot-apache -y
certbot --apache
Follow the prompts to install the certificate for your domain.
Step 9: Finalize Installation in Browser
Access your (sub)domain in the browser and complete the installation steps:
- Create an admin account.
- (Optional) Specify the path if using a separate location for uploaded data.
- Enter database credentials:
- User: nextcloud
- Password: PASSWORD
- Name: nextcloud
- Click “Install” to complete the setup.
Conclusion
Congratulations on successfully installing Nextcloud on your Server Gigabit! You now have a secure and private cloud storage solution that you can use to store, share, and collaborate on your files. With Nextcloud’s extensive app ecosystem, you can add even more functionality to your cloud storage solution. We hope this tutorial has been helpful, and we encourage you to explore Nextcloud’s many features and possibilities.