New install profiles for Drupal 6?

Close to a yer ago, Drupal 5 was released with a basic installer which makes new site setups easier, but it was still just the beginning. The real power as we thought was in contributed install profiles which allow you to set up different site types with ease.

The new Drupal 6 we are preparing for release comes with a nicely themed installer, which has a site configuration form (check out the video!)and even more capabilities for an install profile to hook into and do cool things on install. But despite encouragement from different parties, and even a DrupalCon Barcelona session by Boris Mann on install profiles, where some people became enthusiastic about building core install profiles for Drupal 6, the base system does not show off the different possibilities still.

However, yesterday Dries Buytaert posted an interesting note to the development mailing list, saying:

I don't mind having two or three profiles ship with Drupal core. They could help market install profiles and gives people one or two concrete examples to start from when building their own profiles. I think this would come a long way in helping to promote install profiles.

Specifically, I'm willing to accept a dummy.profile that populates your Drupal site with some dummy data and that gives you a kick start by pre-configuring a number of common things (i.e. it could create an about-page at q?=about, and it could setup a contact form that is accessible from the primary navigation). In fact, I wouldn't mind a blog.profile either -- it could also setup 'tags'-vocabulary with a term 'Drupal' or something.

If we think this is important, and if they emerge within the next day or two, we could ship those with Drupal 6. These are important usability/strategic improvements, not API changes.

We have seen some new functionality developed for Drupal 6 in tight collaboration quickly, and fortunately, there are existing code bases to build on for a single user blog install profile (thanks to Matt Farina for the link) or a 'dummy' profile. Let's keep quickly moving on these and we will get good examples of cool Drupal use cases, as well as a lot more visibility for Drupal's install profile support.

Tags: 

Comments

Christian Nally's picture

I presented some thoughts on this topic here: http://groups.drupal.org/node/4492

Since Drupal is a framework (and only really comes to life in most cases by permitting the use of contrib modules) that naming install profiles that ship with Drupal after something that will build user expectation would be a bad idea.

I do support a nice "blog" install profile, but if I was making an install profile for the most reviewable Drupal blog, it would certainly include pathauto, google analytics, etc.

I'd hate for Drupal to be judged on an install profile included in core that didn't deliver on the promise

thus... I would encourage install profiles shipped with core to have names that reflect what they aim to provide. Minimal, Basic, Core-Maximum ?

Minimal: only the absolutely required modules... this install would be used by those who know what they're doing and want lean and mean for their final result.

Basic: A few nice bits thrown in for good measure.

Core-Maximum: so named because everything in core is enabled with sample content (taxonomy, roles, everything++)... but the name doesn't suggest that people should stop at Core. This would be intended as an educational install, where you get to kick the tires of all functionality in a quick way.

Of course Drupal aims to be a framework. That's to it's credit. But let's not set up users who will be evaluating "Drupal" the framework, with any expectations that this is all Drupal can be.

My $0.02 only.

drupalpoint's picture

Nally, Agree with your views, but not totally.

Therefore, To support the requirement, We are releasing custom installation profiles with all required modules installed, settings configured to best possible defaults, customized admin area & custom themes.

First in the series is Druplog - Drupal powered Blogging

Please let us know your valuable feedback on the same.

Best Regards,
Natasha Cole,
Drupalpoint.com - Drupal Specialists.

Helge Morgenstern's picture

I'd rather propose to leave Drupal as a framework and instead publishing different install profiles on drupal.org.

"Druplog" - packed with a blog install profile, useful custom blog modules and commonly used blog themes. So that you have an installation process that asks you which theme and extensions (modules) you'd like to use and after that you can start blogging right away.

"Drupommunity" - a community package that comes with all the necessary modules and settings to set up your own fashionable web2.0-beta-startup community just by uploading it and following the installation process.

"Drupommerce" - an e-commerce / business install profile that gives companies the chance to install a shiny corporate website (comes with appropriate themes) within minutes just by (ideally) drag&drop clicking together what they need.

Karel Zeman's picture

I'm trying to update Druplet.module for Drupal 6. It's a simple module that creates new Drupal sites based on install profiles using multisite. It creates a new site directory, settings.php file, and database, and then executes the chosen install profile on the site, saving the user from having to step through the installer process.

In Drupal 5 it was fairly simple to do this:

<?php
 
// where $db_url['newsite'] is the SQL url from settings.php
 
db_set_active('newsite');

 
// include install functions
 
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/install.inc';

 
// Verify existence of all required modules.
 
$profile = 'default';
 
$modules = drupal_verify_profile($profile, NULL);

 
// Perform actual installation defined in the profile.
 
drupal_install_profile($profile, $modules);
 
variable_set('install_profile', $profile);
 
drupal_maintenance_theme();

 
// Show profile finalization info.
 
$function = $profile .'_profile_final';
  if (
function_exists($function)) {
   
// More steps required
   
$final = $function();
  }

 
// return db control to primary site
 
db_set_active('default');

 
// forward user to new site
 
drupal_goto('<a href="http://newsite.example.com'">http://newsite.example.com'</a>);
?>

At the moment, I'm not able to figure out a clean way to do this in Drupal 6 without hacking apart install.php and install.inc. Has anybody had success with this?

Add new comment