APIQ is a modern and flexible Ruby on Rails content management system with modular approach. It utilizes the most latest features from Rails and PostgreSQL (such as json column type, for example). Mostly inspired by LocomotiveCMS, but in contrast with it APIQ CMS relies on robust PostgreSQL database and doesn't provide all-in-one solution. The basic idea behind APIQ CMS: minimal core, extendable via extensions (engines). So you can take only what you need.
Demo website: http://demo.apiq.io/
Backend (as admin): http://demo.apiq.io/kms (login/password: demo@apiq.io/password)
Backend (as content manager): http://demo.apiq.io/kms (login/password: content@apiq.io/password)
- Ruby on Rails (>= 4.2, Rails 5 supported as well)
- Angular.js
- Responsive Dashboard template
- Liquor template language
- PostgreSQL (recommended for DB)
- Minimal basis/core - Templates, Pages, Assets and Snippets
- Extendable via Rails Engines
- Beautiful and responsive admin panel
- Simple and Powerful Template language - Liquor
- Built-in documentation/help
-
Add to Gemfile
gem "kms" # or for edge version: gem "kms", github: "webgradus/kms"
-
Setup database.yml (only PostgreSQL 9.2+ supported)
-
Run generator:
rails g kms:install
-
Copy migrations:
rails kms:install:migrations
-
Migrate:
rails db:migrate
-
Set locale in your main app.
-
Precompile assets (if it will be production app):
RAILS_ENV=production bundle exec rails assets:precompile
-
Run it using your favorite webserver - unicorn, puma, thin
-
Open your browser at http://localhost:3000/kms and sign up first admin user.
Please watch this video to start working in APIQ:
By default, APIQ offers local file system as storage for your assets. But you could use Amazon S3 as well. Just follow these simple steps:
-
Add to Gemfile special gem for storing secrets. For example, this could be
dotenv-rails
orfigaro
. Don't forget tobundle install
gem 'dotenv-rails'
-
Setup your
.env
file with these variables:KMS_ASSETS_STORAGE=fog AWS_ACCESS_KEY_ID=your_access_key AWS_SECRET_ACCESS_KEY=your_secret_key AWS_BUCKET=bucket_name AWS_REGION=eu-central-1 # or region you want
-
If you ran
rails g kms:install
, then you should have config/initializers/carrierwave.rb. Feel free to customize it.CarrierWave.configure do |config| if ENV['KMS_ASSETS_STORAGE'] == 'fog' config.fog_provider = 'fog/aws' ...
Please follow CONTRIBUTING.md.
- Make sure you have "pids" and "sockets" folders in project's "tmp" folder (if using Puma especially)