CanDo Installation

This document is intended for IT/technical staff at CanDo Project sites. It is assumed that the audience is familiar with system administration and that adding a host (network configuration, DNS, etc.) is a familiar activity. Familiarity with Linux is not assumed, though the reader will be expected to read and digest some of the official Ubuntu Linux documentation along the way.

Technology Stack

CanDo runs on the Ubuntu Linux operating system. It is written in Python, as an extension of the SchoolTool Student Information System. SchoolTool is itself built on the Zope 3 Web application Framework. We recommend proxying your server behind Apache + SSL.

All software is free and open source.

Paid support for Ubuntu is available through Canonical.

Hardware Requirements

SchoolTool and CanDo like memory. Your system should be sufficiently performant with 2GB+ of RAM. Any hardware that runs Linux well should be fine.

OS Install

Download Ubuntu Server 14.04.1 LTS. The current CanDo application requires this version. Do NOT install or upgrade to 16.04 LTS.

Read the official documentation. System administrators completely unfamiliar with UNIX-like operating systems may want to familiarize themselves with the command line.

If you wish to access the server remotely (i.e., not from the physical console), you should select OpenSSH server when prompted to make a software selection.

After installation, you will want to configure your new host with a static IP address. You will need to restart networking for the changes to take effect:

sudo /etc/init.d/networking restart

Firewall Settings

For day-to-day operation, ports 22, 80, and 443 will need to be open to your CanDo server. Your server will also need access to port 80 outgoing in order to receive sotware updates. For setup, your server will need outgoing access to port 11371, so that the SchoolTool package repository's key can be added to the package mangement system. Outgoing 11371 can be tightened up after the install.

Proxy Server

Although it is possible, we do not recommend proxying requests to CanDo. Larger divisions, with many simultaneous users, may experience poor performance as a result of the proxy server. If you must use a proxy, bear this in mind should you need to troubleshoot performance issues.

Software Install

These instructions are adapted from the SchoolTool installation instructions.

  1. Add SchoolTool 2.8 PPA to your software sources.

    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:schooltool-owners/2.8

  2. Update your software list and upgrade all software.

    Type

    sudo apt-get update && sudo apt-get upgrade

  3. Install schooltool-cando.

    Type

    sudo apt-get install schooltool python-schooltool.virginia
    (and answer “y” to the subsequent questions)

    If all goes well, many, many small Zope components will be installed and you’ll have a SchoolTool server running on http://localhost:7080.

    To test you can install the links command line Web browser

    sudo apt-get install links
    links http://localhost:7080
    

    You should see an all text view of the CanDo calendar.

    If you are accessing your server across the network, of course you will use the host name to access the server (e.g., http://cando.example.edu:7080). However, the CanDo server is not set up for access across a network by default. You will need to edit a configuration file

    sudo nano /etc/schooltool/standard/paste.ini
    

    Change the host= line to

    host = 0.0.0.0
    

    And restart the server

    sudo service schooltool restart
    You should now be able to access the server on it public address. Note that you will probably want to reset host = 127.0.0.1 after configuring Apache.

    The login is “manager” and the default password is “schooltool”. After logging in you can change this by clicking the account name in the upper right corner and clicking the change password tab.

Apache + SSL configuration

We recommend proxying CanDo over Apache with SSL so that sensitive information, such as passwords, is not transmitted in the clear over your network. You will need to install and configure the Apache Web server and set up a self-signed certificate.

Be sure to enable the Apache SSL and proxy modules:

sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo /etc/init.d/apache2 force-reload

To download an example Apache virtual host configuration file to your server, type

wget http://cteresource.org/services/CanDo/example-apache.conf -O cando.conf
Edit the file by typing
nano cando.conf
Change hostnames, e-mail address, certificate and key file names, etc. Make this configuration available to Apache by typing
sudo cp cando.conf /etc/apache2/sites-available/cando.conf
To enable the site, type
sudo a2ensite cando.conf
sudo /etc/init.d/apache2 restart