Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 SnapBin

自托管的代码片段分享工具。粘贴代码,拿链接,完事。

Self-hosted pastebin. Paste code, get a link. Done.


快速开始 / Quick Start

npx snapbin

浏览器打开 http://localhost:3000,粘贴,点 Create,复制链接。

安装 / Install

# 全局安装 / Global
npm install -g snapbin
snapbin

# 或者直接用 / Or just run
npx snapbin

参数 / Options

snapbin [options]

  --port <n>        端口 (默认 3000)
  --host <addr>     绑定地址 (默认 0.0.0.0)
  --base-url <url>  公网 URL 前缀
  --max-snaps <n>   最大存储条数 (默认 10000)
  --rate-limit <n>  每 IP 每分钟创建上限 (默认 10)
  --help            帮助

API

# 创建 / Create
curl -X POST localhost:3000/api/snaps \
  -H 'Content-Type: application/json' \
  -d '{"content":"hello world","lang":"python","expiry":"1w"}'

# 读取 / Read
curl localhost:3000/api/snaps/{id}

# 原始文本 / Raw
curl localhost:3000/raw/{id}

# 密码保护 / Password protected
curl -X POST localhost:3000/api/snaps/{id}/verify \
  -H 'Content-Type: application/json' \
  -d '{"password":"secret"}'
# → {"token":"xxx"}
curl localhost:3000/api/snaps/{id}?token=xxx

安全 / Security

层级 实现
存储加密 AES-256-GCM,每条独立 IV
密码存储 scrypt 哈希 + 随机盐
密码传输 POST + 短时效 token(30 分钟),不走 URL
访问控制 IP 速率限制 + 存储容量上限

编程调用 / Programmatic Usage

const { startServer, server } = require('snapbin');
startServer(); // 启动服务

数据存储 / Storage

数据目录:~/.snapbin/

  • snaps.json — 加密的片段数据
  • .key — AES-256 密钥(自动生成,权限 0600)

纯内网 / Offline

语法高亮依赖 cdnjs CDN。纯内网环境需自行托管 Prism.js 文件。

Syntax highlighting loads from cdnjs CDN. For offline use, self-host Prism.js.

License

MIT © aiyang-zh

About

自托管的代码片段分享工具

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages