💪 Simple and powerful Ruby on Rails CMS for developers 💪
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/
Built with good tools
- Ruby on Rails (>= 4.2, Rails 5 supported as well)
- 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)
rails g kms:install
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:
Amazon S3 for assets storage
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
figaro. Don't forget to
.envfile 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)