SME Server:Documentation:Developers Manual

From SME Server
Revision as of 10:27, 27 December 2007 by Snoble (talk | contribs) (===Translations===)
Jump to navigation Jump to search


Developer Documentation

This manual is aimed at developers and provides the information they require to integrate their applications into the SME Server platform. The manual discusses the key concepts of the SME Server such as the configuration database, configuration file templates and the events and actions model which differentiate the SME Server from other Linux distributions.

The Developer manual is maintained separate to this wiki, corrections and suggestions are to be made on the Bug Tracker.

View the HTML version of the Developer Manual as individual pages, or as a single page.

Also available in a pdf version

Table of Contents.
I. An overview of the SME Server
   1. About this manual
   2. Who should read this manual?
   3. What is the SME Server?
   4. Design philosophy
       Principle 1: Automating best practice
       Principle 2: Simplicity
       Principle 3: Extensibility
       Principle 4: Reliability
   5. Architecture overview
II. SME Server internals
   6. Configuration database
       Overview
       The configuration databases
       Namespace issues
   7. Actions and events
       Actions
       Events
   8. Configuration file templates
       Design of the template system
       The Text::Template module
       Template expansion
   9. Process startup, supervision and shutdown
       Process startup
       Process supervision: runit (and supervise)
   10. The server-manager web interface
       The web directory
       Web function scripts
       Common files
       Panel definitions
III. How to create an SME Server package - step by step
   11. Getting started
       Creating a development environment
   12. Getting to know how to customize the SME Server
       Exercise 1: Changing a configuration template
       Exercise 2: The magic of templates
       Exercise 3: Using events and actions
       Exercise 4: Adding new configuration database parameters
       Exercise 5: Adding a user interface screen
       Exercise 6: Adding a new event type
       Exercise 7: Thought experiment - adding a new server application
       Customization guidelines
   13. Packaging your application
       A quick introduction to RPMs
       Selecting and creating RPMs for your application
       Setting up your RPM development environment
       Building an RPM
   14. The SME Server development environment  (outdated see Package Modification)
       Configuring your development environment
       Modifying an SME Server package
       SourceForge developer CVS access
IV. Advanced customization of the SME Server
   15. Advanced customization principles
       Leveraging the provisioning system for users, groups, and i-bays
       Programmatically creating users, groups, and i-bays
       Reserving accounts to avoid conflicts with user, group, or i-bay names
       Adding new account properties
       Using the LDAP server
       Data backup
       Using the MySQL database
       Sending email messages
       Managing the firewall
       Starting up programs automatically upon system boot
V. Documentation and resources
   16. Perl modules
VI. License texts
   A. GNU Free Documentation License
   B. GNU General Public License

Documentation Links

Other sources of information

 -Managing Software with Yum - http://mirror.centos.org/centos/4/docs/html/yum/
 -CentOS 4/RHEL4 Documentation - http://mirror.centos.org/centos/4/docs/
 -Fedora Documentation - http://fedora.redhat.com/docs/
 -Fedora Developers Guide - http://fedora.redhat.com/docs/developers-guide/
 -Fedora Documentaion Guide - http://fedora.redhat.com/docs/documentation-guide/
 -Maximum RPM Book - http://www.rpm.org/max-rpm-snapshot/
 -Fedora RPM Guide (draft) - http://fedora.redhat.com/docs/drafts/rpm-guide-en/
 -Fedora Wiki - Building Packages Guide - http://fedoraproject.org/wiki/Docs/Drafts/BuildingPackagesGuide
 -Fedoraproject.org RPM Packaging Guidelines - http://fedoraproject.org/wiki/PackagingGuidelines
 -Fedoraproject.org Package Review Guidelines - http://fedoraproject.org/wiki/PackageReviewGuidelines
 -Fedoraproject.org RPM Spec File Scriptlet Snippets - http://fedoraproject.org/wiki/ScriptletSnippets

Translations

SME Server Supports English, French, German, Spanish, Italian and Swedish.

Other Languages are in progress

See the Translations page for how to add or maintain translations