Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Tor Project runs a self-hosted instance of LimeSurvey CE (community edition) to conduct user research and collect feedback.

The URL for this service is https://survey.torproject.org/

The onionv3 address is http://eh5esdnd6fkbkapfc6nuyvkjgbtnzq2is72lmpwbdbxepd2z7zbgzsqd.onion/

Tutorial

Create a new account

  1. Login to the admin interface (see tor-passwords repo for credentials)
  2. Navigate to Configuration -> User management
  3. Click the Add user button on the top left corner
  4. Fill in Username, Full name and Email fields
  5. If Set password now? is left at No, a welcome email will be sent to the email address
  6. Select the appropriate roles in the Edit permissions table:
  • For regular users who should be able to create and manage their own surveys, there is a role called 'Survey Creator' that have "Permission to create surveys (for which all permissions are automatically given) and view, update and delete surveys from other users". Otherwise you can select the checkboxes under the Create and View/read columns in the Permission to create surveys row.
  • For users that may want to edit or add themes, there is a role called 'Survey UXer' with permissions to create, edit or remove surveys as well as create or edit themes.
  1. Please remind the new user to draft a data retention policy for their survey and add an expiration date to the surveys they create.

Note: we don't want to use user groups since they do not have the effects that we would expect them to have.

How-to

Upgrades

We don't use the paid ComfortUpdate extension that is promoted and sold by LimeSurvey.

Instead, we deploy from the latest stable zip-file release using Puppet.

The steps to upgrade LimeSurvey are:

  1. Review the LimeSurvey upstream changelog

  2. Login to survey-01, stop Puppet using puppet agent --disable "pending LimeSurvey upgrade"

  3. Open the LimeSurvey latest stable release page and note the version number and sha256 checksum

  4. In the tor-puppet repository, edit hiera/roles/survey.yaml and update the version and checksum keys with above info

  5. Enable full maintenance mode

    sudo -u postgres psql -d limesurvey -c "UPDATE lime_settings_global SET stg_value='hard' WHERE stg_name='maintenancemode'"
    
  6. Run the puppet agent on survey-01: puppet agent --enable && pat: Puppet will unpack the new archive under /srv/www/survey.torproject.org/${version}, update the Apache vhost config and run the database update script

  7. Login to the admin interface and validate the new version is running

  8. Disable maintenance mode:

    sudo -u postgres psql -d limesurvey -c "UPDATE lime_settings_global SET stg_value='off' WHERE stg_name='maintenancemode'"
    

Because LimeSurvey does not make available previous release zip-files, the old code installation directory is kept on the server, along with previously downloaded release archives. This is intentional, to make rolling back easier in case of problems during an upgrade.

Pager playbook

Disaster recovery

In case of a disaster restoring both /srv and the PostgreSQL database on a new server should be sufficient to get back up and running.

Reference

Installation

SLA

Design

This service runs on a standard Apache/PHP/PostgreSQL stack.

Self-hosting a LimeSurvey instance allows us to better safeguard user-submitted data as well as allowing us to make it accessible through an onion service.

Issues

There is no issue tracker specifically for this project, File or search for issues in the team issue tracker with the label ~Survey.

Maintainer, users, and upstream

Monitoring and testing

Logs and metrics

Backups

Other documentation

Discussion

Overview

Security and risk assessment

Technical debt and next steps

Proposed Solution

Other alternatives