SME Server:Documentation:Developers Manual
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