ReCMS is a Content Management System based on the excellent Pyramid framework that uses MongoDB for persistence and ElasticSearch, you know, for search.
Features include:
- hierarchical folders of content (an example Article type is included; new types are easy to define and register)
- CRUD and folder operations (cut, copy, paste, rename, re-order), all with history logging
- add/edit forms use Deform; content types use Colander to define schemas
- basic publishing workflow
- a trash folder for deleted content, with support for restore and copy
- edit history compare and revert
- user management, groups and local roles
- and of course, full text search
Not actively developed or used in production, but perhaps interesting as an example Pyramid application.
Note that I've only run ReCMS on Linux. I'm assuming that the instructions below would work just as well under OS X, but can't say for sure.
-
Python 2.6 or later is required for Pyramid. Also install virtualenv.
Refer to the Pyramid docs for instructions: http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/narr/install.html
-
MongoDB
If you don't already have a MongoDB server, install the latest production release from http://www.mongodb.org/downloads (I'm currently (2012-06-23) using 2.0.6.)
If you just want to quickly try out ReCMS, here's a recipe for running a MongoDB server in the foreground under your non-root user account:
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.6.tgz tar xfz mongodb-linux-x86_64-2.0.6.tgz ln -s mongodb-linux-x86_64-2.0.6 mongodb cd mongodb mkdir -p data bin/mongod --dbpath=data --rest
-
ElasticSearch
If you don't already have an ElasticSearch server, install the latest production release from http://www.elasticsearch.org/download/ (I'm currently using 0.19.4.)
If you just want to quickly try out ReCMS, here's a recipe for running an ElasticSearch server in the foreground under your non-root user account:
wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.19.4.tar.gz tar xfz elasticsearch-0.19.4.tar.gz ln -s elasticsearch-0.19.4 elasticsearch cd elasticsearch bin/plugin -install elasticsearch/elasticsearch-transport-thrift/1.2.0 bin/elasticsearch -f
-
Create and activate a Python virtual environment:
virtualenv cms_env cd cms_env source bin/activate
-
Either move or symlink the recms repository into the cms_env directory:
mv PATH_TO/recms . ### or ### ln -s PATH_TO/recms recms
Then cd into it:
cd recms
-
Install (in development mode):
python setup.py develop
-
Review the config file (development.ini) and change any settings you like. Most of the config is standard Pyramid stuff. Here are some of the ReCMS custom settings you may want to change (but you can probably leave them at the defaults if you just want to do a quick test drive and are running MongoDB and ElasticSearch with the default ports on localhost, as would be the case if you followed the recipes under the Prerequisites section earlier):
- db_uri
- db_name
- es_uri
- es_name
- default_timezone
- mail.host
- mail.port
-
Create an initial superuser account (with the username and password of your choice) using pshell:
pshell development.ini#main root.add_super_user('USERNAME', 'PASSWORD')
Ctrl-D to exit pshell
-
Run the application:
pserve development.ini --reload
-
The moment of truth... in your browser hit http://127.0.0.1:6543/ You should see an empty site (exciting, I know). Click the Login link in the top bar and log in with the username and password you setup in the pshell, then start exploring the menus to create/manage content.