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.
Launchpad Entry: ubuntu-file-print-server
Create a top-notch file and print server for Ubuntu.
"This version of Ubuntu features the new, user friendly file and print server. It lets you easily create users, groups, shared storage space and shared printers from a pleasant web based configuration interface. Just fetch the Ubuntu Server CD, install the SOHObuntu option, and you're minutes away from flying.
We already have the components to offer this functionality: LDAP, Kerberos, Samba, and CUPS. To reach the masses, we need to presentit in an easily digestible way. Most people are comfortable doing things in a web browser, so that is an obvious choice.
- Mark has a small business. Until now, he and his employees have shared documents by e-mailing them to each other, causing major confusion when there are 6 different versions of the same document flying around in the office. Mark wants to set up a central storage place for documents to solve this.
- Mathias shares an office with his wife. He'd like to share his printer with her.
- Soren has been running this software for a year in his small business. He's now grown up and wants to use the user database for authentication on his network. He'd like to be able just set up the clients and ready to go. His guru friends say he should be using interoperable standards like ldap and kerberos. Soren (being a sensible man) agrees.
There are three major modules involved:
- User/group management
- File sharing
- Printer sharing
The configuration interface should
- be simple and to the point
- help the user make good decisions
- look consistent across the different modules
- A task will be added that includes the relevant packages for this.
- An option will be added to the initial boot option screen on the server CD that will preseed d-i to select this task and skip the tasksel step.
The user database will be stored in LDAP. User authentication will be done using kerberos. Access to the web configuration interface will be granted based on membership of the admin group.
Alternative: user authentication directly against OpenLDAP.
A Samba share will be created for each user and group.
Primary use case is backing up to an external hard drive, probably using rsnapshot or the like.
We should also support remote on-line backup using Box Backup (or something similar) for disaster recovery.
Printers will - if at all possible - be detected when plugged in, and the next user who uses the admin interface will be notified about it and offered to set it up. Setting it up should then be a matter of just accepting the suggested name for it. By default, every user will have access to the printer.
We expect this system to be installed from the beginning and hence no migration is needed. If not, configuration files may very well be overwritten.
There's still the big question: Base it on someone else's work or do it all ourselves?
Base on eBox
eBox is a free software solution with a similar goal as ours. It provides a long list of services, and among them are file and print services.
- It has got a long list of working plugins.
- Separation between frontend (web interface) and backend (configuration file generation).
- Uses a template engine for file generation.
- It's based on Debian.
- It's there.
- It's coded in Perl. Uses mason for the template engine.
- Its configuration handling is not as graceful as one could wish : configuration files are overwritten even if they have been changed outside ebox. The configuration information is stored in an xml file and then configuration files are generated from there.
Base on Conga
Conga is a RedHat project designed to administer clusters.
- It's coded in Python
- Initial review shows what looks like a sound design (master/agent separation, etc.)
- It's geared towards clusters rather than single machines, which is our use case
It's made for RedHat, which may make merging it a hassle
Base on puppet
puppet from reductive labs.
- Written in ruby.
Base on iscape
- small to medium business functionality already integrated around Ubuntu/OpenLDAP/Samba/CUPS
supports groupware functions - IMAP mail & shared folders, shared calendars via WebDAV
- supports remote SSL access to all its functions
- does not overwrite configuration files (except during initial installation)
- Very new
- needs a unified user interface
- MS Outlook can't participate in the calendar sharing
Do it all ourselves
We could also just start from scratch.
- We can choose the development platform
- It's fun!
- A lot of work!