User:Holt/XS Community Edition/Documentation/Hacking

From OLPC
Jump to: navigation, search

Summary

This is the Documentation for initial version of the School Server - Community Edition, Version 0.1.

The target audience will be the 7 people working from Holt's home. Experienced Linux users and admin with a strong interest in hacking. Enough interest that they made the trip to Toronto February 6-10th, 2013. Stage 2, hopefully for version 0.2 will include the larger school server development community. Stage 3, hopefully for version 0.3 will begin the emphasis on end user documentation.

Based on practical experience and this document a hacker should be able to download the XS code, modify the code, build an rpm, and install an RPM. Secondary goals will be to download a RPM and install a fully functioning School Server.

Purpose

The purpose of this iteration of documentation will be to provide a stable enough starting point from which hackers can load and modify it for their individual purposes.

Design and architecture

Conceptually, the school server is a collection of common network services which can be easily installed and configured as necessary. Modularity is important in order to provide a core base of services on top of which extended service modules can be installed. Their is an ongoing discussion about what are Core Services versus Extended Services, previewed below. Over time this should settle down.

Code layout

Currently the code lives in the xs-config/ dir. Consider these 3 subdirectories of xs-config:

  1. scripts/
    Configuration consists of a series of scripts which live in the scripts/ dir. The process is kicked off by running xs-setup. xs-setup calls a series of scripts with the naming convention the xs-[ServiceName] each of which set up an individual service.
  2. cfg/etc/
    When necessary, the xs-[ServiceName] scripts installs files from under cfg/etc as necessary.
  3. cfg/html/top/
    The web based GUI is located under cfg/html/top/

Core Services

  • Dynamic Host Configuration Protocol (dhcpd)
  • Gateway, IP Masquerading, firewall, Network Address Translation/NAT (iptables)
  • Internet Domain Name Server (named)
  • Jabber Server (ejabberd)

Extended services

Try it

Downloading code

Building

Installing

User:Holt/XS_Community_Edition/Install_Recipe