tdp-ah-cms
Version:
A CMS based on the actionHero API framework
78 lines (54 loc) • 4.22 kB
Markdown
#TDPAHCMS
##DO NOT USE! IN HEAVY DEVELOPMENT
##Version
Master: v2.4.2
[](https://travis-ci.org/neilstuartcraig/TDPAHCMS)
[](https://coveralls.io/r/neilstuartcraig/TDPAHCMS)
[](https://gemnasium.com/neilstuartcraig/TDPAHCMS)
##Semver
This project aims to maintain the [semver](http://semver.org/) version numbering scheme.
##Changelog
See the [changelog](./changelog.md) file
##Overview
A CMS/website framework based on the [actionhero](https://github.com/evantahler/actionhero/) API framework and a suite of plugins to provide core functionality.
**NOTE**: This module installs only the server-side of the system. This module is agnostic of the front-end stack and the intention is that "people" will create various reference front-ends which may be based on any type/number of technologies.
##Features
* NodeJS 0.10+ and IOJS 1.x+ compatible
* An API-based CMS/website framework (server-side)
* Client/server operation - business logic happens on the server-side, presentation logic happens on the client (web browser)
* Websockets and/or XHR transports available (XHR should work well with HTTP2)
* Data exchange is via `JSON`
* Several plugins provide core CMS/website features, for example:
* An RBAC (Role-Based Access Control) ACL (Access Control List) to define which user roles are allowed to use each (server-side) API method. This includes (defined) inheritance from parent roles.
* An authentication layer. This is fast and light, backed by Mongo DB and incorporating strong encryption and various other security controls.
* A (server-side) session module to maintain private session data for users. This is backed by Redis and is super-simple to use (just set properties of a session object)
* A simple content-item plugin which is based on markdown (with optional automatic conversion to HTML). A content item can be anything you like, a single word or phrase to an entire page of text.
##Requirements
###Production requirements
* [actionhero](https://github.com/evantahler/actionhero)
* [ah-tdp-auth-plugin](https://github.com/neilstuartcraig/ah-tdp-auth-plugin)
* [ah-tdp-acl-plugin](https://github.com/neilstuartcraig/ah-tdp-acl-plugin)
* [ah-tdp-session-plugin](https://github.com/neilstuartcraig/ah-tdp-session-plugin)
* [ah-tdp-content-item-plugin](https://github.com/neilstuartcraig/ah-tdp-content-item-plugin)
* [ah-tdp-js-connector-plugin](https://github.com/neilstuartcraig/ah-tdp-js-connector-plugin)
###Development/test requirements
* [mocha](https://github.com/mochajs/mocha)
* [should](https://github.com/shouldjs/should.js)
##Installation
Installation is very simple and is simplest using `npm`:
```sh
# Install the NPM package. This essentially just copies an installer onto your computer/server
npm install tdp-ah-cms
# Now run the local installer. This does the actual installation (including plugins etc.)
npm run-script installer
# This is the point at which you'd likely install the front-end you want
# Now you can start your instance:
npm start
```
##Configuration
As per the actiohero convention, configuration files all live inside `/config` (that path being relative to your project root) with plugin configs being in `/config/plugins` - one file per plugin, named for the plugin. See plugin docs for their configuration options and actionhero's for its.
##Tests
[Tests](./test) currently run automatically in `travis` and use `mocha` and `should`.
##License
TDPAHCMS is issued under a [Creative Commons attribution share-alike license](http://creativecommons.org/licenses/by-sa/4.0/deed.en_GB).
This means you can share and adapt the code provided you attribute the original aclor(s) and you share your resulting source code. If, for some specific reason you need to use this library under a different license then please contact me and i'll see what I can do - though I should mention that I am committed to all my code being open-source so closed licenses will almost certainly not be possible.