Announcing Galileo - A minimal but modern CMS

I am happy to announce that Galileo CMS is now available from CPAN! This project has been my on-train side-project, but its come a long way in a short time. The most exciting thing for me is that its entirely installable from CPAN. To try it out, simply do

$ cpanm Galileo
$ galileo setup
$ galileo daemon

of course, you can also run it using the servers provided by Mojolicious, or using your favorite psgi-compliant server (as long as they support websockets).

Authorized users edit pages using markdown with a live-preview. All updates to pages, menus and users are sent via websockets. Styling is courtesy of Twitter’s Bootstrap library.

By default it uses an SQLite database, and indeed this is all its been tested on, but in principle it can use anything that DBIx::Class supports. All other dependencies are available from CPAN, with the exception of the javascript libraries, which are bundled with the distribution.

Some things that are still on the list:

  • Other than the database, it is not tremendously configurable yet, but I don’t think that should be hard to do. With a few changes it might be decently themable by overloading the styles defined by Bootstrap.
  • Images cannot be uploaded yet, but they can be linked to from external sources, or at least that should work :-)

Unfortunately I missed the deadline for Perl Weekly, but I did get it out before I go on vacation tomorrow, and I’m excited that I made that goal. So please, try it out; though probably not for anything mission-critical yet.

Let me know what you think!


Hi Joel

Everything installed easily. Then…

1) Is there no on-line help?

2) I could not see an ‘Add New Page’ button. Am I missing something?

Cheers Ron

Thanks for sharing, Joel.

Casually trying it out. Some comments/inputs:

1) In “galileo setup”, this prompt confused me a bit:

Admin Username:  [default admin]

I thought the default admin is ‘default admin’. Perhaps something like:

Admin Username [default: admin]: 
Admin Username (admin): 

2) Perhaps at the end of “galileo setup”, a proceed message can be added, e.g. “Galileo is now setup. You can start the daemon by typing ‘galileo daemon’”.

BTW, looking good!

Hey Joel,

Do you have screenshots available before I install a bunch of modules? :)

Thanks and keep up the good work. DM


I can’t seem to get the Database to install. The connection string seems fine. This is my DSN:


and the credentials are correct. When I submit the database form, this is the debug output:

[Wed May 29 13:54:07 2013] [debug] POST “/databaseinstall”. [Wed May 29 13:54:07 2013] [debug] Routing to a callback. Overwriting existing DDL-YML file - /tmp/5G7EM2PYid/source/deploy/2/001-auto.yml at /usr/local/lib64/perl5/Moose/Meta/Method/ line 110. Overwriting existing DDL-YML file - /tmp/5G7EM2PYid/source/deploy/2/001-auto-_VERSION.yml at /usr/local/lib64/perl5/Moose/Meta/Method/ line 110. [Wed May 29 13:54:08 2013] [debug] 302 Found (0.443739s, 2.254/s). [Wed May 29 13:54:08 2013] [debug] GET “/database”. [Wed May 29 13:54:08 2013] [debug] Routing to a callback.

Any idea why this isn’t working?

I fixed the database issue. Turns out the logger wasn’t escaping a character and not telling me my Perl Mysql driver wasn’t installed. Now it complains that a table doesn’t exist though. Where can I get the schema for this CMS to install since the script doesnt do it?

Leave a comment

About Joel Berger

user-pic As I delve into the deeper Perl magic I like to share what I can.