welcome: please sign in

Diff for "MemberManual/WebApplications/Nextcloud"

Differences between revisions 1 and 9 (spanning 8 versions)
Revision 1 as of 2019-01-01 14:08:56
Size: 1575
Comment: Started page
Revision 9 as of 2019-01-03 03:45:52
Size: 3700
Comment: Data dir creation
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Tested with Nextcloud 15.0.0. '''WORK IN PROGRESS'''
Line 5: Line 5:
== Unpack the software == == Create database ==

Postgresql should work, but Nextcloud recommends MySQL. See [[MemberManual/Databases#Create_a_Database]]. We'll assume you name the database `${USER}_cloud`.

== Software installation ==

=== Put files in place ===
Line 11: Line 17:
Unpacks directory 'nextcloud': Also pick a directory for data, for example `$HOME/var/nextcloud`. We'll call it `$NEXTDATA`.

Unpack the source.
Line 17: Line 25:
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. Move the resulting `nextcloud` directory to where you decided to have the document root.
Line 20: Line 28:
mv nextcloud/* $NEXTDIR/ mv nextcloud $NEXTDIR
Line 35: Line 43:
fsr sa config $USER.daemon write
fsr sa data $USER.daemon write
fsr sa apps $USER.daemon write
fsr sa config $USER.daemon rlidwk
fsr sa data $USER.daemon rlidwk
fsr sa apps $USER.daemon rlidwk
Line 56: Line 64:

Create the data directory and give it correct permissions:

{{{
mkdir $NEXTDATA
cd $NEXTDATA
fsr setacl . system:anyuser none
fsr sa . $USER.daemon rlidwk
}}}


== 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 ==

Open up the web site, which should now show you the installation wizard. Fill it out like so:

{{{
Data folder: $NEXTDATA
Database: MySQL/MariaDB
Username: whatever you like
Password: likewise
DB hostname: mysql
}}}


== Additional configuration ==

Add this line to `$NEXDIR/config/config.php`, to enable the APCu cache:

{{{
'memcache.local' => '\OC\Memcache\APCu',
}}}

== Login ==

You should now be able to log in and look around Nextcloud. You may want to have a look at `Settings → Overview` for any warnings. You will see a bunch of warnings like this:

{{{
Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:

    /afs/hcoop.net/user/…
}}}}

These can be ignored.

== 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;
}}}

Guide for installation of Nextcloud.

WORK IN PROGRESS

1. Create database

Postgresql should work, but Nextcloud recommends MySQL. See MemberManual/Databases#Create_a_Database. We'll assume you name the database ${USER}_cloud.

2. Software installation

2.1. Put files in place

Get the Nextcloud tarball from Nextcloud.

Pick a directory where you'll host Nextcloud, for example $HOME/www/next.your.domain. We'll call it $NEXTDIR.

Also pick a directory for data, for example $HOME/var/nextcloud. We'll call it $NEXTDATA.

Unpack the source.

unzip nextcloud-15.0.0.zip

Move the resulting nextcloud directory to where you decided to have the document root.

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 rlidwk
fsr sa data $USER.daemon rlidwk
fsr sa apps $USER.daemon rlidwk

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;
        }
 }

Create the data directory and give it correct permissions:

mkdir $NEXTDATA
cd $NEXTDATA
fsr setacl . system:anyuser none
fsr sa . $USER.daemon rlidwk

3. 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

4. Nextcloud installation wizard

Open up the web site, which should now show you the installation wizard. Fill it out like so:

Data folder: $NEXTDATA
Database: MySQL/MariaDB
Username: whatever you like
Password: likewise
DB hostname: mysql

5. Additional configuration

Add this line to $NEXDIR/config/config.php, to enable the APCu cache:

'memcache.local' => '\OC\Memcache\APCu',

6. Login

You should now be able to log in and look around Nextcloud. You may want to have a look at Settings → Overview for any warnings. You will see a bunch of warnings like this:

Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:

    /afs/hcoop.net/user/…

}

These can be ignored.

7. 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;

MemberManual/WebApplications/Nextcloud (last edited 2019-01-27 11:26:28 by BjörnLindström)