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.
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
Based on the above criteria and testing, the group recommends:
- Nextcloud should be used for non-public collaboration between CoTech member co-ops.
- Every CoTech member co-op should have at least one individual who has administrative permissions on Nextcloud.
- Deprecating CoTech's use of Google Drive in favour of Nextcloud.
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.
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.
The Nextcloud app for MacOS can be downloaded and installed from here.Versions prior to 126.96.36.199 (as of 6 Dec 2014 I'm running version 188.8.131.52) 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.
The NextCloud app for iOS can be installed from the iOS App Store.
Windows Phone - (work in progress)
The Windows phone app can be installed from the Windows Store.
The NextCloud desktop sync client should be available in the Ubuntu Software Centre.
GUI Client Install
stretch, using the Ubuntu packages, create
# 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
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
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
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
https://office.coops.tech/remote.php/dav/files/username/ username app-password
Add at the end of
https://office.coops.tech/remote.php/dav/files/username/ /home/username/office davfs user,rw,noauto,_netdev 0 0
noauto 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:
And unmount it:
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.
- Admin permissions for NextCloud server
- Google Drive user
smbclientinstalled on server, as well as potentially others?
- 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.
https://www.example.coop- no trailing slash).
- Make note of the generated Client ID and Client Secret.
- 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.