No description or website provided.
Latest commit 8e2d316 Mar 26, 2017 Stefan Beyer initial commit for v1.1
Failed to load latest commit information.
src initial commit for v1.1 Mar 26, 2017
LICENSE.txt initial commit for v1.1 Mar 7, 2017 initial commit for v1.1 Mar 26, 2017


onacms (aka: "Oh No! Another Content Management System!") is not really a content management system, but a content management engine. It makes use of the following three concepts:

  • Nodes (aka: pages) (/nodes): this is where your content goes. Content can be plain html or Markdown.
  • Templates (/templates): templates generate the actual output, e.g. html pages for a website, sitemap.txt, etc. Templates can use mustache or the built in Golang html templating engine.
  • Static / public files (/public): these files are handled by ONACMS in the same way that you would expect from any other webserver. Use it e.g. for media files or for static files like robots.txt.

Getting started

Building and dependencies

gb is required to build onacms. Please use gb build all to build.

The following dependencies need to be met, please run gb vendor fetch <repository>:


./onacms [-dir=<directory>] [-port=<TCP port>] [-logpattern=<pattern>]

directory the directory containing nodes (/nodes), templates (/templates), and public / static files (/public)

TCP port is the TCP port the daemon listens on. It defaults to 12000.

pattern contains of one or more items from the following list:

  • %T - Time (e. g.15:04:05 MST)
  • %t - Time (e. g. 15:04)
  • %D - Date (e. g 2006/01/02)
  • %d - Date (e. g 01/02/06)
  • %M - message to be logged

If you run onacms using Systemd, there is no need to log time and date for this is already done by Systemd. In this case -logpattern="%L %M" would be a reasonable choice.


Released under the GNU Affero General Public License. Kindly contact info @ for information on licensing for OEMs / ISVs.