[update 2012-01-18] Major work on the patch as testing revealed that it was quite broken... (I was going to update it to v5.5.0 but decided to fix it first). Should now work with the latest v5.4.x branch. Next stop v5.5... Major update of firstboot scripts and lots of tidying up, now asks for Admin email on firstboot. I have attached the latest patch here. I would still like to apply a few tweaks to the install but will have to ponder that further... (I have also tidied up this post).
Concrete5 is an open source (MIT licence) CMS written in php which is really easy to use. It's actually quite easy to install yourself (on LAMP) but I thought I'd create a TKLPatch (which will hopefully lead to an official TKL appliance) that will lower the bar even more. I think Concrete5 would make a great addition to the TKL library.
I have been looking for an easy to use CMS with a nice flat learning curve. I want something for a newb friendly, staff editable intranet site at my work (reduce my workload). One of the great things about Concrete5 that makes it really useful for my purposes is that it keeps track of modifications (think wiki) so newb mistakes can be easily rectified. Concrete5 is pretty much WYSIWYG although some more advanced modifications require a little more effort under the hood. There are a range of themes and add-ons (both free and pay-for) available on the Concrete5 marketplace. Add-ons (as the name suggests) add functionality such as a Google search box, Google Maps, etc. None are included (or required) by default.
What the patch does so far (in order): [updated 2011-10-23]
- Add Apache2 site "concrete5-standalone" [overlay]
- Add an amended services.txt to Confconsole output. [overlay]
- Add concrete5.sql database, concrete5-usr.sql user setup and site.php (unconfigured config file) to webroot (loaded later by conf - custom site.php generated by firstboot inithooks). [overlay]
- Add firstboot inithooks (concrete5.py, 20rengen-c5-secrets & 40concrete5) [overlay]
- Sets hostname to 'concrete5'. [conf]
- Install php5-gd and php5-curl. [conf]
- Download and unzip (then delete) current stable Concrete5 (concrete220.127.116.11) archive to /var/www/concrete5. [conf]
- Disable default apache site, enable concrete5-standalone (doc root of /var/www/concrete5). [conf]
- Copy in site.php (custom site.php generated by firstboot scripts - overwrites default). [conf]
- Create MySQL user, create and populate database (from concrete5-usr.sql & concrete5.sql). [conf]
- Set ownership of specific folders to www-data:www-data as required. [conf]
- Stop Apache2 & MySQL services (so patching finalises cleanly). [conf]
- Clean up. [conf]
Things that ideally should be done
Allow default user (admin) password to be set at first boot (currently '549488') - I've had a dig around and found some more info. From what I can gather by default:
A random salt string is created on install (this needs to happen on first boot - currently this is set staticly). It is stored in the site.php config file. It is used to encode all passwords. This bit I can do!
Passwords are stored in the DB - I can write to the DB ok.
The password is a md5 hash of the salt + password - can't figure out how to do this :(
[Done as of v3.0]
Create random Concrete5 MySQL password? (not sure if this is necessary but probably be better).[Done as of v0.3]
Set base appliance URL/domain on first boot (see "Additional end-user config" below). I think ideally it should ask for domain on first boot, with the option to leave blank and it just picks up the IP.
[Done as of v0.3]
Set admin email address first boot (set to email@example.com by default). FYI this is stored in the db - not in site.php.[Done as of v0.5]
- Some specific tweaks for things like the file browser (I had problems with it by default) + some others I'll think of.
- Configure date/timezone on firstboot. I think that'd
I have not successfully managed to change the date format (by default it's US MM/DD/YY). This is a known Concrete5 bug which has apparently been fixed in the development version, but hasn't made it to stable yet. [Update 21/08/11] This issue should be fixed next week in the next stable (point) release - see here. Obviously this will require an updated patch.This should now be fixed (as of the v18.104.22.168 app/v0.2 patch release.
- File manager doesn't work as expected - no upload button. I found a fix for this online but forgot to take note of it. Will hunt it down again when I get a chance and include it in my patch.
- Updating addons doesn't work by default because the /var/www/concrete5/trash folder doesn't exist. This can be created by the patch and chowned to www-data:www-data with 755 permissions.
Additional end-user config
[base URL must be set]
Admin password and email address can be manually reset by end users from "Dashboard" >> "Users & Groups" >> "admin"
Base appliance URL (currently set to http://192.168.1.109 as that was the IP when I setup and installed). Note: This will need to be set prior to first use or your site won't work![Done as of v0.3]
- Timezone: By default it's set to UTC but can be changed to whatever. For full list of codes see here. [Because of the way I've done the firstboot hooks, to ensure this is not reset to UTC if firstboot script run again, it will also need to be changed in blanksite.php]
Default Login Credentials [still...]