Skip to content

Libbum/oration

Repository files navigation

A Rocket/Elm self hosted commenting system for static sites.

Inspired by Isso, which is a welcomed change from Disqus. However, the codebase is unmaintained and security concerns abound.

Oration aims to be a fast, lightweight and secure platform for your comments. Nothing more, but importantly, nothing less.


Oration is currently in an early stage of development, but v0.1.1 is usable now with minimal setup and a good deal of front facing features. Administration, porting from other commenting systems and a number of additional features are planned with a roadmap targeting a complete public release at v0.3.

Contributions are welcome, please see our guidelines and Code of Conduct.

Get it running now

A static binary for the backend that runs on any Linux machine can be found in the release tarball, along with a configuration file and minified oration.{js,css} files for you to put in your blog files.

A staging virtual machine using Vagrant and Ansible is available if you wish to build a test machine direct from the source, although this will require a few more development tools to be installed on your system (like docker for instance). Please read the comments in staging/prepare.yml to setup the standalone build system. However, this staging setup shows you exactly how to put oration behind an Nginx proxy with hardened security headers, once you have it running as a service.

Before running the service, make sure an .env file that points to the location of an sqlite database initialised with these commands, and the configuration file with details specific for your machine both exist in the directory oration is located in.

On the front end, it's simply a manner of uploading the css and js files to your public directory, and editing your blog posts to point to these assets. An example of this can be seen here.

More complete documentation is on the way.

Development Startup

$ echo DATABASE_URL=oration.db > .env
$ diesel migration run
$ cd app/elm
$ elm-package install
$ cd ..
$ brunch build
$ cd ..
$ cargo run

for live reloading of app files:

$ cd app
$ npm run watch

Until such time as I fix the build system, you'll also need to do some finicky stuff to get the style sheets building correctly.

From the app directory:

  1. mkdir css
  2. npm run watch
  3. Edit elm/Stylesheets.elm and save it.

Documentation

Documentation of current backend methods can be viewed here.

Options

Code highlighting is done with prism.js. The default syntax pack and a few extra markups are obtained via a CDN here, although you may wish to modify the allowable languages used on your blog. Replace the default pack with one customised from here to achive this. The CDN isn't a bad idea however, and pulling multiple files the example here is all done over http v2, so it's pretty fast.

In the same manner, you may change the theme of the syntax highlighting by choosing another theme. Oration uses the default in the example file.

These changes should be in your own html files, an example can be seen in the bundled index.html header.

License

FOSSA Status

FOSSA Status