##(see the SpecSpec for an explanation) ''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.'' ## Register at https://launchpad.net/distros/ubuntu/+specs * '''Launchpad entry''': https://features.launchpad.net/distros/ubuntu/+spec/zero-conf-server * '''Packages affected''': == Summary == ZeroConfServer is a proposed package to provide most needed services for small networks with very little or no configuration. The server should be modular, and accessible via an extremely simple and intuitive web interface. Typical uses will be: home networks, small business networks, school networks, community networks. In particular the ZeroConfServer package could be used as the core of Edubuntu. The server is called "Zeroconf" in the sense that it uses [[http://www.zeroconf.org|Zeroconf]] but also in the sense that it should work out of the box with reasonable settings. For a Home Network typical services include: * File server (indexed by tracker) * Printer server * Multimedia streaming * DVB/capture card streaming * Shared contacts * Shared calendar * Shared applications * Net-install * Thin-client server * Firewall/gateway/proxy server with A/V and antispamming filters * Centralized access restrictions to machines/web/applications * User profiles * Set-top-box back-end * Import file facilities, that will also index and encode as appropriate (appropriate = using open standards) * One click backup to internal/external drive All the above should be configurable via a single, very easy to use web interface designed for inexperienced users with only absolutely necessary options (for instance: no groups, only users) all in plain English and well pre-configured. Users should be able to install the Home-Server package and required plug-ins on one machine, and simply register or netboot other clients with this server in order to have a network ready in minutes. The server should be modular so that it should be easy to add extra functionality. Each "plug-in" should be a deb package bundling required servers (as dependencies), good initial configuration, and web interface module. The core server should detect new plugins and show them in the menu. The focus of each module should always be on an extremely streamlined and intuitive user interface and good pre-configuration that should work out of the box. Advanced users can always access the daemons via webmin or directly via ssh. == Rationale == Small networks are useful today in several situations (namely file/printer server) but they will become more and more common, particularly when sub $100 computers will be ubiquitous and will be used as thin/fat clients around the home/office/school. Moreover advanced set-top-boxes and appliances that can take advantage of networked services are already on the shelves. The zeroconf server could also be a good occasion to standardize the back-end for set-top-box functionality, so that different front-ends such as freevo, elisa, mythtv, etc could take advantage of a common back-end. That could leverage off other services: the shared folders are a natural place to store media files, metadata and querying could be handled via file-system indexing (tracker)... This would make it easier to penetrate the set-top-box market as soon as possible, which is important in order to spread open codecs. == Use cases == John has a small business, all he wants is shared files, shared printer, shared calendars and shared contacts, with easy backup. He is no computer expert. Kate is setting up Ubuntu based set-top-boxes connected to a central server to provide access to media-files and streaming services. She can easily upload and manipulate the pictures on the server from her desktop computer using F-Spot and watch the slide-shows on any TV around the house. Mike has a community center with thin clients, he wants to set them up easily. Luisa wants to have more control on what her daughters can do with the PC. == Design == Proposed web interface: ||||'''MAIN'''|| ||Info||internet connection is on/off|| ||....||machines connected|| ||....||users connected|| ||Menu||General settings|| ||....||Web Shield|| ||||'''General Settings'''|| ||network name||XYZ|| ||admin||ago|| ||password||***|| ||system update||.|| ||||'''Backup'''|| ||backup folder||path|| ||scheuled backup||weekly^|| ||backup now||.|| ||restore all||.|| ||restore individual files||.|| ||||'''Web Shield'''|| ||Antispamming||none/mark emails/move emails|| ||Antivirus||none/anyfile/usualsuspects|| ||Blacklist||list of ips to block|| ||Open ports||list of open ports|| ||||||||'''Shared Folders'''(only folders within /home/shared)|| ||import files Folder||Users who can access||Users who can write||Type (music/doc..)|| ||docs||ago, pino||ago||docs|| ||music||ago, pino||ago, pino||music|| ||video||ago, pino|| ago, pino||video|| ||new||.||.||.|| ||||||'''Shared Apps'''|| ||||all/installed/groups||search|| ||name||Installed||Users who can access|| ||XYZ||X||ago|| ||||||||||'''Users'''|| ||name||can use pc||can use web||can use apps||reset password|| ||ago||green||green||green||X|| ||guest||yellow||yellow||red||X|| ||new||.||.||.||.|| ||||||||||||||||||||||||||||||||||||||||||||||||||'''User > Restrict PC Access'''|| ||||||||||||||||||||||||||||||||||||||||||||||||||select/unselect the time when XYZ can use the computer|| ||ALL||1||2||3||4||5||6||7||8||9||10||11||12||13||14||15||16||17||18||19||20||21||22||23||24|| ||sun||.||.||.||.||.||.||.||X||X||X||X||X||X||X||X||X||X||X||X||.||.||.||.||.|| ||mon||.||.||.||.||.||.||.||X||X||X||X||X||X||X||X||X||X||X||X||.||.||.||.||.|| ||tue||.||.||.||.||.||.||.||X||X||X||X||X||X||X||X||X||X||X||X||.||.||.||.||.|| ||wed||.||.||.||.||.||.||.||X||X||X||X||X||X||X||X||X||X||X||X||.||.||.||.||.|| ||thu||.||.||.||.||.||.||.||X||X||X||X||X||X||X||X||X||X||X||X||.||.||.||.||.|| ||fri||.||.||.||.||.||.||.||X||X||X||X||X||X||X||X||X||X||X||X||.||.||.||.||.|| ||sat||.||.||.||.||.||.||.||X||X||X||X||X||X||X||X||X||X||X||X||.||.||.||.||.|| ||||'''User > Restrict Web Access'''|| ||can download||green|| ||filter content||green|| ||black list||list|| ||white list||list|| ||||'''User > Restrict Application Access'''|| ||Application||allowed|| ||XYZ||green|| ||ZXY||green|| ||||||'''Machines'''|| ||name||mac||allowed|| ||agomachine||XYZ||green|| ||guest||*||red|| == Implementation == The server package should have a core to support plug-in modules (that provide actual services). It should be managed via a very intuitive and streamlined web interface. The same core-server could be adapted to different scenarios according to the modules used. The concept is somewhat similar to webmin, except that the interface should be much simplified and each module should be pre-configured to work out of the box. The modules are essentially meta-packages dependent on other packages (e.g. Samba) with proper configuration and web interface module. The core and the modules should all be available as standard packages. Modules are added/removed from apt. When a new module is installed the core will activate it and make its web interface available. == Unresolved issues == == BoF agenda and discussion == * A native interface could be much simpler and easier to understand than a Web interface. I would be glad to help design a native interface for setting up and administering remote servers. -- MatthewPaulThomas ---- CategorySpec