Setup Nextcloud =============== Now that we have a vanilla OpenSUSE machine, we can see how easy it is to install Nextcloud. These instructions follow the old school LAMP method, but the other methods such as the AIO container methods will also work. This quick demo does not cover any extra performance tuning or hardening beyond getting an install up and running. ## Setup Web Server This demo will utilize Apache as a web server. It is also possible, and in some cases preferable, to use nginx or caddy to serve Nextcloud. Here are the steps to install and configure Apache for Nextcloud: * `sudo -i` to get root access * Install Apache/PHP: `zypper in -y apache2 apache2-mod_php8 php8-exif php8-gd php8-json php8-fpm php8-mysql php8-curl php8-intl php8-mcrypt php8-zip php8-mbstring php8-zlib php8-openssl php8-fileinfo php8-pcntl php8-posix` Enable apache modules: * a2enmod php7 * a2enmod rewrite * a2enmod headers Enable the apache service: `systemctl enable --now apache2` ## Setup the Database There are two options for this demo for setting up the database. MariaDB (mysql-flavor) and sqlite. mariadb performs significantly better but sqlite is easier and sufficient for an install demo. ### MariaDB Installing mariadb on OpenSUSE is very easy: `zypper in -y mariadb` Start the service: `systemctl enable --now mariadb` Now, set a database root password: `/usr/bin/mysqladmin -u root password` Next, create the database: * Start the mysql client: `mysql -u root -p` * Create the nextcloud database: `CREATE DATABASE nextclouddb` * Create/grant the nextcloud user: `GRANT ALL ON nextcloudb.* TO nextcloud@localhost IDENTIFIED BY 'SecurePasswordHere';` - Obviously, change this password. And remember these credentials, since we'll need them in the nextcloud setup. ### SQLite Install sqlite: `zypper in -y sqlite3`. That's it :-). ## Install Nextcloud Install Nextcloud via the PHP installation script: * `cd /srv/www/htdocs` * `wget https://download.nextcloud.com/server/installer/setup-nextcloud.php` * Set the proper ownership of the docroot: `chown -R wwwrun /srv/www/htdocs/` Now run the installer in browser by going to `http:///setup-nextcloud.php` (Replace with your VM's IP.) After picking the path, you'll be prompted to create an admin user and connect to the database that you set up in the previous step. CONGRATS! You've just installed Nextcloud in Harvester! Next step: [Next Steps](https://git.lsit.ucsb.edu/scottwilliams/nextcloud-harvester-demo/src/branch/main/04-next-steps)