Skip to main content

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)

  1. 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 ...
  2. 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';
  3. 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
  4. 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
  5. 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>
  6. Redis (Valkey) Setup

    • Configured in config.php:
      'memcache.locking' => '\OC\Memcache\Redis',
      'redis' => array (
      'host' => 'localhost',
      'port' => 6379,
      ),

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