Saturday, April 28, 2007

From Drupal Dojo: Drupal Live! - Live-CD/Portable-App/Virtual Image project

Drupal Live! - Portable Drupal project

I've had this idea for a portable stand-alone version of Drupal + server stack for a while now; it was part of my initial SoC proposal:
At ~50Mb or less, a Drupal appliance is a perfect way for potential users with no system administration experience to evaluate Drupal.
Advocacy for Drupal can be extended by distributing the Live CD with magazines and in trade shows. Drupal companies and consultants can rapidly prototype and demonstrate a Drupal a solution to their clients starting with the base appliance image.
I've come across a few suggestions for a Live-CD project on d.o:
http://drupal.org/node/40780
http://drupal.org/node/40786

This one caught my I though: http://groups.drupal.org/node/2208#comment-10316
Given my recent experience, I think we may missing out with a largenumber of the hobbyists and small businesses hoping to graduate from their first foray into the web - a static HTML website. They want an incremental approach to avoid burning manpower on a mistake.

After a dozen years of doing all my markup stuff by hand in Notepad, Istarted looking at CMS systems in November. Drupal looked like the best choice after comparing the features and activity levels of the open source CMS communities. I spent MANY hours trying to determine what the core tasks were going to be. Overwhelmed by all the conflicting information, I decided to just dive in and find out if I could swim.

Setting up a minimal Drupal implementation took several tries and I ended up crippling my existing personal webspace in the process. My hosting service has their own MySQL management tools which added to the fun.
This is Wikipedia's definition of a portable app:

To be considered truly portable, a software program must:

  1. Not require any form of formal installation to be carried out on any computer before it can be used, with the release package only needing to be decompressed directly to removable media before use (if it has to be installed first, and requires its files to be manually copied to removable media, it is clearly not designed to be portable!)
    For example, software which is supplied as an InstallShield package should not be considered portable, though a ZIP archives containing an executable would be.
  2. Settings are stored with, and can be carried around with, the software (i.e. they are written to the USB drive)
    If the registry is used to store settings, the application's configuration isn't portable, and must be set up on every PC it is used on
  3. Leaves a zero (or near-zero) "footprint" on any PC it's run on after being used
    i.e. All temporary files/registry settings should be removed once the program has exited, and files created by the user can be saved directly to the same removable media as the application is stored on.
http://en.wikipedia.org/wiki/List_of_portable_software

A portable Drupal app capable of running from a Live-CD, flash drive, or as a virtual image would be a great tool for Drupal advocacy - a nice, knock-your-socks-off Drupal site, people can play with and evaluate and add/change stuff that they want without having to install anything or worrying about breaking their install.

Basically this project will have three objectives:
  1. Create a Drupal distro profile called Drupal Live! (or some cool name) featuring latest stable core and a selection of the coolest modules from across the spectrum of Drupal functionality, pre-configured and tested. The primary audience for this profile are people who want to know what Drupal is and how it stacks up against other CMS. So the modules included should cover all of Drupal strengths:
    1. Content authoring
    2. Content Management - workflow, revisions...
    3. Collaboration
    4. User interface
    5. Themes
    6. Customization
    7. User Management
    8. Authentication and access control...
    9. Administration - Backup, logging
    10. ...others
  2. Create content that uses all off the Drupal distro's capabilities - So the initial actual content of the site would serve two purpose - provide a rich information on Drupal, and show-off the differen't bits of functionality used to create the content. we could make using this content or just running a clean site an option in the profile.
  3. Create the portable delivery system for the distro. In order of increasing difficulty there are:
    1. Portable flash-drive app: We just need a portable user mode web and database server, a script (and optional GUI) to reset the site back to its original state, and optionally any one the of flash-drive app-launchers for auto-running the app.
    2. Virtual image Since virtualization technology is a commodity, a VMWare or VirtualPC image hosting Drupal Live! would also be another plug-and-play way of distributing drupal. There are a lot of ready-made LAMP virtual appliances out there like those from VMware community and Virtual Appliances - http://virtualappliances.net
    3. Live-CD: This is the hardest to do - it's a choice between remastering an existing one or building one from scratch. Typo3 has one though - http://www.vmware.com/vmtn/appliances/directory/193 One cool thing about a LiveCD is that there you can use existing virtual machine software to run it without rebooting - so it could supercede 2. There are a couple of specialized virtual machine hosts for running Live-CDs directly

I can work on the delivery systems but the contents of the Drupal Live distro itself would have to have input for the whole community + marketing people, consultants, etc. What do you guys think?

No comments:

Post a Comment