Lokka
Note Lokka 1.0.0 has migrated from DataMapper to ActiveRecord. If you are upgrading from v0.6.0 or earlier, please see the Migration Guide.
CMS written in Ruby for cloud computing.
Requirements
- Ruby 3.2 or later
- SQLite
Features
- Performs in the cloud environment such as Google App Engine and Heroku as well as Windows, Mac, and Linux.
- Designed with reference to WordPress for WordPress users to easily understand.
- Easy installation
- Easy to create a theme for designers.
- A clear plug-in API for Rubyists
Installation
$ git clone git://github.com/lokka/lokka.git
$ cd lokka
$ bundle install --without=production:test
$ bundle exec rake db:setup
$ bundle exec rackupView at: http://localhost:9292/
Deployment
See the Deployment Guide for production deployment instructions using Kamal.
Docker (Development)
$ docker-compose build
$ docker-compose run --rm app bundle exec rake db:setup
$ docker-compose upopen http://localhost:9292 on your browser.
Test
rake testHow to make a theme
Make a directory for theme in public/theme and you need to create entries.erb and entry.erb at least. (erb and haml are available.)
Index page
public/theme/example/entries.erb:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1><%= @site.title %></h1>
<% @entries.each do |entry| %>
<h2><%= entry.title %></h2>
<div class="body"><%= entry.body %></div>
<% end %>
</body>
</html>Individual page
public/theme/example/entry.erb:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1><%= @site.title %></h1>
<h2><%= @entry.title %></h2>
<div class="body"><%= @entry.body %></div>
</body>
</html>How to make a plugin
Lokka Plugin is subset of Sinatra Extension. but Lokka had a specific rules of nomenclature. If you need display "Hello, World" when access to "/hello", Write a following.
public/plugin/lokka-hello/lib/lokka/hello.rb:
module Lokka::Hello
def self.registerd(app)
app.get '/hello' do
'hello'
end
end
endCopyright
Copyright (c) 2010 Masaki Komagata. See LICENSE for details.