Doing something with computers!

A Default Drupal Installation

It seems that every time I start a new Drupal project I go through the same process: get Drupal, install it, set up the users the way I want, get the same set of modules, etc. Because I hate unnecessarily doing the same thing more than once, I thought I'd try to set something up that would allow me to get a "standard" install of Drupal up and running in a hurry.

My approach was to create a project in Subversion following the format described in a previous blog post that I could just copy or export to get up and running with everything set up just as I like it. This includes:

Pre-installed and configured set of standard modules
I almost always use the same core set of modules: admin_menu, adminrole, backup_migrate (despite the apparent dangers of running it on a misconfigured system), jquery_update, pathauto, and token.

User accounts
I try to never use the UID 1 user (and neither should you!), a habit that is probably carried over from Unix. As such, I always end up creating the admin user, then an admin role and a user for it. I want the User 1's theme to be Garland and the default site theme to be something else so I can easily visually tell when I'm logged in as User 1. This, in conjunction with the adminrole module, make it harder for me to accidentally nuke the site without making it hard for me to get stuff done.

Zen theme
I'm inevitably going to need a custom theme, and that means I'm going to use Zen.

Handy modules waiting to be installed
As a rule, I don't like having unnecessary modules sitting around if I'm not going to use them. But, there's about a 90% chance that I'm going to end up using CCK, Views, Devel, and the like. So I might as well have them there just in case.

A copy of the database ready for importing
Using backup_migrate, I create a copy of the database and check it in to subversion. This way I can quickly populate a database and all my settings are in place.

I get this all set up using svn:externals, so if a new version of a module comes out or there's a security update made to Drupal, I can just modify the externals property. Of course, if there are changes made to the database structure, I'd have to go through the update.php process, create a new database backup, and commit. But that's not a very big hassle in the long run.