WEB WORKBENCH

My Project Workspace

A collection of systems, experiments, and builds

Introduction

This guide explains how to install and use Nextcloud on a Virtualmin-managed server, whether you are running it on:

• a self-hosted server (for example at home with a 1TB–4TB hard drive)
• a rented VPS from a hosting provider
• or an existing Virtualmin setup on a cloud server

This guide is written for users of the Web Workbench environment and assumes you are building or experimenting with your own self-hosted systems.

Important Reality Check (Read First)

Nextcloud is not Dropbox or Google Drive in the cloud sense. It is a self-hosted file sync and backup system that you control.

This means:

• you are responsible for your data
• if your server dies and you have no backup, your data is gone
• it is best used as a secondary copy of your files, not the only copy

Why Use Nextcloud?

• you control your data (privacy)
• no per-GB subscription costs
• works as backup + sync system
• runs on VPS or home hardware
• works with web, desktop, and mobile apps

Alternatives You Might Already Have

• Microsoft 365 Users: ~1TB OneDrive storage included
• Amazon Prime Users: unlimited photo storage
• Google Drive Users: free tier available

When Nextcloud Makes Sense

• full control of your data
• backup of PCs or servers
• local network speed advantage
• avoiding cloud subscriptions
• multi-server environments

Self-Hosted vs VPS

Home Server
• 1TB–4TB+ disk
• fast LAN performance
• no monthly VPS cost
VPS / Hosting Provider
• accessible anywhere
• managed hardware
• scalable storage

Example provider:
AlphaVPS Storage VPS Plans (€2.50/month from)

Key Virtualmin Concept (IMPORTANT)

In Virtualmin you can create:

• subdomains (as Virtual Servers)
• sub-servers under a main domain
• multiple Virtual Servers
BUT all of these usually still run on the same underlying server environment unless the storage is physically separated.
This means:
• same disk space
• same server limits
• same shared resources (web, email, database, files)

Virtualmin organises websites — it does not create new hardware.

Important Subdomain Reality

A subdomain like:

• cloud.webworkbench.co.uk
• mynextcloud.webworkbench.co.uk
does NOT automatically mean:
• separate storage
• separate disk
• separate performance allocation

It is still part of the same server unless you explicitly design it differently at the infrastructure level.

When Storage Actually Becomes Separate

True separation only happens when you use:

• a different VPS with its own disk
• a dedicated physical server
• a VirtualBox / home machine with assigned storage
• a separate hosting provider account

That is what actually gives Nextcloud real scalability.

Before You Install (Virtualmin Checklist)

• Virtualmin virtual server created
• domain or subdomain configured
• PHP enabled
• MariaDB/MySQL installed
• SSL (Let’s Encrypt) working

These should be installed if you have virtualmin installed correctly
If not please read my guide on Virtualmin Self-Hosted Server - Stage 1 Pre-Installation Checks

Install Nextcloud (Storage First Approach)

Before installing Nextcloud, it is critical to understand the most important rule of running this software: Nextcloud is a heavy storage system, not just a standard website. It is designed to behave like Dropbox or OneDrive, meaning it requires large storage capacity, stable disk performance, and ample space for files, versioning, and sync data. Because of this, Nextcloud should not be shoehorned into a small, shared Virtualmin hosting environment alongside your regular website, emails, and databases. Doing so means all your services will compete for the same disk space, leading to rapid bloat, storage limits, and instability.

Think of it like this:
• Virtualmin Website Hosting: A small office filing cabinet
• Nextcloud: A large storage warehouse
You do not mix them if you expect scale.

The Recommended Setup

The ideal way to run Nextcloud is on a dedicated system with its own isolated storage. This can be:

• a dedicated VPS with a large disk
• a separate Linux server with a dedicated hard drive
• a VirtualBox or local virtual machine with its own assigned virtual disk
• a dedicated PC or home server with ample storage drives

By setting up a new, separate Virtualmin server or dedicated environment strictly for Nextcloud, you ensure it has independent storage that will never interfere with your primary web traffic.

The SSH Installation Process

Now that your dedicated storage environment or new Virtualmin server is ready, follow these commands to install Nextcloud via SSH.

• 1. SSH into your dedicated Nextcloud server and navigate to your web root:
I use sudo su this gives me root privileges before i use cd
Use this general format, replacing the username with your own:
cd /home/yourdomainusername/public_html/
Depending on exactly how you are deploying Nextcloud, adjust your path accordingly:
• Root Install (Main domain): cd /home/yourdomainusername/public_html/
• Subfolder Install (e.g., /nextcloud): cd /home/yourdomainusername/public_html/nextcloud/
• Subdomain Install (e.g., mynextcloud.yourdomain.com): cd /home/yourdomainusername/public_html/
(Note: In Virtualmin, subdomains typically route right back to the public_html environment unless you have built out completely separated infrastructure, so the base folder path remains the same).

• 2. Install unzip (if it is not already installed on your server):
Ubuntu / Debian:
sudo apt install unzip -y
CentOS / Alma / Rocky:
sudo dnf install unzip -y

• 3. Install required PHP extensions:
Nextcloud requires specific PHP modules to function correctly. Install them based on your operating system:
Ubuntu / Debian:
sudo apt install php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-zip php-imagick -y
CentOS / Alma / Rocky:
sudo dnf install php-gd php-mysqlnd php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-zip php-pecl-imagick -y

• 4. Download the Nextcloud package:
wget https://download.nextcloud.com/server/releases/latest.zip
• 5. Extract the downloaded file:
unzip latest.zip
• 6. Move the extracted files into place:
rsync -a nextcloud/ ./
This moves file from /nextcloud to your public_html / root web folder
• 7. Clean up the installation files to keep your server tidy:
rm -rf nextcloud latest.zip
You will need to change ownership in my install
sudo chown -R mynextcloud:mynextcloud /home/mynextcloud/public_html
Change to your username ls -la will show root root
After chown it should show ls -la username username

Post-Installation

With the files in place, Nextcloud is successfully running on your dedicated storage system and is fully prepared for the final browser-based configuration.

You can now access your setup via your dedicated domain or server IP in your web browser:

• https://mynextcloud.yourdomain.com
• (or https://your-server-ip)

Final Setup

Complete the browser installer:

• create admin account
• enter database details
• set data directory (default is fine for most installs)

To get database details goto virtualmin virtualserver (mynextcloud.webworkbench.co.uk)
Click edit databases and in there is your database name username password

Finish Configuration

After install:

• enable cron jobs (recommended over AJAX)
• enable HTTPS redirect
• configure backups for /data, database, and config.php

Apps Support (Recommended)

Nextcloud works with:

• Mobile apps (iOS and Android)
• Desktop apps (Windows, Mac, Linux)
These allow:
• automatic file sync
• photo backup from mobile devices
• folder syncing across devices
• full private cloud access

Final Takeaway

Nextcloud performance and reliability are heavily influenced by storage design rather than the installation process. A dedicated, well-organised storage location from the beginning makes future scaling and maintenance much simpler.

Found This Useful?

If you found this useful, please consider sharing it.

InfoAbout Cookie infoContactFAQsTerms