Public Repository

Last pushed: 8 months ago
Short Description
FleaCS is a Java Content Server designed for security, speed and flexibility.
Full Description

FleaCS will handle serving and managing small websites, optimized for Search Engines and high availability. It's primary design goals are: Security, Speed and Usability.

FleaCS is:

  • Fast - FleaCS stores all data in off-heap memory, rather than on disk.
  • Lightweight - FleaCS is a single JAR file that can be deployed with docker, and runs well off even the smallest AWS instances.
  • Efficient - FleaCS uses various 3rd party libraries like YUI Compressor and JSoup to automatically optimize and minify content.
  • Automatic - FleaCS deploys with zero configuration.
  • Content - FleaCS handles most kind of Internet, Office and developer oriented content, including PNG, Excel and Markdown.
  • Server - FleaCS is a standalone, scalable web server.

Getting Started

Getting started with FleaCS is easy, but requires some up-front knowledge.

Sitemap First!

FleaCS follows the sitemap first philosophy, meaning that you build your site map first, once that is done, you can start by adding content. Sitemap files are in JSON and are fairly self-explanatory.

The smallest valid stiemap file is:

{
  "hostname": "localhost",
  "resources": [
    {
      "location": "/",
      "templateId": "index",
    }
  ]
}

Convention over configuration

Since FleaCS doesn't use a file system, but still needs to organize content in some meaningful way, the following conventions apply.

/img/ - Your images will be available here.
/js/ - Your Javascript files will be available here.
/css/ - Your Cascading Style Sheets will be available here.

Multi-Environment

FleaCS is designed to work in a Multi-Environment setup, with at least two environments, a developer environment, and a production environment.

These are protected by a Public Key Infrastructure, limiting the risk of some hacker defacing your site because your username was god, and your password 123456

This SSH like security allows a certain degree of remote control of a running production environment providing you have the correct key. On Startup FleaCS will generaste a private/public keypair, if one does not exist already.

Benchmarks running on local work-laptop

Document Path:          /
Document Length:        2558 bytes

Concurrency Level:      1000
Time taken for tests:   14.722 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      27370000 bytes
HTML transferred:       25580000 bytes
Requests per second:    679.23 [#/sec] (mean)
Time per request:       1472.249 [ms] (mean)
Time per request:       1.472 [ms] (mean, across all concurrent requests)
Transfer rate:          1815.49 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    3   8.8      0      50
Processing:    16 1399 362.0   1432    2685
Waiting:       16 1399 362.1   1432    2685
Total:         59 1402 358.9   1432    2702
Docker Pull Command
Owner
fleacs