Code Monkey home page Code Monkey logo

alchemy_cms's Introduction

Alchemy CMS

Gem Version Build Status Code Climate Coverage Status

About

Alchemy is the most powerful, userfriendly and flexible Rails CMS.

Read more on the website and in the guidelines.

This master branch is a development branch that can contain bugs. For productive environments you should use the current Ruby gem version, or the latest stable branch (3.0-stable).

Features

  • Highly flexible Templating
  • Gorgious End-User centric interface
  • Multilingual
  • Multidomain
  • SEO friendly
  • Access Control
  • RSS Feeds
  • Contactforms
  • Attachments and downloads
  • Powerful image rendering
  • Extendable
  • Integrates in existing Rails Apps
  • Caching
  • BSD License
  • Hostable on any Server that supports Ruby on Rails, a SQL Database and ImageMagick

Rails Version

This version of Alchemy CMS runs with Rails 4 (including 4.1)

If you are looking for a Rails 3.2 compatible version check the 2.8-stable branch.

If you are looking for a Rails 3.1 compatible version check the 2.1-stable branch.

If you are looking for a Rails 3.0 compatible version check the 2.0-stable branch.

If you are looking for a Rails 2.3 compatible version check the 1.6-stable branch.

Ruby Version

Alchemy runs with Ruby >= 1.9.3 (including Ruby 2.0 and 2.1).

For a Ruby 1.8.7 compatible version use the 2.3-stable branch.

Installation

As a standalone project

1. Use the installer:

gem install alchemy_cms --pre
alchemy new my_magicpage
cd my_magicpage

Run

bundle install

to finish installation process.

2. Start the local server:

bin/rails server

3. Switch to your browser:

Open http://localhost:3000 and follow the on screen instructions.

Into an existing Rails project

1. Add the Alchemy gem:

In your App's Gemfile:

gem 'alchemy_cms', github: 'magiclabs/alchemy_cms', branch: 'master'

2. Install Alchemy into your app:

Run in terminal:

bundle install
bin/rake alchemy:install

Authentication User Model

With Version 3.0 we extracted the Alchemy user model into its own gem.

In order to get the former Alchemy user model back, add the following gem into your Gemfile:

gem 'alchemy-devise', '~> 2.0'

Run in terminal:

bundle install
bin/rake alchemy_devise:install:migrations db:migrate

In order to use your own user model, you can add e.g.

# config/initializers/alchemy.rb
Alchemy.user_class_name = 'YourUserClass'
Alchemy.login_path = '/your/login/path'
Alchemy.logout_path = '/your/logout/path'

The only thing Alchemy needs to know from your user model is the alchemy_roles method.

This method has to return an Array or ActiveRecord::Relation with at least one of the following roles:

  • member
  • author
  • editor
  • admin

Example:

def alchemy_roles
  self.admin?
    %w(admin)
  end
end

Optionally you can add a alchemy_display_name method that returns a name representing the currently logged in user. This is used in the admin views.

Example:

def alchemy_display_name
  "#{first_name} #{last_name}".strip
end

Testing

Before running tests (which refer to Alchemy), please make sure to run the rake task

bundle exec rake alchemy:spec:prepare

to set up the database for testing.

Now you can run your tests, e. g. with RSpec:

bundle exec rspec spec/...

Alternatively you can just run:

bundle exec rake

This default task executes the database preparations and runs all defined test cases.

Deployment

Alchemy ships with a generator that creates a Capistrano config/deploy.rb file, which takes care of everything you need to deploy an Alchemy site.

So, if you don't have your own deploy file, we encourage you to use this generator:

$ bin/rails g alchemy:deploy_script

If you have your own Capistrano receipts, you should require the Alchemy tasks in your app's config/deploy.rb file:

# deploy.rb
require 'alchemy/capistrano'

If you don't use Capistrano you have to make sure that the uploads, tmp/cache/assets, public/assets and public/pictures cache folders get shared between deployments, otherwise you will loose data.

Please take a look into the lib/alchemy/capistrano.rb file, to see how to achieve this.

Upgrading

After updating the Alchemy gem in your App, you should run the upgrader.

Run in terminal:

bin/rake alchemy:upgrade

Tips

Getting Help

  • If you have bugs, please use the issue tracker on Github.
  • For Q&A and general usage, please use the User Group or the IRC channel.
  • New features should be discussed on our Trello Board. PLEASE don't use the Github issues for new features.

Resources

Authors

License

alchemy_cms's People

Contributors

benmorganio avatar christianpeters avatar duarme avatar geekoncoffee avatar george-carlin avatar gogogoaldi avatar hmans avatar ingilniero avatar jasonyork avatar louim avatar mamhoff avatar marcheidemann avatar mariuszhenn avatar masche842 avatar michaelklishin avatar pascalj avatar robinboening avatar rriksma avatar skeller1 avatar sweed avatar tbuehlmann avatar tomg65 avatar tvdeyen avatar v-fedorov avatar wuservices avatar zambot avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.