Quick look at Zotonic CMS and blog platform written in Erlang

Zotonic is a CMS and blog platform system distributed on open Apache 2 license. It has a lot of features, but still it is simple to use to the end blog users. You can check Zotonic screenshot gallery or watch this video:

You can use and install Zotonic under Linux, BSD or Mac OS X. Windows isn't officially supported (but it should work). Details are in the documentation. Now I'll show you a quick path to get Zotonic up and running under Linux.

Zotonic needs some packages to work. First is Erlang R13B or newer. Also ImageMagick and PostgreSQL are required. That shouldn't be a problem for most modern distributions. When you installed them fetch Zotonic package and unpack it somewhere.

Open terminal and go to the Zotonic folder. To build the source code execute make. Next you will have to create a PostgreSQL database for the application. Go to PostgreSQL shell and execute:

CREATE USER zotonic WITH PASSWORD 'YOUR_PASSWORD_HERE' ; CREATE DATABASE zotonic WITH OWNER = zotonic ENCODING = 'UTF8' ; GRANT ALL ON DATABASE zotonic TO zotonic ; \ c zotonic CREATE LANGUAGE "plpgsql" ;

Where "YOUR_PASSWORD_HERE" replace with your password for the DB (don't forget it).

sudo -u postgres psql postgres

initdb -D /path/to/a/folder/for/the/db

postmaster -D /path/to/a/folder/for/the/db

And then psql (or pgsql) will give you the shell

When the DB is done it's time to create first blog in the Zotonic system. To do this you need to execute in terminal something like this:

bin/zotonic addsite -s blog SITE_NAME

Under priv/sites/SITE_NAME/config you will find a config for the created blog. In this file set the correct database password. You can also change admin account password from "admin" to something else.

Master admin account password is stored in priv/config. This account allows managing websites running under Zotonic.

To start a Zotonic local server you need to execute ./start.sh. Then under http://localhost:8000/ you will get the main admin (sites management), and under http://SITE_NAME:8000/ the blog we just created. The blog admin panel is http://SITE_NAME:8000/admin/. For the blog URL to work you have to add an entry in /etc/hosts:

127.0.0.1 SITE_NAME

Zotonic main admin panel

Blog admin panel in Zotonic

Initial look of a Zotonic powered blog

I had a quick run with the Zotonic system. The admin panel has a lot features, but isn't complex. There is a lot of handy JS widgets that improve the usability. Multilingual content is also nicely done. Out of the box it has more features than Wordpress.

Of course Erlang is bit exotic language for daily web hacking. It has a lot of strong features, but still it's not very popular yet. Using Zotonic for one simple blog may be an overkill, but if you want a high end big blog/website platform then why not. At some point Erlang developer may be needed, but on the fronted you get nice and clear Django-inspired templates.

Zotonic is used by blogs and websites like erlangcamp.com, blog.beewise.com, totally-erlang.com or garbett.org. Zotonic is also supported on maxclass.com.

Multilingual content in Zotonic

RkBlog