UbuntuEasyBusinessServer

Differences between revisions 14 and 15
Revision 14 as of 2007-04-13 06:22:47
Size: 8448
Editor: firewall
Comment:
Revision 15 as of 2007-04-16 14:17:38
Size: 8463
Editor: cpc2-farn1-0-0-cust656
Comment: Add Obuntu to related projects
Deletions are marked like this. Additions are marked like this.
Line 116: Line 116:
 * ["Obuntu"]

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

  • 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 the Google Summer of Code project, only the above will be prioritised.

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 will be handled by a graceful version of configuration file hijacking: A hash of the hijacked configuration file will be saved along with the written configuration file. 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.

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

UEBS will be implemented in Python, possibly using something like Django (which has a web server built in).

The actual todo list:

  • Configuration file handling system:
    • Templating system
    • The magic bit (noticing changes to configuration files and show a diff to the user instead of overwriting)
  • Create a slick looking web interface (see mock ups below)
  • Definition and implementation of plugin system.
  • Implementation of the groupware plugins
    • Mail
    • Calendar sharing
    • Address book sharing
    • File sharing
    • Printer sharing

Screenshots

I imagine it will look something like this (these are just mock ups): http://linux2go.dk/uebs-scrshots/mail.png http://linux2go.dk/uebs-scrshots/user.png http://linux2go.dk/uebs-scrshots/users.png http://linux2go.dk/uebs-scrshots/network.png

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.

Comment by PaulKishimoto on 2007-03-20: I added UbuntuServerTasks and AdministerServerViaWebInterface to the related specs list. The former has already been approved, and the creator seems to know something about tasksel, which sounds like it would be useful.

Comment by SorenHansen on 2007-03-20: UbuntuServerTasks (and tasksel) is not quite what I'm after. Those tasks are simply a collection of existing packages. E.g. a web server task would just install apache and a number of interpreters. This spec is more about configuration. AdministerServerViaWebInterface on the other hand looks very similar to this. Interesting.

Comment by PaulKishimoto on 2007-03-22: I'm not a packaging expert, but I suspect .deb install scripts for different groupware packages may interact with each other and modify configuration files. I imagined a use case where Bob installs Ubuntu Server from a CD, chooses certain tasks (ie. package sets), adds the "uebs" package, and then points a web browser at the new server. Several of the tasks in UbuntuServerTasks install the groupware UEBS would configure, so instead of depending on packages directly it could recognizes and enable modules for only those packages which are installed.

I also should have mentioned two blog posts by Herman Bos from Planet Ubuntu: http://dev.osso.nl/herman/blog/2006/12/27/management-framework-2/ and http://dev.osso.nl/herman/blog/2007/01/31/ambition-readjustment/. I'm not sure what you had planned, a client-server model would make it possible to use either the web client or develop a PyGTK client to run on an administrator's desktop. He might have some helpful thoughts on this.

Comment by SorenHansen on 2007-03-22: Yes, postinst scripts might change configurations and whatnot, but that will not be a problem here. When installing uebs, it will "take over" the proper configuration files. Besides, the configuration file handling outlined should mitigate any problems that might arise from other things (possibly a human) changing the configuration files. UEBS will also be modular in nature, so if someone doesn't want certain bits managed, he will just not install the corresponding module. Only when used as an install option (the common use case, I suspect) will all modules be enabled by default. I've also seen Heman Bos' blog posts, but as far as I can tell, we're solving different problems here. That said, there might very well be basis for some cooperation along the way. By the way: Please don't just insert extra spaces here and there unless there's a reason. It's a pain to go through the diffs and try to figure out what was changed. Smile :-)

Comment by EdwardMurrell on 2007-04-13: Have you considered using Kerberos for authentication? NFSv4 practically requires it, and it would mean that you get automagic secure authentication. If you're already implementing DNS and NTP, then you're halfway there. If you need some help on intergrating it with LDAP, I can feed you the work I've done to get it going here.

Comment by SorenHansen on 2007-04-13: This has turned into a Summer of Code project for me. My main focus is going to be on getting the framework together and building all the groupware-like plugins. The target group for this is mostly the not-so-technical bunch of people who want to use Ubuntu as a server, and I think Kerberos is a bit out of scope for them. Nevertheless, there's nothing per se wrong with having a Kerberos plugin available. I can ping you when the plugin API starts to stabilize, then maybe you can work on the plugin your self. Thanks for your input.


CategorySpec

UbuntuEasyBusinessServer (last edited 2012-11-09 15:46:51 by 41)