Nextcloud

From CoTech
Jump to: navigation, search
Nextcloud logo

Nextcloud is described as "next generation open source enterprise file sync and share". CoTech has a test Nextcloud server at office.coops.tech, which was set up following a discussion on this thread.

Features and functionality

At Wortley Hall 2017 a group focused on evaluating Nextcloud. The particular functionality that it was felt was missing from the existing CoTech landscape of shared services (Slack, Loomio, Discourse, wiki, website) was the ability to share files.

The advantage of using Nextcloud is that it has additional features that can be activated through add-ons. These include collaborative online documents, calendars, contacts, tasks, and an RSS feed reader.

Evaluation

The evaluation criteria that the group came up with was:

Migration of existing documents 🙆

Many members of CoTech are likely to have documents stored on Google Drive, Dropbox, etc. It is possible to to migrate files into NextCloud by manually syncing them using the sync client, but there will be loss of metadata; revision history, permissions, etc. So far only connection with Google Drive has been tested and verified.

Separation of individual co-ops ✔️

By default any files and folders are private unless they are explicitly shared with an individual or group. There is a central 'CoTech' group, but other groups can be created as required, including for individual co-ops. This means that a folder can be shared internally within one co-op without it being visible by other co-ops. Everything that is subsequently added to that folder will be shared with the existing members of the group.

Sharing documents ✔️

Documents, files, and folders can be shared with individuals or groups as outlined above. Files can also be easily shared with external users such as Clients, and the software also comes with a feature to create temporary users with a pre-defined time limit.

Collaboration features ✔️

By default, Nextcloud allows for file storage and synchronisation. To achieve the kind of functionality that Google Docs offers (editing online documents with a revision history), Collabora Online can be installed. This is "a powerful LibreOffice-based online office suite with collaborative editing, which supports all major document, spreadsheet and presentation file formats and works in all modern browsers".

Further Investigation (TODO)

  • External API

Recommendations

Based on the above criteria and testing, the group recommends:

  1. Nextcloud should be used for non-public collaboration between CoTech member co-ops.
  2. Every CoTech member co-op should have at least one individual who has administrative permissions on Nextcloud.
  3. Deprecating CoTech's use of Google Drive in favour of Nextcloud.

Future Developments

For future prospects there are other functionalities that NextCloud provides in place of Google Drive and Docs.

Extra offices features

Additional features that may be useful include:

  • Shared calendars
  • Shared contacts
  • Collaborative (multi-user) document editing

Getting started with the NextCloud Client

Please see the thread on our community forum. The following are some notes on its usage on different platforms.

Windows

The NextCloud desktop client can be installed from the Windows 10 Store, or downloaded and installed from the NextCloud website.

For installation, simply click the Windows button and run the executable then follow the onscreen instructions.

Currently compatible with Windows 7, 8.x and 10 only.

OSX

The Nextcloud app for MacOS can be downloaded and installed from here.Versions prior to 2.3.3.1 (as of 6 Dec 2014 I'm running version 2.3.3.84) do not work with the CoTech Nextcloud, so don't try to to use the official public release from here without first confirming the version number of that release.

iOS

The NextCloud app for iOS can be installed from the iOS App Store.

Android

The NextCloud app for android can be installed from the Google Play Store or F-Droid.

Windows Phone - (work in progress)

The Windows phone app can be installed from the Windows Store.

Linux

The NextCloud desktop sync client should be available in the Ubuntu Software Centre.

For Debian:

GUI Client Install

On stretch, using the Ubuntu packages, create /etc/apt/sources.list.d/nextcloud-client.list containing:

# https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client
deb http://ppa.launchpad.net/nextcloud-devs/client/ubuntu zesty main
deb-src http://ppa.launchpad.net/nextcloud-devs/client/ubuntu zesty main

Import the GPG key:

apt-key adv --recv-key --keyserver keyserver.ubuntu.com AD3DD469

Install:

apt-get update
apt-get install nextcloud-client

For older versions of Debian work out the corresponding Ubuntu version and adjust the instructions above.

Then login using the web interface to get an app password and then run the nextcloud-client.

CLI WebDAV

To mount the file system using webdav and fstab see these instructions.

Install and allow unprivileged to mount WebDAV resources:

sudo apt install davfs2

Add your user account to the dav2fs group:

sudo adduser $USER davfs2

Create directories for the mount point and to store the login details:

mkdir ~/office
mkdir ~/.davfs2

Copy, chown and chmod the system secrets:

sudo cp /etc/davfs2/secrets ~/.davfs2/secrets
sudo chown $USER:$USER ~/.davfs2/secrets
sudo chmod 600 ~/.davfs2/secrets

Get a app password for the machine and a line at the end of the ~/.davfs2/secrets like this (changing username and app-password):

https://office.coops.tech/remote.php/dav/files/username/ username app-password

Add at the end of /etc/fstab (changing username):

https://office.coops.tech/remote.php/dav/files/username/ /home/username/office  davfs  user,rw,noauto,_netdev 0 0

Note that noauth means that the file system won't be automatically mounted after a reboot and _netdev means the files system will only be mountable after the network has been enabled.

Then, login in again (to ensure that the group membership is updated) and mount the filesystem:

mount ~/office

And unmount it:

 umount ~/office

Migration

From Google Drive (OAuth2.0)

This process will connect your Google Drive home folder to your NextCloud home screen via a symbolic link, allowing you to easily copy across your files as desired or simply to access your files without any migration.

N.B. This process is somewhat fiddly, in part due to the layout and somewhat poor documentation of both the Google APIs platform and the NextCloud External Storage Support plugin.

Pre-requisites

  • Admin permissions for NextCloud server
  • Google Drive user
  • smbclient installed on server, as well as potentially others?

Google Drive

  • Go to https://console.developers.google.com and login using your Google Drive credentials.
  • Create new project with a name (e.g. NextCloudMigrationTest, ProjectID can also be updated if desired).
  • Go to the Google APIs Library and find and enable the Google Drive API.
  • Navigate to the dashboard for your project and enable Google Drive API for that project.
  • You should see a warning stating "To use this API, you may need credentials. Click 'Create credentials' to get started." Do that.

*** Note: the format of the following steps are prone to regular updates! ***

  • Select the Google Drive API from the API drop-down, Web Browser from the Platform drop-down, and the appropriate data access type (for most cases this will be 'User').
  • Create an OAuth2.0 client ID.
  • Set the authorised JavaScript origin as your home URL (e.g. https://www.example.coop - no trailing slash).
  • Set the authorised redirect URI as your JavaScript origin followed by /settings/admin/externalstorages (e.g. https://www.example.coop/settings/admin/externalstorages).
  • Make note of the generated Client ID and Client Secret.

NextCloud

  • Go to your NextCloud instance and login as your admin user.
  • Go to Apps section in Settings and enable External Storage Support app.
  • Create new External Storage from the Admin section - the URL of the page you are directed to should correspond with the authorised redirect URI specified to the Google Drive API. (It was noticed that the app will incorrectly point you towards the Personal section to complete this step. Ignore that.)
  • Select Google Drive from the External Storage drop-down - this will auto-generate a folder name for you which can be edited here.
  • Set the authentication type as OAuth2 and add the Client ID and Client Secret (you can also create user access rights at this point).
  • You should now be able to access all of your Google Drive files from the new folder on your home screen. From here you can move / copy files on to your NextCloud file system as desired.