kpaste

Pastebin service

git clone git://git.lin.moe/go/kpaste.git

commits

2025-11-11 keep only one readme.org file Linsen Zhou
2025-11-11 update readme.org Linsen Zhou
2025-10-27 readme: add issue section Lindsay Zhou
2025-10-26 update reference links Lindsay Zhou
2025-10-26 update Makefile Lindsay Zhou
2025-10-26 upgrade dependencies Lindsay Zhou
2025-10-22 update static/css submodule Lindsay Zhou
2025-10-12 save expired time as utc Lindsay Zhou
2025-09-17 Add the deleted motd back Lindsay Zhou
2025-09-17 fix unnclosed html a element Lindsay Zhou

Clone the repository to access all 30 commits.

Issue

Mail Lindsay Zhou <i@lin.moe>

Usage

# basic usage
echo "Hello world!" | curl p.koi.moe -Ff=@-

# parse as markdown or orgmode file
curl p.koi.moe -Ff@<yourfile>.md
# or
curl p.koi.moe -Ff@<yourfile>.org

# expire after 7 days
curl p.koi.moe -Ff=@<yourfile.ext> -Fexpire=7

# read max 5 times
curl p.koi.moe -Ff=@<yourfile.ext> -Fread=5

# Password protected
curl --user <user>:<password> p.koi.moe -Ff=@<yourfile.ext>

# Create or update with speicifying key
# Notice: Only password protected notes can be updated and deleted
curl p.koi.moe/<key> -Ff=@<youfile.ext>

# Delete
curl --user <user>:<password> -XDELETE p.koi.moe/<key>

Content Limitation

Content-Security-Policy: default-src 'none'; style-src 'self'; sandbox allow-downloads allow-forms allow-popups

Service Deployment

Install

git clone git://git.lin.moe/go/kpaste.git
cd kpaste
make && make install

Run

kpaste serve --db /tmp/kpaste.db
# without --media flag, uploaded files will be stored in the sqlite database as blob type

# or
kpaste serve --db /tmp/kpaste --media /tmp/media --upload-limit 3027

Clean up

Run kpaste clean --db <database_file> [--media <media_path>] to clean expired data.

More help

kpaste help

Todo

support 2-level note key, and group notes together using the first level key