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.
Section I. An overview of the SME Server
2. Who should read this manual?
- Principle 1: Automating best practice
- Principle 2: Simplicity
- Principle 3: Extensibility
- Principle 4: Reliability
Section II. SME Server internals
- Overview
- The configuration databases
- Namespace issues
- 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
- 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 (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. Other sources of information
- Perl modules
- Documentation Links
Section VI. License texts
- A. GNU Free Documentation License
- B. GNU General Public License