Kasije lightweight cms, evolve the productivity.
Develop and host multiple websites has never been easier.
Efficiently develop multiple websites from a single location with shared resources and templates. Define the content of text files in various formats (XML, JSON, YAML, etc.) and update it at any time. Themes can be edited in multiple template engines (freemarker, velocity, etc.).
Pre-processing and compression of static resources
Static resources that require pre-processing (Sass, typescript, CoffeeScript, etc) are processed without your intervention, all you need to do is include them as they are, and Kasije will process them appropriately by their extension. Also the resources that support compression (JS and CSS) are compressed by the system and cached until they return to be modified.
Separation of content and presentation
It is a good design philosophy that we made concrete. You will preserve the semantics of the content, your content will be a piece of structured information. With features such as Kasije theme sharing, you can define and share themes among your sites and still keep all aesthetic details separated from the subject, allowing your information schema to be always readable. Everybody benefits from the separation: the content supplier does not have to be a good designer and vice versa.
Easy virtual hosting
Virtual Host refers to running multiples websites on a single physical server, which is not apparent to the end user. Kasije leaves no room for complicated configurations or server restarts, simply add content in the folder with the name of the virtual domain and the virtual host will be ready.
Extensible by plugins
The CMS supports the implementation of plugins to extend its core features, provide more options for working with templates (engines alternatives to freemarker or velocity), support formats for content editing (alternatives to XML or Json) and support other resource kinds pre-processing.
Command line interface
Kasije has multiple command line tools integrated to facilitate the work on the server, its Java based nature makes it run on most platforms and allow you to create new sites, configure and monitor them in the most natural way.
Kasije depends on the following projects:
- Bridje: A project providing Java API for building Fast, Robust Java Applications with Maven.
- Jetty: Jetty provides a Web server and javax.servlet container.
- Freemarker: Apache FreeMarker is a template engine: a Java library to generate text output.
- Google Closure: The Closure Compiler is a tool for making JavaScript download and run faster.
- JSass: jsass is a Java sass compiler using libsass.
Download and install
Download the TAR file of the latest release (available at 0.0.1), extract it in the designated server, and you will have the following structure:
- kasije-root
- lib
- bin
- log
- sites
- themes
- default
- page.ftl
- localhost
- etc
- pages
- index.xml
Inside the "sites" folder you will place your websites, grouped by domain name, with a predefined structure. The TAR contains an example for a simple starting web site, using Freemarker as template engine and XML to define the content. As the example site domain is localhost, you can browse it locally without any further configuration.
Start and explore
Inside the "bin" folder are several scripts to control the server:
- kasije-root
...
- bin
- start.sh
- stop.sh
- restart.sh
...
Invoke the start command via terminal:
$ sh bin/start.sh
> :INFO::main: Logging initialized @168ms
> :INFO:oejs.Server:main: jetty-9.3.7.v20160115
> :INFO:oejs.ServerConnector:main: Started ServerConnector@5c30a9b0{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
> :INFO:oejs.Server:main: Started @481ms
Now navigate to "localhost:8080" on the browser. Voila! We got a web site (dummy of course).
Java based framework
Kasije is a Java based framework for the web. Its implementations relies in other pure Java components and libraries, providing great multi platform support, performance, maintainability and scalability.
How it is designed
Kasije is developed using the chain of responsibility pattern, in order to make it easy for other users to extend or add features. Each request is processed through the chain where a group of handles performs specific actions adding information to the final result.
To extend the system, simply add handlers with the desired features implementing the following interface:
public interface RequestHandler
{
boolean handle(RequestContext reqCtx) throws IOException;
}
Kasije serves a variety of components and content. Among the current available functionalities are to serve sites, static resources, themes and templates.
By simple configurations the service can be tailored, such as adjusting a site route, an alias or the servlet protocol. For example, the following snippet shows how to configure the route and a virtual alias for the www.kasije.com site:
<routerConfig>
<routers>
<router uri="www.kasije.com" path="/var/www"></router>
</routers>
<virtuals>
<virtual uri="www.kasije-alias.com" real="www.kasije.com"></virtual>
</virtuals>
</routerConfig>
To configure an alias, for example, see the code below:
<aliasConfig>
<alias path="/home" realpath="/index" />
</aliasConfig>