UbuntuEasyBusinessServer

Revision 7 as of 2007-03-15 17:54:37

Clear message

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

This spec describes Ubuntu's Easy Business Server, a configuration utility aimed at making it easy for non-technical businesses set up an Ubuntu based server for various things.

Rationale

The free software universe in general, and Ubuntu in particular, already provides most of the tools and infrastructure components needed to fulfill the needs of small businesses. What is needed is: Good integration between these components and easy configuration.

The current solutions like webmin are basically just a web enabled configuration file. The goal of this project is to provide something much more high level. E.g. instead of a postfix transport configuration dialog, I want an "Add mail domain" dialog. Which mail server provides the service and what terminology it uses is unimportant.

Scope

For the Google Summer of Code project, only the following will be prioritised.

  • Groupware
    • Mail server (internal and external)
      • Multiple domains
      • Aliases
      • vacation integration
    • Calendar server
      • Sharing of free/busy schedule
    • Contact Management (Added by gQuigs 2007-3-15)
      • Optional: Storing telephone call information
    • File server
      • Sharing of files
      • Optional: Limitation of access to files
    • Print server

For each of these tasks, a set of configuration files will be created based on best practices and a simple interface for setting it up will be provided.

Ultimately, the following services will be included, too:

  • Infrastructure
    • DHCP
    • DNS
    • Time
    • Firewall/Internet gateway
    • VPN
  • User management
    • Linux
    • Windows
  • Backup
    • Configuration
    • Files

Design

Unlike the current LAMP and DNS server options Ubuntu already provides, the EBS will not just be a metapackage depending on the right packages, but will also provide a clean, consistent, simple, Ubuntu branded configuration interface for adminstering all of this.

The Ubuntu Easy Business Server will provide only a limited amount of easily accessible configuration options. The target group is small businesses with little or no Linux experience, so only the bare minumum should be presented.

Configuration could be handled in a number of ways:

  • Configuration file hijacking
    • As soon as the EBS configuration utility takes over a configuration file, it will no longer be editable manually. Any changes in the configuration interface will overwrite any manual changes.
  • Graceful editing
    • Any change in the configuration interface will result in an *edit* of the relevant configuration file.
  • Graceful hijacking
    • A hash of the hijacked configuration file will be kept around. If a manual edit has been done, the user will be presented with a choice to overwrite his manual changes or a diff between the last known configuration and the newly generated one and he will have to implement those changes himself.

Graceful editing requires a much more complete overview over each components configuration options and the way the interact than I expect to be able to obtain within the given time frame. Simple hijacking is evil since it robs the slightly more advanced user of the ability to tweak stuff to his liking. Graceful hijacking seems to be the way to go.

Each task or component handled by the EBS configuration system will be implemented as a plugin containing configuration file templates, and a set of key/value/type tuples with sane defaults and helpful explanations. These pairs will be presented by the configuration utility in a coherent fashion.

Implementation

  • Implementation will be written in Python, possibly using something like Django (which has a web server built in).
  • Configuration file handling
    • Some sort of templating system will be put in place that takes a number of key/value pairs from a the configuration interface.
    • If changes have been made by the user (detected by means of a saved hash or something), the diff between the expected configuration file and the new configuration file will be presented so that the user can implement the changes himself and in effect just use the EBS configuration interface as a helper.
  • Web configuration interface
    • Simple, friendly, Ubuntu branded interface.
    • Should allow installation of more plugins.

Data preservation and migration

Unresolved issues

BoF agenda and discussion

Comments

Comment by ArtCancro on 2007-03-15: may I suggest Citadel [http://www.citadel.org] as the groupware component? It would save an awful lot of work because it's got all of the mail and calendar stuff built in.


CategorySpec