Difference between revisions of "SME Server:Documentation:Developers Manual"

From SME Server
Jump to navigationJump to search
(add links)
m
Line 4: Line 4:
 
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.
 
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.
  
[[SME_Server:Documentation:Developers_Manual:Section1|I. An overview of the SME Server]]
+
[[SME_Server:Documentation:Developers_Manual:Section1|Section I. An overview of the SME Server]]
  
 
[[SME_Server:Documentation:Developers_Manual:Chapter1|1. About this manual]]
 
[[SME_Server:Documentation:Developers_Manual:Chapter1|1. About this manual]]
Line 20: Line 20:
 
[[SME_Server:Documentation:Developers_Manual:Chapter5|5. Architecture overview]]
 
[[SME_Server:Documentation:Developers_Manual:Chapter5|5. Architecture overview]]
  
[[SME_Server:Documentation:Developers_Manual:Section2|II. SME Server internals]]
+
[[SME_Server:Documentation:Developers_Manual:Section2|Section II. SME Server internals]]
  
 
[[SME_Server:Documentation:Developers_Manual:Chapter6|6. Configuration database]]
 
[[SME_Server:Documentation:Developers_Manual:Chapter6|6. Configuration database]]
Line 29: Line 29:
 
*        Actions
 
*        Actions
 
*        Events
 
*        Events
[[SME_Server:Documentation:Developers_Manual|:Chapter8|8. Configuration file templates]]
+
[[SME_Server:Documentation:Developers_Manual:Chapter8|8. Configuration file templates]]
 
*        Design of the template system
 
*        Design of the template system
 
*        The Text::Template module
 
*        The Text::Template module
Line 42: Line 42:
 
*        Panel definitions
 
*        Panel definitions
  
[[SME_Server:Documentation:Developers_Manual:Section3|III. How to create an SME Server package - step by step]]
+
[[SME_Server:Documentation:Developers_Manual:Section3|Section III. How to create an SME Server package - step by step]]
  
 
[[SME_Server:Documentation:Developers_Manual:Chapter11|11. Getting started]]
 
[[SME_Server:Documentation:Developers_Manual:Chapter11|11. Getting started]]
 
*        Creating a development environment
 
*        Creating a development environment
  
[[SME_Server:Documentation:Developers_Manual|:Chapter12|12. Getting to know how to customize the SME Server]]
+
[[SME_Server:Documentation:Developers_Manual:Chapter12|12. Getting to know how to customize the SME Server]]
 
*        Exercise 1: Changing a configuration template
 
*        Exercise 1: Changing a configuration template
 
*        Exercise 2: The magic of templates
 
*        Exercise 2: The magic of templates
Line 68: Line 68:
 
*        SourceForge developer CVS access
 
*        SourceForge developer CVS access
  
  IV. Advanced customization of the SME Server
+
Section IV. Advanced customization of the SME Server
  
[[SME_Server:Documentation:Developers_Manual:Chapter   15. Advanced customization principles]]
+
[[SME_Server:Documentation:Developers_Manual:Chapter15|   15. Advanced customization principles]]
 
*        Leveraging the provisioning system for users, groups, and i-bays
 
*        Leveraging the provisioning system for users, groups, and i-bays
 
*        Programmatically creating users, groups, and i-bays
 
*        Programmatically creating users, groups, and i-bays
Line 82: Line 82:
 
*        Starting up programs automatically upon system boot
 
*        Starting up programs automatically upon system boot
  
  V. Documentation and resources
+
Section V. Documentation and resources
  
 
[[SME_Server:Documentation:Developers_Manual:Chapter16|16. Perl modules]]
 
[[SME_Server:Documentation:Developers_Manual:Chapter16|16. Perl modules]]
  
  VI. License texts
+
Section VI. License texts
    A. GNU Free Documentation License
+
*    A. GNU Free Documentation License
    B. GNU General Public License
+
*    B. GNU General Public License
  
 
===Documentation Links===
 
===Documentation Links===

Revision as of 09:05, 27 April 2008


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.

Section 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

Section 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

Section 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

[[SME_Server:Documentation:Developers_Manual:Chapter14|14. The SME Server development environment (also see Package Modification)

  • Configuring your development environment
  • Modifying an SME Server package
  • SourceForge developer CVS access

Section 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

Section V. Documentation and resources

16. Perl modules

Section 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