Skip to content

Latest commit

 

History

History
148 lines (100 loc) · 6.71 KB

README.markdown

File metadata and controls

148 lines (100 loc) · 6.71 KB

Radiant Multisite

Hi, I'm a Radiant distribution that can serve multiple sites from a single installation and I already comes with a bunch of extensions and plugins installed.

Status

I'm far from completed and there may be some problems especially with the multiple site handling and some incompatibilities between some extensions. FORK ME and help me beeing a good Radiant Multisite distribution. This will be especially interesing with the upcoming Radiant 0.9 release and the new Blade UI that will us allow to incorporate further extensions in a user friendly way.

Why?

There are many well engineered extensions for Radiant that works well in isolation on a bare Radiant installation, but in combination of many other extensions there sometimes are some interference of the massive use of meta programming.

Extensions

Extensions are included as git submodules and managed by Ray:

Single site extensions:

The following extensions are handling the multi site behaviour:

Monitoring

The multi site installation uses Exceptional for exception and New Relic for performance monitoring.

The configuration files will be generated by the deploy:setup Capistrano task and must be updated with your personal credentials afterwards. You'll find these files in the /shared/config directory.

Installation

Get the code:

git clone git://github.com/netzpirat/radiant-multisite.git
cd radiant-multisite

Get the extensions and plugins:

git submodules update --init
git submodule foreach git submodule update --init

Install the needed gems:

rake gems:install

Configure the database credentials by copying conf/database.sample.yml to database.yml and modify it to your needs. That applies to conf/exceptional.sample.yml and conf/newrelic.sample.yml too: copy these to conf/exceptional.yml and conf/newrelic.yml and add your personal API key.

Create the database and tables:

rake db:create
rake db:bootstrap

Run it:

./script/server

For detailed information have a look at the Radiant Wiki, or

Deployment

Deploy me with Capistrano! I'm cooking with these recipes:

  • assets.rb - Creates and symlinks the paperclipped extensions public asset folder
  • config.rb - Create and symlink database.yml, exceptional.yml and newrelic.yml configuration files
  • galleries.rb - Creates and symlinks the gallery extensions public galleries folder
  • passenger.rb - Handles start, stop and restart of Apache and Passenger
  • radiant.rb - Handles the bootstrap and extension migration for Radiant
  • sync.rb - Handles synchronisation of different folders and the MySql database

First you have to copy the general deploy definition sample file from conf/deploy.sample.rb to conf/deploy.rb and the production configuration sample file from conf/deploy/production.sample.rb to conf/deploy/production.rb and modifiy those settings to your server environment. You can easily add new deployment target by copy the production sample file to for example conf/staging.rb

The you can setup the deploy environment

cap production deploy:setup

For the first time cold deploy the app:

cap deploy:cold

The next deploy can be done by simply

cap deploy

Synchronisation

When you add also the remote system database credentials in your (unversionied) database.yml, you can synchronize the database and folders between different environments:

For example copy your local database to production and sync assets and galleries, simply do a

cap poduction sync:up

You can snyc to an environment (up) or from an environment (down). If you wanna sync the local and staging environment to the latest production data:

cap production sync:down
cap staging sync:up

Backups of the old data will be kept in the shared/sync directory.

License

This Radiant distribution is released under the MIT license, see the LICENSE for more information. Plugins and Extensions may have another license, please see the appropriate extension or plugin folder.