{"id":15018061,"url":"https://github.com/libbum/oration","last_synced_at":"2025-10-23T15:30:17.128Z","repository":{"id":143127623,"uuid":"97039134","full_name":"Libbum/oration","owner":"Libbum","description":"A Rocket/Elm self hosted commenting system for static sites","archived":false,"fork":false,"pushed_at":"2018-08-22T16:22:59.000Z","size":15250,"stargazers_count":22,"open_issues_count":36,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-30T19:07:08.229Z","etag":null,"topics":["comments","elm","rocket","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Libbum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-07-12T18:15:21.000Z","updated_at":"2023-10-03T19:06:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ba57a06-a38b-4ca6-a2bb-8cef088060cb","html_url":"https://github.com/Libbum/oration","commit_stats":{"total_commits":204,"total_committers":3,"mean_commits":68.0,"dds":0.1519607843137255,"last_synced_commit":"41d7f0136df1b2d165dc194604c2fb1d47ddbf40"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Libbum%2Foration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Libbum%2Foration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Libbum%2Foration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Libbum%2Foration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Libbum","download_url":"https://codeload.github.com/Libbum/oration/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237843724,"owners_count":19375192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comments","elm","rocket","rust"],"created_at":"2024-09-24T19:51:23.141Z","updated_at":"2025-10-23T15:30:16.555Z","avatar_url":"https://github.com/Libbum.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://libbum.github.io/oration/logo_wbl.svg\" width=400 px /\u003e\n\nA Rocket/Elm self hosted commenting system for static sites.\n\nInspired by [Isso](https://posativ.org/isso/), which is a welcomed change from Disqus.\nHowever, the codebase is unmaintained and [security concerns](https://axiomatic.neophilus.net/posts/2017-04-16-from-disqus-to-isso.html) abound.\n\n*Oration* aims to be a fast, lightweight and secure platform for your comments. Nothing more, but importantly, nothing less.\n\n---\n\nOration is currently in an early stage of development, but [v0.1.1](https://github.com/Libbum/oration/releases/tag/v0.1.1) is usable now with minimal setup and a good deal of front facing features.\nAdministration, porting from other commenting systems and a number of additional features are [planned](https://github.com/Libbum/oration/milestones) with a roadmap targeting a complete public release at v0.3.\n\nContributions are welcome, please see our [guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md).\n\n# Get it running now\n\nA static binary for the backend that runs on any Linux machine can be found in the [release tarball](https://github.com/Libbum/oration/releases/download/v0.1/oration-v0.1.tar.gz), along with a configuration file and minified `oration.{js,css}` files for you to put in your blog files.\n\nA staging virtual machine using [Vagrant](https://www.vagrantup.com/) and [Ansible](https://www.ansible.com/) 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).\nPlease read the comments in [`staging/prepare.yml`](staging/prepare.yml) to setup the standalone build system.\nHowever, this staging setup shows you exactly how to put oration behind an [Nginx proxy](staging/config/nginx.vhost.conf) with hardened security headers, once you have it [running as a service](staging/config/oration.service).\n\nBefore running the service, make sure an `.env` file that points to the location of an sqlite database initialised with [these commands](migrations/20170719094701_create_oration/up.sql), and the [configuration file](oration.yaml) with details specific for your machine both exist in the directory oration is located in.\n\nOn 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.\nAn example of this can be seen [here](app/static/post-1.html).\n\nMore complete documentation is on the way.\n\n# Development Startup\n\n```bash\n$ echo DATABASE_URL=oration.db \u003e .env\n$ diesel migration run\n$ cd app/elm\n$ elm-package install\n$ cd ..\n$ brunch build\n$ cd ..\n$ cargo run\n```\n\nfor live reloading of `app` files:\n\n```bash\n$ cd app\n$ npm run watch\n```\n\nUntil such time as I fix the build system, you'll also need to do some finicky stuff to get the style sheets building correctly.\n\nFrom the `app` directory:\n1. `mkdir css`\n2. `npm run watch`\n3. Edit `elm/Stylesheets.elm` and save it.\n\n# Documentation\n\nDocumentation of current backend methods can be viewed [here](https://libbum.github.io/oration/oration/index.html).\n\n# Options\n\nCode highlighting is done with [prism.js](http://prismjs.com/).\nThe 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.\nReplace the default pack with one customised from [here](http://prismjs.com/download.html) to achive this.\nThe 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.\n\nIn the same manner, you may change the theme of the syntax highlighting by choosing [another theme](https://github.com/PrismJS/prism/tree/gh-pages/themes).\nOration uses the default in the example file.\n\nThese changes should be in your own html files, an example can be seen in the bundled [index.html](app/static/index.html) header.\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FLibbum%2Foration.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FLibbum%2Foration?ref=badge_shield)\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FLibbum%2Foration.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FLibbum%2Foration?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibbum%2Foration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibbum%2Foration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibbum%2Foration/lists"}