Nextcloud Setup Guide
Nextcloud is hosted on the Cloud Storage VM.
Stack Components
- OS: Debian / Ubuntu
- Web Server: Apache2
- Database: MariaDB
- PHP: 8.2 (verify current requirements)
- Caching: Redis (Valkey)
Installation Steps (Manual)
-
Install Dependencies
sudo apt install apache2 mariadb-server libapache2-mod-php8.2
sudo apt install php8.2-gd php8.2-mysql php8.2-curl php8.2-mbstring php8.2-intl ... -
Database Setup
sudo mariadb-secure-installation
sudo mariadb -u root -p
# CREATE DATABASE nextcloud;
# CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
# GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost'; -
Download & Extract
cd /var/www
sudo curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
sudo unzip nextcloud.zip
sudo chown -R www-data:www-data nextcloud -
Data Directory The data directory should be separate from the web root for security and storage management:
sudo mkdir /var/nc-data
sudo chown -R www-data:www-data /var/nc-data -
Apache Config (
/etc/apache2/sites-available/nextcloud.conf)<VirtualHost *:80>
ServerName cloud.<INTERNAL_DOMAIN>
DocumentRoot /var/www/nextcloud/
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost> -
Redis (Valkey) Setup
- Configured in
config.php:'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array (
'host' => 'localhost',
'port' => 6379,
),
- Configured in
Management (OCC Tool)
The occ command is used for administrative tasks. Run it as the web user.
Upgrade
sudo -u www-data php /var/www/nextcloud/occ upgrade
Maintenance Mode
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
Database Indexing
sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Rescan Files
sudo -u www-data php /var/www/nextcloud/occ files:scan --all