Skip to content

owen2345/camaleon-cms

Repository files navigation

CAMALEON CMS

Test supported versions

Website

Documentation

Demonstration

About

Camaleon CMS is a dynamic and advanced content management system based on Ruby on Rails that adapts to your needs. This CMS is an alternative to Wordpress for Ruby on Rails developers to manage advanced content easier.

Camaleon CMS is a flexible manager where you can build your custom content structure without coding anything by custom fields and custom contents type.

To download or publish themes go to Theme store: https://camaleon.website/store/themes

To download or publish plugins go to Plugin store: https://camaleon.website/store/plugins

With Camaleon you can do:

  • Integrate into existing Rails projects
  • Multiples sites in the same installation
  • Multi-language sites
  • Design and create the architecture of your project without programming by dynamic contents and fields
  • Extend or customize the functionality using plugins
  • Manage your content visualization using themes
  • Easier administration. Camaleon CMS permits you to adapt the CMS to all your needs and not you adapt to the CMS. You can create your custom architecture with any custom attributes that you need for all content types.

Some features

  • Camaleon CMS is FREE and Open source
  • Shortcodes
  • Widgets
  • Drag and Drop / Sortable / Multi level menus
  • Templates/Layouts for pages
  • Advanced User roles
  • File Uploads with built in Local and Amazon S3 support
  • Easy migration from Wordpress
  • Security
    • Remote code execution
    • SQL injections
    • Advanced sessions security
    • Cross Site Scripting
    • Control of abusive requests
    • Cross-Site Request Forgery
  • Site Speed Camaleon CMS include a lot of cache strategies to optimize the site access velocity:
    • Cache contents
    • Cache queries
    • Manifests (compress and join asset files)
    • Customize your content visualization for Desktop, Mobile and Tablet
  • SEO & HTML5
    • Sitemap generations
    • Seo configuration
    • Seo for social media
    • All generated content is compatible with HTML5 and Bootstrap 3

Camaleon CMS has many useful Plugins such as:

Camaleon CMS has many useful frontend Themes such as:

Requirements

  • Rails 6.1+
  • PostgreSQL, MySQL 5+ or SQlite
  • Ruby 3.0+
  • Imagemagick

Installation

  • Install Ruby on Rails (Docker containerized guide here)

  • Create your rails project

    rails new my_project
  • Add the gem in your Gemfile

    gem "camaleon_cms"
    # OR
    # gem "camaleon_cms", github: 'owen2345/camaleon-cms' # latest development version
  • Install required Gem and dependencies

    bundle install
  • Camaleon CMS Installation

    rails generate camaleon_cms:install
  • (Optional) Before continue you can configure your CMS settings in (my_app/config/system.json), here you can see the full settings.

  • Create database structure

    rake camaleon_cms:generate_migrations
    # before running migrations you can customize copied migration files
    rake db:migrate
  • Start your server

    rails server
  • Go to your browser and visit http://localhost:3000/

Sample App / Demonstration

Support

If you have problems, please enter an issue here. If you need support, need some extra functionality or need plugins, please contact us on:

Author

Owen Peredo Diaz

License

https://camaleon.website/license.html

Testing

  • Init DB
RAILS_ENV=test bundle exec rake app:db:migrate
RAILS_ENV=test bundle exec rake app:db:test:prepare
  • Run tests
bundle exec rspec

Permissions (Manager roles)

Camaleon CMS exposes a set of manager permissions that control access to admin surfaces. These manager permissions are defined in CamaleonCms::UserRole::ROLES[:manager] and are rendered in the User Roles form in the admin UI so site owners can toggle them per-role.

  • custom_fields — Controls who can create/update Custom Field Groups and Custom Fields (write-time permission). This is a manager-level permission and should be granted only to trusted users. The permission is checked at write-time by the admin controller so that only permitted roles can persist custom field definitions that may contain advanced behavior.

Where enforcement happens

  • Write-time enforcement: CamaleonCms::Admin::Settings::CustomFieldsController uses CanCan (authorize! :manage, :custom_fields) to require the custom_fields manager permission for create/update/destroy actions. This prevents users without the permission from saving Custom Field Groups or fields.
  • Render-time behavior: certain field types (notably the select_eval field) evaluate stored data when rendering. The project maintains render-time behavior for backward compatibility, but write-time restrictions are the primary control: only users with the custom_fields permission can create or modify fields that might include executable commands. If you need a more restrictive runtime policy, consider auditing/clearing any stored select_eval commands in the database.

Backfilling existing roles

  • If you are upgrading an existing installation to 2.9.2, see the migration guide for the one-off backfill task and rollout steps.

Security notes

  • The custom_fields manager permission can allow storing code-like commands (e.g., select_eval)
  • Treat custom_fields as a high-privilege permission — grant it only to trusted administrators. If you inherit a database with pre-existing select_eval fields, audit their contents before granting the permission widely

Contributing

  • Fork it.
  • Create a branch (git checkout -b my_feature_branch)
  • Commit your changes (git commit -am "Added a sweet feature")
  • Push to the branch (git push origin my_feature_branch)
  • Create a pull request from your branch into master (Please be sure to provide enough detail for us to understand what this change is doing)

Version History

https://camaleon.website/version-history.html

Previous stable version (v1.x): https://github.com/owen2345/camaleon-cms/tree/version_1x

Camaleon CMS was originally released in July 2015 and tested previously with more than 20 projects by 6 months and on August 22, 2015 was published as a gem.

About

Camaleon CMS is a dynamic and advanced content management system based on Ruby on Rails

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors