Ruby
Article

Up and Running with Camaleon CMS

By Kingsley Silas

Screenshot 2015-11-29 15.25.56

This article was peer reviewed by Fred Heath. Thanks to all of SitePoint’s peer reviewers for making SitePoint content the best it can be!

Just another content management system? If that is the question running through your mind, wait until you get to the end of this post. I have been on the search for a Content Management System (CMS) built on Ruby on Rails but like WordPress. All the content management systems I have found are great in their different ways, but none matched this requirement until I found Camaleon CMS.

Welcome to Camaleon CMS

According to RailsCarma, “Camaleon CMS is an advanced and dynamic semantic personal publishing CMS based on Ruby on Rails. It allows you to manage your website from any place with internet connection. Modular, cost-effective and scalable website, Camaleon CMS is a feature-packed, established and remarkably well-coded powerful platform focused on aesthetics, web standards and usability.” It was built and is currently manainted by Owen Peredo Diaz.

Features:

  • Multi Site.
  • Multi Language: You can manage the contents of your site in several languages.
  • Manage widgets to embed anywhere.
  • Security: Multiple security measures are available to protect your site from various attacks.
  • SEO & HTML5: Automatic sitemap generators, SEO Configuration, SEO for social media, and content customization for various devices.
  • Easily customize the look of the site using themes.

Enough talk, let’s get busy!

Installation

Camaleon CMS requires ImageMagick to work. Installing it is pretty easy, open up your terminal and run the command below, depending on your operating system:

For Mac users (with Homebrew installed):

brew install imagemagick

For Ubuntu users:

sudo apt-get install imagemagick

Camaleon CMS requires Ruby on Rails 4.1+. To check the version of Rails running on your machine, open a terminal and enter the command:

rails -v
=> Rails 4.2.1

To install the latest Rails version, open up a terminal and enter:

gem install rails

That will install Rails and its dependencies. As of the time of this writing, the latest Rails version is 4.2.4. In this tutorial, we will learn how to build a blog using Camaleon CMS.

From your terminal create a new Rails project and navigate to its home directory:

rails new rubyblog
cd rubyblog

Open the Gemfile using your text editor and add the Camaleon CMS gem:

gem 'camaleon_cms'

Run bundle install:

bundle install

Thanfully, Camaleon comes with some handy generators. Let’s use them to install the CMS. From your terminal type:

rails generate camaleon_cms:install

This will copy some basic templates and plugins into your project. You can follow the path shown on your terminal to see what was created.

camaleon-output

From the terminal output, you’ll notice that something was added into the Gemfile. The camaleon_cms gem has its own dependencies. Open the lib/Gemfile_camaleon file to view the gems. Go back to your Gemfile and you will see what was appended:

#################### Camaleon CMS include all gems for plugins and themes ####################
require './lib/plugin_routes'
instance_eval(PluginRoutes.draw_gems)

Install the gems and migrate the database:

bundle install
rake db:migrate

Start your server (rails s) and view the blog by going to http://localhost:3000 in a browser.

General Settings and Customization

You will be presented with a page for quick setup. Enter the name of your blog and choose a theme. Three themes are provided, select one and hit submit.

camaleon-welcome

User Setup

Camaleon CMS presents a default username and password (admin/admin) to login to the admin dashboard. We need to change this. Login to your dashboard. Click on the icon by the right hand side of the user image shown on the left side of your screen as indicated below.

camaleon-dashboard1

Scroll down to the bottom of the page and select Change Password. Enter your old password which should be admin and a new password in the form displayed. Select Process and a dialog box should pop up showing that your password has been updated.

From this panel, you can edit the user profile as needed. When you are done, log out and login to see if the password successfully changed. You can log out by clicking the icon at the top right corner of your screen, then select Yes from the dialog box that pops up. If you changed the username from admin, enter the new one and your new password to login to your dashboard.

Camaleon CMS allows you to add more users with different roles, such as Administrator, Client, Contributor, and Editor. This is easy to do. Click on Users by the left hand side of your dashboard. From the dropdown select Add User. In the panel that is shown, you can create a user after setting up the profile as you please:

camaleon-add-user

You can also control the actions a user can perform by editing the actions of the Roles. To do this click on User Roles under Users by the left side of your dashboard. It is also possible to add and delete User Roles.

camaleon-edit-user-roles

Changing Site Language

As mentioned above, one of the features of Camaleon CMS is the ability to manage site contents in various languages. Let us see how that is possible.

On the left side of your dashboard click on Settings, from the drop-down select Languages. On the next page, choose any language you want for your blog:

camaleon-languages

Publishing Content

Creating Posts

Posts are what you think of when you think of a blog. To create a post, on the left side of your dashboard select Content > Post > Add New.

camaleon-create-post1

In the top field, insert a title. Write your post in the large area below the title. Use the formatting buttons to customize your post:

camaleon-style-post

To add an image, place your cursor in the text where you’d like to put the image, and click Insert/edit image on the content toolbar as shown in the screenshot below:

camaleon-insert-image

In the dialog box that pops up, enter a link to the image in the Source field or click on the search icon by the side to upload the image.

camaleon-image-upload

If you clicked the search icon the Media Manager opens up for you to import the image into your post.

camaleon-import-image

Click OK on the next box. You can always edit your image by clicking on Insert/edit image on your content toolbar.

To insert a Page Break, place your cursor on the place you want the break. On your content toolbar hover on Insert and select Page Break from the drop-down.

Creating New Page

camaleon-create-page

Camaleon CMS comes with built-in support for creating pages. From your dashboard, click on Pages by the left side of your screen. From the drop-down click on Add New. You will be presented with a page that looks similar to what WordPress gives when you want to add new page. Enter the details into the text field and click on Create Page. You can upload an image to your page by using the Featured Image option shown on the right side of the screen. The configuration option allows you to choose if you want your page to be published immediately or not.

Creating Categories

Categories are a convenient way to organize your posts. They give a lot of flexibility to show the posts you want, the way you want them.

To create new categories, click on Content > Post > Categories. On the left side of the page, there is a tab that allows you to create categories. Fill in the category name, slug (will be used in the category URLs), description (this is optional) and click on the Submit button.

camaleon-categories2

Assigning Posts to Categories

Once you have the category structure created, you can add posts to categories. Create a new post by clicking on Content > Post > Add New and simply select the category for the post.

camaleon-categories3

Creating a Menu

Menus are a list of common links, usually displayed as the main navigation for your site.

camaleon-menu1

To create a custom menu, click on Appearance, from the drop-down options click on Menus. By default a menu is created for you: Main Menu. To change the name of the Main Menu, enter your preferred name into the text box and click on Update Menu.

camaleon-menu2

It is possible to add pages, posts, categories, tags, external links to your menu. First, you must have created and published the item. In the above image, notice the tabs for Posts, Categories, and Tabs. When you want to add one to the menu:

  • Select the section (categories, pages, post, tags, external links) you want to add.
  • Tick the box by the left side.
  • Click on Add to Menu.
  • Click on Update Menu.

camaleon-menu3

Deploying to Heroku

Let us deploy our blog to Heroku. Add the following to your Gemfile:

Gemfile

group :production do
  gem 'pg', '~> 0.18.3'
  gem 'rails_12factor', '~> 0.0.3'
  gem 'puma', '~> 2.14.0'
end

Run bundle install.

Create a file in your config directory for Puma and paste the configuration below into it:

config/puma.rb

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/
  # deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

In order to publish to Heroku, we need our site to be under git source control. Initialize the repository and add the files:

git init
git add .
git commit -m "initial commit"

If you do not have an account on Heroku yet, go and create one. Then check to see if your system already has the Heroku command-line client installed:

heroku version

If not, you can get the Heroku toolbelt here. Once you have installed the toolbelt, login and add your SSH key:

heroku login
heroku keys:add

Next, use the heroku create command to create an app on Heroku:

heroku create

Deploy the application by pushing the master branch to Heroku:

git push heroku master

Finally run database migration:

heroku run db:migrate

A demo app is available at nerdnoob (your heroku app name will be different). The dashboard is available at nerdnoob dashboard. You can login using the following details:

username: admin
password: admin

Your app should be live now.

Conclusion

The world of Rails has been home to several CMS frameworks over time. Camaleon CMS is a solid addition, with its plugin framework and themes, it can do just about whatever you did. Today, I showed you how to setup a simple, but functional, blog using Camaleon CMS. Your feedback is welcome. Thanks for staying with me till the end :)

  • http://www.cygnet-infotech.com/ Hemang Rindani

    Insightful article. Camaleon is an advanced and dynamic web content management system based on Ruby and provides a structure like WordPress. It works on modular design and comes with number of modules and plugins that can effectively make some powerful websites. The extensive multi-site feature and support for the different languages allows large businesses to depend on Camaleon CMS for their websites. The interface is easy and like WordPress, which is the most user friendly CMS, allows a developer to handle every aspect of the webpage through an effortless admin dashboard. There are certain aspects like security measures and scalability that need to be addressed before considering Camaleon as a go-to CMS for large enterprises. I feel it is potentially a competitor to WordPress in a long run, but considering the recent scenario, it is quite difficult to expect that Camaleon CMS would replace any of the popular open-source enterprise web content management systems.

  • Zain

    I really enjoyed this post. I would like to see more in depth tutorials of camaleon_cms

Recommended

Learn Coding Online
Learn Web Development

Start learning web development and design for free with SitePoint Premium!

Get the latest in Ruby, once a week, for free.