46 lines
1.9 KiB
Markdown
46 lines
1.9 KiB
Markdown
# 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](https://kore.io), using
|
|
[luajit](https://luajit.org) to expose a Lua programming environment. It uses
|
|
[sqlite3](https://sqlite.org) 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)
|
|
* Search (complete)
|
|
* Author biographies
|
|
* Archive
|
|
|
|
## Hacking
|
|
|
|
If you want to contribute to this repository:
|
|
1. Install the [kore webserver](https://kore.io)(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
|
|
5. 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.
|
|
6. 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](https://git.fuwafuwa.moe/rmalley/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.
|