Guide for installation of Nextcloud. '''WORK IN PROGRESS''' == Software installation == Get the Nextcloud tarball from [[https://nextcloud.com/install/#instructions-server|Nextcloud]]. Pick a directory where you'll host Nextcloud, for example `$HOME/www/next.your.domain`. We'll call it `$NEXTDIR`. Unpack the source. {{{ unzip nextcloud-15.0.0.zip }}} We move the content of the archive so that it's in the root of your new directory. We don't need the `.htaccess` and `.user.ini` files. {{{ mv nextcloud/* $NEXTDIR/ }}} Create an empty data directory in the document root. This is necessary for the duration of the installation, we'll delete it later. {{{ cd $NEXTDIR mkdir data }}} Adjust directory permissions: {{{ fsr setacl . system:anyuser none fsr sa . $USER.daemon rlk fsr sa config $USER.daemon write fsr sa data $USER.daemon write fsr sa apps $USER.daemon write }}} Delete some lines in the file `core/Migrations/Version14000Date20180129121024.php`. This doesn't play well with the HCoop default of not granting DROP on tables. The easiest fix seems to be to manually drop these later. {{{ @@ -49,11 +49,6 @@ /** @var ISchemaWrapper $schema */ $schema = $schemaClosure(); - $schema->dropTable('admin_sections'); - $schema->dropTable('admin_settings'); - $schema->dropTable('personal_sections'); - $schema->dropTable('personal_settings'); - return $schema; } } }}} == Domtool == {{{ web "cloud" where PhpVersion = php72; DocumentRoot = home "$NEXTDIR"; with rewriteRule "/.well-known/carddav" "/remote.php/dav" [redirectWith temp]; rewriteRule "/.well-known/caldav" "/remote.php/dav" [redirectWith temp]; end; }}} '''TODO: Translate additional settings from `.htaccess` and `.user.ini`''' == Nextcloud installation wizard == == Cleanup == Since we use a new data directory we can delete the one in the document root: {{{ cd $NEXTDIR rm -r data }}} We should drop those deprecated tables from before (this wasn't actually working for me, will look into how to drop tables in MySQL later). {{{ mysql-fixperms mysql -h mysql -p ${USER}_cloud DROP TABLE admin_sections; DROP TABLE admin_settings); DROP TABLE personal_sections; DROP TABLE 'personal_settings; }}}