Instructions for using NextCloud for Tor Project

Tor Project is evaluating NextCloud as a tool for managing and sharing resources 1 and for collaborative editing 2.

Questions and bug reports are handled by Tor's NextCloud service admin team. For bug reports, please create a ticket in the Service - nextcloud component in Trac. For questions, find us on IRC (GeKo, ln5, pospeselr) or send email to

Signing in and setting up two-factor authentication

  1. Find an email sent to your personal Tor Project email address from with a link to
  2. Do not click on the link in the email, clicking on links in emails is dangerous! Instead, use the safe way: copy and paste the link in the email into your web browser.
  3. Follow the instructions for changing your passphrase
  4. Enable two factor authentication:
    1. In your browser, select Settings -> Security. The link to your settings can be found by clicking on your "user icon" in the top right corner. Direct link: Settings -> Security.
    2. Click "Generate Backup codes" in the Two-Factor Authentication section of that page.
    3. Save your backup codes to a password manager of your choice. These will be needed to regain access to your NextCloud account if you ever lose your TOTP token/application.
    4. If you have a TOTP setup (Google Authenticator, pass-otp, or other similar applications on hand-held devices), locate it and then:
      1. Click "Enable TOTP" on the web page.
      2. Insert your token or start the TOTP application on your handheld device and scan the QR code displayed on the web page.
      3. Enter the numbers from the token/application into the text field on the web page.
      4. Log out and log in again, to verify that you got two factor authentication working.
    5. If you have a U2F setup, like a Yubikey, locate it and then:
      1. Click the "Add U2F device" button under the "U2F device" section
      2. Insert the token and press the button when prompted by your web browser
      3. Enter a name for the device and click "Add"
      4. Log out and log in again, to verify that you got two factor authentication working.

A note on credentials

Don't let other people use your credentials. Not even people you know and like. If you know someone who should have a NextCloud account, let the service admins know in a ticket.

Don't let other _other_ people use your credentials. Never enter your passphrase or two-factor code on any other site than Tor Project's NextCloud site. Lower the risk of entering your credentials to the wrong site by verifying that there's a green padlock next to the URL and that the URL is indeed correct.

Don't lose your credentials. This is especially important since files are encrypted in a key derived from your passphrase. To help deal with when a phone or hardware token is lost, you should really (really!) generate Backup codes and store those in a safe place, together with your passphrase. Backup codes can be used to restore access to your NextCloud and encrypted files. There is no other way of accessing encrypted files! Backup codes can be generated from the Settings -> Security page.


In the top left of the header-bar, you should see a "Folder" icon; when moused over a text label should appear beneath it that says Files. When clicked, you will be taken to the Files app and placed in the root of your NextCloud file directory. Here, you can upload local files to NextCloud, download remote files to your local storage, and share remote files across the internet. You can also perform the various file management operations (move, rename, copy, etc) you are familiar with in Explorer on Windows or Finder on macOS.

On the left side of the Files app there is a side-bar with a few helpful views of your files.

  • All files : takes you to your root folder
  • Recent : recently accessed files and folders
  • Favorites : bookmarked files and folders
  • Shares : files and folders that have been shared with you or you are sharing with others
  • Tags : search for files and folders by tag

Upload a file

Local files saved on your computer can be uploaded to NextCloud. To upload a file:

  1. In the NextCloud Files app, navigate to the folder where you want to store the file
  2. Click on the cicular button with a + inside it (to the right of the little house icon)
  3. Click Upload file entry in the context menu
  4. Select a file to upload using your system's file browser window

Share a file or directory with another NextCloud user

Files stored in your NextCloud file directory can be selectively shared with other NextCloud users. To share a file:

  1. Locate the file you wish to share (either by navigating to the folder it is in, by searching, or by using one of the views in the sidebar).
  2. Click the file's Share icon (to the right of the file name)
  3. In the pane that pops out from the right, click on the search box labeled Name, federated cloud ID or email address…
  4. Search for the user or group you wish to share with by NextCloud user id (pospeselr), email address (richard@…), or name (Richard Pospesel) and select them from the dropdown.
  5. Optional: click on the meatball menu to the right of the shared user and edit the sharing options associated with the file or directory.
    • For instance, you may wish to automatically un-share the file at some point in the future

Share a file with the internet

Files can also be shared with the internet via a url. Files shared in this fashion are read-only by default, but be mindful of what you share: by default, anyone who knows the link url can download the file. To share a file:

  1. Locate the file you wish to share
  2. Click the file's Share icon (to the right of the file name)
  3. In the pane that pops out from the right, click the + icon beside the Share link entry
  4. Select appropriate sharing options in the context menu (these can be changed later without invalidating the link)
  5. Optional: A few measures to limit access to a shared file:
    • Prevent general access by selecting the Password protect option
    • Automatically deactivate the share link at a certain time by selecting the Set expiration date option
  6. Finally, copy the shared link to your clipboard by clicking on the Clipboard icon

Un-share files or edit their permissions

If you have shared files or folders with either the internet or another NextCloud user, you can un-share them. To un-share a file:

  1. Locate the file you wish to un-share in the Files app
    • All of your currently shared files and folders can be found from the Shares view
  2. Click the file's Shared icon (to the right of the file name)
  3. In the pane that pops out from the right, you get a listing of all of the users and share links associated with this file
  4. Click the meatball menu to the right of one of these listings to edit share permissions, or to delete the share entirely

File management

Search for a file

In the Files application press Ctrl+F, or click the magnifying glass at the upper right of the screen, and type any part of a file name.

Desktop support

Files can be addressed transparently through WebDAV. Most file explorer support the protocol which should enable you to browse the files natively on your desktop computer. Detailed instructions on how to setup various platforms are available in the main Nextcloud documentation site about WebDAV.

But the short version is you can find the URL in the "Settings wheel" at the bottom right of the files tab, which should look something like You might have to change the https:// part to davs:// or webdavs:// depending on the desktop environment you are running.

If you have setup 2FA (two-factor authentication), you will also need to setup an "app password". To set that up:

  1. head to your personal settings by clicking on your icon on the top right and then Settings
  2. click the Security tab on the right
  3. in the Devices & sessions section, fill in an "app name" (for example, "Nautilus file manager on my desktop") and click Create new app password
  4. copy-paste the password and store it in your password manager
  5. click done

The password can now be used in your WebDAV configuration. If you fail to perform the above configuration, WebDAV connections will fail with an Unauthorized error message as long as 2FA is configured.

Collaborative editing of a document

Press the plus button at the top of the file browser, it brings you a pull-down menu where you can pick "Document", "Spreadsheet", "Presentation". When you click one of those, it will become an editable field where you should put the name of the file you wish to create and hit enter, or the arrow.

A few gotchas with collaborative editing

Behind the scenes, when a user opens a document for editing, the document is being copied from the NextCloud server to the document editing server. Once all editing sessions are closed, the document is being copied back to NextCloud. This behavior makes the following information important.

  • The document editing server copies documents from NextCloud, so while a document is open for editing it will differ from the version stored in NextCloud. The effect of this is that downloads from NextCloud will show a different version than the one currently being edited.
  • A document is stored back to NextCloud 10 seconds after all editing sessions for that document have finished. This means that as long as there's a session open, active or idle, the versions will differ. If either the document server breaks or the connection between NextCloud and the document server breaks it is possible that there'll be data loss.
  • An idle editing session expires after 5 minutes. This helps making sure the document will not hang indefinitely in the document editing server even if a user leaves a browser tab open.

Client software for both desktop (Window, macOS,Linux) and handheld (Android and iPhone)


Using calendars for appointments and tasks


the prescribed way is to use the DAVx app ( )

NOTE: DAVx5 is cost free in F-Droid (direct link).

Importing a calendar from storm

To export a calendar from storm, click on the up/down arrows icon on the left side of the storm calendar. A menu will pop up which will allow you to "Export" a calendar in .ics format by clicking on the "Download the contents" link. This will download a file in .ics format.

The .ics file can be imported into the Next Cloud calendar app by:

  1. Clicking on the calendar icon in the top navigation bar to open up the calendar.
  2. Clicking on "Settings and Import" on the bottom left corner
  3. Click "Import Calendar" on the menu which pops up
  4. This will allow you to select the file you just downloaded from storm, ready to be uploaded
  5. You can import this calendar as a "New Calendar" or an existing calendar by expanding the drop down menu.
  6. If you select "New Calendar" you will see a new calendar, with the same name as the file you imported, appear on the left hand menu.
  7. To rename this calendar, simply click on ellipsis icon next to the calendar name in order to open up a menu with the option to edit it.

Importing a calendar feed from Google

  1. In your Google calendar go to the "Settings and Sharing" menu (menu appears by hovering over the right hand side of your calendar's name - "Options for " and the calendar name) for the calendar feed you want to import.
  2. Scroll down to the "Integrate Calendar" section and copy the "Secret address in iCal format" value.
  3. In Nextcloud, click on "New Subscription" and paste in the calendar link you copied above.

Managing contacts


Project phases

The NextCloud evaluation project runs from April 1 to September 30 2019 and is divided into N phases (with start dates):

  1. Setting up (April 1)
  2. Migration of data from Sandstorm (April 15)
  3. Migration of data from SVN (April 22)
  4. Feedback collection (June 1)
  5. Evaluation and decision (August 1)
  6. Possibly migrating users and data to a permanent NextCloud instance (September 1)


Evaluation notes

NextCloud evaluation for Tor Project

META TODO: add trac magic here listing all open issues in component 'Service - nextcloud'

User instructions are found over at the Instructions for using NextCloud for Tor Project page

Evaluation time period

April 1 to September 30 2019

Six months is long enough for finding out if this works for us, even when taking potential disturbances into account. The evaluation period can be shortened if it shows that we know everything earlier.

Who will be part of the evaluation group

NOTE: #29417 has a list of people

Must have

  • Seattle office folks
  • PMs


  • Anybody interested?
    • Plus
      • might help to test scenarios/to catch issues not found with just having the groups in the "Must have" category
      • helps conveying the idea that this is a service for everyone at the Tor Project and not just a special group of employees
    • Minus
      • might make the evaluation process too complex and time consuming if a lot of folks are getting involved (e.g. we might not be able to help those who need it most as good as we could due to lack of resources in that case) UPDATE 2019-04-29: This concern seems less problematic than anticipated -- our users seem to figure things out by themselves pretty well. Even 2FA works for those who try it!
      • Migrating users and their data if we decide to move to a more permanent instance will be more time consuming and possibly more complicated the more users we have.
  • One person from each team
    • Identifying a) use cases in each area of what Tor is doing and b) potential cross-team communication issues

No thanks

  • Non Tor members
    • We provide services to Tor members

User functionality (ie applications)

We should minimize the number of applications, for minimizing not only the risk of security issues but also user support issues.

Must have

  • File Sharing -- sharing of folders and files, including device sync (a la dropbox)
  • OnlyOffice -- collaborative editing of documents; text documents, spreadsheets and presentations
  • Deck -- KanBan board (non-official app)
  • Calendar -- shared calendar using CalDav
  • Tasks -- shared task handling (non-official app) using CalDav
  • Contacts -- storing of contacts using CardDav


Not at this stage

  • Talk
    • We don't want to mess with a STUN and TURN server at this point

Infrastructure requirements

Replacing existing services


  • [ ] calendar
  • [ ] KanBan
  • [ ] Pads


  • [ ] NC "File Sharing"

Google Docs

Who will help with the system

  • Training and education
  • User support
  • Service admin, ie nextcloud software updates, migration of data from existing platforms (SVN, Sandstorm, other)
  • System administration, ie providing a patched and networked operating system

Migration of data from existing services onto evaluation NextCloud

Copying data from SVN, Sandstorm, Google Docs and possibly other services. We'd have to "freeze", ie write protect, the data there, so that people don't update things in two places. This is not going to fly in the cases where _all_ the users of that data are not also on Nextcloud though, so some data will probably have to stay and _not_ be copied to Nextcloud.


There's at least three SVN repositories

  • public (#15948 but we dont care)
  • internal (#15949 gives some insight but we don't care)
  • corporate is the one we want to put in Nextcloud, possibly after some undefined sort and discard procedure


What do we have in Sandstorm?

Google Docs

What do we have in Google Docs? Formally nothing but in practice probably quite a lot. Let this be self organized -- those who want to move a document off of Google into Nextcloud can do it after coordinating with their peers. We don't do that for them.

Migrating from evaluation onto a production environment

User credentials

User data

Open questions

  • can we use db.tpo? let's try to not be dependent on ldap queries in real time, but rather do what the rest of the infrastructure does -- extract a subset of the db and transfer it to the nextcloud system. this is what dip.tpo (gitlab) is aiming for too. might be useful.
  • what are the security promises of federated sharing? trusting DNS plus all the CA's? can we require DNSSEC? can we configure CA trust root? Nextcloud does not have any settings that require DNSSEC or specifically allow you to configure a CA trust root.
  • Should we run our own app store (see: One idea could be to only allow installing/updating apps from there and making sure apps are only in it after they have undergone some review.
  • How do updates work in a hosted environment, both for official apps and unofficial ones? Is there a way to make sure that updating app X does not prevent app X (or even app Y!) from functioning correctly after the update? If not, is there an easy roll-back button to fix this if needed?


TODO: Let's have users fill in a form of some sort, after some time.

  • what is good/ok/bad with X, for X in login, sharing, real-time editing, calendar, tasks, contacts, kanban, more

Resolved issues

Keeping them here for collective memory of decisions

RESOLVED regarding the riseup instance

  • what's our https endpoint?, may also be accessed via
  • when can we start using it? april 1
  • can we have 2FA (TOTP) enabled? TOTP is enabled (using the "official" Once can configure it by going to and look towards the bottom for TOTP (Authenticator app)
  • what does the "server encryption" look like? FDE
  • can we use "client encryption"? The "Server Side Encryption" option is enabled with the "Default Encryption Module". Users need to be very careful, because if they lose their password or recovery key, it may be impossible to recover their files!
  • what does the backup scheme look like? Incremental backups are done nightly of the database, and files to a different physical machine devoted to this purpose.
  • How do we treat apps security-wise? Do we want to review all apps before using them? Or maybe just the unofficial ones? And how about updates? Riseup reviews any 3rd-party apps before installation and updating

RESOLVED user management

  • can we configure NC to require 2FA for all users? We can configure it to require 2FA for your group, let micah know if you wish this enabled.
  • will our evaluation group be able to deal with 2FA? we wanted to aim high and fall back if necessary but user enrollment showed to be difficult with 2FA being enforced. let's nag users without 2FA enabled isntead.

RESOLVED Choosing a service provider

RESOLUTION: We've picked Riseup

We want to buy the service nextcloud, for the evaluation at least.

Current contenders include

  • riseup
    • plus
      • trusted people
      • have onlyoffice, and experience with users of it
      • user (and perhaps data too) migration _off_ of the evalutation instance might be less painful
    • minus
      • not entirely sure that we can have our own instance, but might have to share with riseup people. this would limit the alternatives of site wide settings, like requiring 2FA, possibly influence user handling, definitely affect choice of applications and the process for upgrading
      • riseup can setup a separate instance, on a dedicated server, if this is something that is desired. Perhaps after the evaluation period has ended, we can revisit this once it is determined if Nextcloud is something that people will want to use.
  • hetzner
    • plus
      • known reliable service provider (at least for co-location and VM's)
    • minus
      • there is no onlyoffice available, but can be provided elsewhere (on a separate server)

One possible option would be a combination of both -- NC from Hetzner and Onlyoffice from Riseup

Last modified 2 months ago Last modified on Aug 6, 2019, 4:03:19 PM