Installing the XSCE School Server
Setting up a working XSCE School Server requires activities that may be grouped roughly into three areas:
- Installing the Software
- Configuring the Server - Enabling Services and Setting Parameters
- Adding Content
This is for people who already know how to do everything in these instructions and enjoy doing them multiple times by missing the nuances that make this install different from things they have done before. If you are an expert, at least read about PARTITIONING as many miss this part. Reading about networking will probably come in handy as well.
Installing the Software
There are basically two ways to install the XSCE software:
- Do everything from scratch.
Take a short cut by getting files from someone else who did everything from scratch or at least some of the steps.
There are also tools to help you create short cut files for yourself or others.
The advantage of doing everything from scratch is that you will get exactly what you want and you will get the latest version
of the software. The disadvantage is that it is more work.
The advantage of a short cut is that it will usually take less time and effort. The disadvantage is that there may not
be files available for every platform and every configuration and the files may be out of date.
Do Everything from Scratch
Here is the complete list of the steps required. Some may already be done.
Assemble your hardware with your chosen amount of RAM, storage, and network devices.
See XSCE Platforms for the partitioning scheme and XSCE Networking Overview.
Please note that the default partitioning scheme for Fedora/CentOS, LVM, will not work. You need to use the Standard partitioning scheme. (See the reference above for partition details.)
Install Fedora or Centos on that hardware using a minimal install. We currently support Centos 7 and Fedora 22, along with Fedora 18 on XOs.
- Log into the machine locally or via ssh.
- Verify your internet connection by typing:
Prepare for installation by typing the following commands:
yum -y update
yum -y install epel-release libselinux-python (CentOS only)
dnf -y install yum (Fedora 22+ only)<BR>
yum -y install nano wget git ansible<BR>
NOTE: Previously we recommended ansible 1.9, but as of now (1/12/2017) the latest version works. If you find that it does not, check if ansible 2.x is installed, uninstall if it is, and install ansible1.9. <BR><BR>
yum list installed | grep ansible <BR>
yum remove ansible <BR>
yum -y install ansible1.9<BR>
mkdir -p schoolserver<BR>
git clone https://github.com/XSCE/xsce --branch release-6.1 --depth 1<BR>
**Please note that if you need to reinstall and it has been some time since you cloned XSCE you should do the following:**
yum update is also recommended<BR>
Run the installation by typing:
Please note that if selinux was enabled it will be disabled and the server will reboot at the end of the install. In that case the server may get a new ip address, usually one higher than the previous one. The server may also disconnect during the install in which case you will need to reconnect in order to continue.
You can see the log of the last install by typing:
Proceed to Configuring the Server.
Take a Short Cut
There is a growing list of downloadable files that have everything from the steps listed above to a particular configuration and even content.
In general the process of using one of these files is to download it to a separate computer and then write it to storage media for the target machine. What happens next depends on the specific file downloaded.
You will need tools to decompress these files and write them to storage. On Linux and MacOS these tools will already likely be there. On Windows you will need to download them.
Each set of images linked below has its own ReadMe file.
Naturally, while the everything-from-scratch steps are generic and apply to any platform, short cuts are for a specific platform.
Instructions for specific platforms follow. Please also see the readme files accompanying each download.
Raspberry Pi 2
The most recent image can be downloaded from http://xsce.org/downloads/xsce-release-6.1/rpi/.
There is also a README with instructions.
You can also have a look at
Please ignore everything down to WRITING AN IMAGE TO THE SD CARD
Centos 7 and Fedora 22 (coming soon) images can be downloaded from http://xsce.org/downloads/xsce-release-6.0/.
There are two types of images, a livecd type image that walks through install of Linux and also install the XSCE Server software, downloadable at http://xsce.org/downloads/xsce-release-6.0/nuc-liveiso/
A pre-built image that installs automatically when booted on the target machine, downloadable at http://xsce.org/downloads/xsce-release-6.0/nuc-images/
In both cases the image should be written to a USB thumb drive using the same software as for Raspberry Pi and OLPC XOs.
While these images have been developed on the Intel NUC (Next Unit of Computing), they may well work on other Intel machines.
Create Your Own Short Cut
You can create an iso file that will contain all the required rpms and other packages and will allow you to do a livecd type installation of XSCE.
It will contain all of the steps in Do Everything from Scratch and be ready for Configuring the Server.
The steps for doing this are detailed at https://github.com/XSCE/xsce/blob/master/installer/livecd.
How To Install XSCE on an XO to Create Your Own Image
Flash the XO laptop with a stable image, currently 13.2.6.
My Settings->Power turn off Automatic Power Management
Connect all the network interfaces and reboot
Install git and ansible (for dependencies)::
yum install -y wget git ansible
Note: ansible version 1.4.1 or higher (but less than 2.0) is required. Verify the version number with::
If the ansible version installed via yum is older than 1.4.1, install 1.4.1 from source::
git clone https://github.com/ansible/ansible.git
git checkout release1.9
python setup.py install
Clone the XSCE git repo and cd into it::
mkdir -p schoolserver
git clone --branch release-6.0 --depth 1 https://github.com/XSCE/xsce
Verify all the network interfaces are visible and have the correct interface label::
Optionally, verify that all network interfaces are properly autodetected::
From the xsce directory, run initial setup. The XO will automatically reboot upon completion::
Configuring the Server
At this point should should be able to connect to http://schoolserver from a browser.
To begin configuring the server connect to http://schoolserver/admin (username:xsce-admin password:g0adm1n -- note the numbers 0,1).
This permits selection of options, services, languages, etc to permit additional services, and educational resources to be enabled and selected for download.
Please click on the Help link to get detailed information on configuration options.
The first time you sign into the Administrative Console would be the best time to change the password. Select the Utilities menu option and the first item, change password. Fill in the form and click Change Password.
Once the password has been set you should start with the Configure menu item. The overall process is:
- Select each sub-menu item and enter any desired parameters. Help is available for each screen and parameter.
- Click Save Configuration
- Click Install Configured Options
- Monitor the progress of the Configuration job in Utilities->Display Job Status.
This job can take a substantial amount of time depending on the capacity of the platform involved and how much of the software was included in the initial image.
At this point you are ready to proceed to Adding Content
Supported Network Modes
A user can select one of three server roles:
- Lan-Controller (Local Area Network) - In this mode, the server configures clients with ip addresses (dhcpd - dynamic host configuration protocol), name resolution (defines schoolserver for all clients)
- Gateway -- does dhcpd (ip addresses),name lookup (dns), firewall, local web page cache for faster retrieval the second time, content filtering to block porn(dansguardian), site "whitelists" if wanted
- Appliance -- no firewall, no dhpcd, no dns, just a contributor to an already existing network
Based upon selection of the above mode in the Administrative Console, XSCE software will attempt to set up network connections. If appliance mode is wanted, the network adapter will be set up. If Gateway is selected, and one of the adapters discovers that it is connected to a source of ip addresses, that adapter will be the internet, and the other the wifi connector. If LanController is selected, any adapter found will be act as server to any clients that might ask to connect.
The XSCE installation attempts to determine the network topology based on the number and types of connections it discovers. In general, it looks to see if there is a connection to a gateway and whether other wireless or wired connections are present.
Services on the XSCE School Server can be enable by checking a box in the Configure->Enable Services menu item.
As of release 6.0 some, but not all, content can be added through the Admin Console. Warning: some of this content is quite large and you should pay attention to the space available and space required displayed on each screen. You should also note that these space calculations may not reflect multiple types downloads happening simultaneously.
The following can be added using the Admin Console:
Add with Admin Console
Take the Install Content Menu item and view relevant Help.
Zims are compressed and indexed files prepared by http://kiwix.org. They include the Wikipedia, Wiktionary, TED Talks, and other reference and educational materials in multiple languages.
Take the Install Content->Get Zim Files from Kiwix menu option and select content by language. Click Install Selected Zims to download, unzip, and move to the proper directory on the server.
Monitor the progress of the download in Utilities->Display Job Status.
When you have finished installing Zims, click Restart the Kiwix Zim Server so that it picks up the new Zims.
As of release 6.0 a single set of RACHEL modules can be downloaded, unzipped, and moved to the proper directory by taking the Install Content->Get RACHEL menu option.
You can monitor the progress with Utilities->Display Job Status.
Khan Academy Lite
Take Install Content->Download Khan Academy Videos to launch KA Lite which has an administrative user interface to help with getting videos in various languages.
Add Content Manually
Copy KA Lite Videos
If KA Lite videos have been obtained from another install or on some storage medium they can be copied directly to KA Lite without going through the admin interface.
- Copy to /library/ka-lite/content/
- Issue the command
systemctl restart kalite-serve to restart the server
Open Street Maps
OSM is part of the Internet in a Box set of content. To include it copy the following directories:
- geonames_index to /library/knowledge/modules/geonames_index
- openstreetmap to /library/knowledge/modules/openstreetmap
The openstreetmap directory is structured by zoom levels from level 0 to 15. You can reduce the space requirements by only copying up to level 10 or some other level less than 15.
Content such as pdfs, doc files, videos, images, and html can be copied to /library/content and it will appear under the web server link /other where the user can browse to any content that is there.
Similarly, any such content put onto a USB stick in a directory
will appear under the /content URL when it is plugged into a USB port on the server. See https://github.com/XSCE/xsce/tree/master/roles/usb-lib for more details...