Go to file
Robin Malley a169c68575 Merge branch 'refactor' into master 2020-12-28 04:28:26 +00:00
assets Spellcheck for faq 2020-12-28 04:23:43 +00:00
conf Add a search utility 2020-12-28 04:01:07 +00:00
kore_chroot Add gitignores 2020-05-17 12:10:01 -04:00
spec More work on refactor 2020-12-21 04:22:22 +00:00
src Merge branch 'refactor' into master 2020-12-28 04:28:26 +00:00
.gitignore Remove extra prints 2020-12-23 06:07:00 +00:00
Makefile Organize lua endpoints 2020-12-21 23:32:29 +00:00
README.md Update readme 2020-12-23 07:14:56 +00:00
dh2048.pem Inital commit 2020-05-15 19:10:20 -04:00

README.md

SMR

Overview

This repository contains the source code to a pastebin clone. It was made after concerns with pastebin.com taking down certain kinds of content. SMR aims to be small, fast, and secure. It is built on top of Kore, using luajit to expose a Lua programming environment. It uses sqlite3 as it's database. SMR is implemented in just over 2k SLOC and is expected to never exceed 5k SLOC. Contributions welcome.

Roadmap

  • Accounts (complete)
  • Comments (complete)
  • Tags (complete)
  • Author biographies
  • Search
  • Archive

Hacking

If you want to contribute to this repository:

  1. Install the kore webserver(Documentation -> installation)
  2. Use a kodev create smr to create a blank kore application
  3. Install Lua and Luarocks from your package manager
  4. Use Luarocks to install the following dependencies (luarocks install <package>)
  • etlua - Lua templating, comparable to Jinja for Python
  • lpeg - Parsing Expression Grammers, used to build text parsers
  • lsqlite3 - Sqlite3 for Lua, a lightweight database
  • lua-zlib - Data compression
  1. You may need to modify conf/build.conf, I use Lua 5.1 on my development machine, but everything should still work with later versions.
  2. Clone this repository into the smr folder, cd into the root, and run make!

Misc notes.

SMR requires a slightly modified version of Kore to run. See my kore patches for the changes I needed to make to get the JIT compiler playing nice with Kore's seccomp restrictions. There are a few other changes, like modified kore to accept any text as input for things like file upload. UPDATE (12/18/2020) Kore 4.0 no longer needs the seccomp changes, as those have been exposed to library users, and smr has been updated appropriately. It still needs the allow-multiline-input patch though.